Nax-OS ecosystem, youtube analyzer/scrapper.
Find a file
OpenCode Agent bb50d78bda
Some checks failed
CI / lint (push) Has been cancelled
CI / typecheck (push) Has been cancelled
CI / security (push) Has been cancelled
CI / unit (push) Has been cancelled
CI / integration (push) Has been cancelled
CI / docker-build (push) Has been cancelled
CI / trivy (push) Has been cancelled
release: merge v1.2.0
2026-09-02 19:51:25 +02:00
.forgejo/workflows ci(security): wire bandit gate via baseline wrapper, pin bandit==1.9.4 (review T12/M1) 2026-08-05 21:57:41 +02:00
.opencode chore: reviewer_local model -> gemini-3.6-flash (user-configured) 2026-08-30 16:21:14 +02:00
config fix(llm): address review — UTC budget hydration, quick-CLI guard, per-video cap honesty, Groq quota markers 2026-09-02 05:41:03 +02:00
dashboard feat(dashboard): clickable video links + title/channel columns 2026-09-02 18:50:18 +02:00
deploy fix(llm): unblock pipeline — valid models, Groq whisper, budget guard, worker metrics (forensics RC-1..6) 2026-09-02 03:17:12 +02:00
docs fix: address v1.2.0 review findings (changelog, whisper docs honesty, sentinel) 2026-09-02 19:48:43 +02:00
migrations feat(api): expose video title + channel name (+ migration) 2026-09-02 18:38:38 +02:00
scripts chore: formalize agent team with frontmatter + _local postfix 2026-07-31 23:57:11 +02:00
src fix: address v1.2.0 review findings (changelog, whisper docs honesty, sentinel) 2026-09-02 19:48:43 +02:00
tests fix: address v1.2.0 review findings (changelog, whisper docs honesty, sentinel) 2026-09-02 19:48:43 +02:00
tools ci(security): wire bandit gate via baseline wrapper, pin bandit==1.9.4 (review T12/M1) 2026-08-05 21:57:41 +02:00
.agents.local.md chore: formalize agent team with frontmatter + _local postfix 2026-07-31 23:57:11 +02:00
.artifacts.json feat(schema): adopt alembic with current-schema baseline (audit INFRA-9) 2026-09-01 00:28:11 +02:00
.dockerignore feat(dashboard): dockerize Next.js dashboard + URL submission panel 2026-08-13 23:41:50 +02:00
.env.example fix: address v1.2.0 review findings (changelog, whisper docs honesty, sentinel) 2026-09-02 19:48:43 +02:00
.env.staging.example feat(api): require API key on all mutation endpoints (review T3) 2026-08-04 04:09:04 +02:00
.gitignore feat(dashboard): dockerize Next.js dashboard + URL submission panel 2026-08-13 23:41:50 +02:00
.project_rules.md feat: initial project scaffold 2026-07-29 13:26:52 +02:00
alembic.ini feat(schema): adopt alembic with current-schema baseline (audit INFRA-9) 2026-09-01 00:28:11 +02:00
Caddyfile chore(deploy): align repo Caddyfile with mikulas topology (staging 8311 + dashboard route) 2026-08-14 00:12:47 +02:00
Caddyfile.bluegreen feat: v0.7.0 — load testing, blue-green deployment, pattern files, enriched APIs 2026-08-01 11:00:20 +02:00
CHANGELOG.md fix: address v1.2.0 review findings (changelog, whisper docs honesty, sentinel) 2026-09-02 19:48:43 +02:00
docker-compose.bluegreen.yml fix: pin infra images and stop staging worker double-harvesting 2026-08-31 19:32:05 +02:00
docker-compose.staging.yml fix(deploy): mount vault volume on worker services (publish requires /app/vault) 2026-09-02 14:00:05 +02:00
docker-compose.yml fix(deploy): mount vault volume on worker services (publish requires /app/vault) 2026-09-02 14:00:05 +02:00
Dockerfile fix(deploy): install git + pre-create vault dir in image (publish requires both) 2026-09-02 14:17:00 +02:00
Dockerfile.dashboard fix(dashboard): bake API_UPSTREAM_URL at build time — Next.js rewrites are not runtime-re-readable 2026-08-14 00:12:47 +02:00
gotchas.md docs: record v1.1.1 pipeline-unblock deploy + v1.2 admin plan 2026-09-02 07:06:04 +02:00
NEXT_SESSION_PROMPT.md docs: record v1.1.1 pipeline-unblock deploy + v1.2 admin plan 2026-09-02 07:06:04 +02:00
PLAN-v0.6.0.md feat: v0.6.0 deployment automation and API completeness 2026-08-01 09:12:20 +02:00
PLAN-v0.7.0.md feat: v0.7.0 — load testing, blue-green deployment, pattern files, enriched APIs 2026-08-01 11:00:20 +02:00
PLAN-v1.0.0.md chore(release): v1.0.0-rc1 — version bump, changelog, scope decisions 2026-08-13 11:06:06 +02:00
PLAN.md docs: add LLMRouter spec + cost tracking system 2026-07-29 15:03:56 +02:00
pyproject.toml release: v1.2.0 2026-09-02 19:51:12 +02:00
README.md docs: align staging port references with mikulas topology (8311) 2026-08-13 13:25:20 +02:00
requirements.lock.txt feat(schema): adopt alembic with current-schema baseline (audit INFRA-9) 2026-09-01 00:28:11 +02:00
SESSION_STATE.md docs: record v1.1.1 pipeline-unblock deploy + v1.2 admin plan 2026-09-02 07:06:04 +02:00

yt-harvester

YouTube knowledge harvesting platform. Monitor channels, analyze content with fabric-derived patterns, publish structured knowledge to your livewiki vault, and build a cross-video knowledge graph.

Quick Start

# Install
pip install -e ".[dev]"

# Configure
cp .env.example .env  # fill in real values

Set API_KEY in .env — all mutation endpoints (POST/DELETE) require it via the X-API-Key header (or Authorization: Bearer).

# Run dev server
uvicorn src.main:app --reload --port 8000

# CLI
yt-harvester --help
yt-harvester quick https://youtube.com/watch?v=...
yt-harvester daemon
yt-harvester cost
yt-harvester status

Docker Deployment

# Production (app + postgres + redis + prometheus + grafana)
docker compose up -d

# Staging (isolated instances on port 8311)
docker compose -f docker-compose.staging.yml up -d

See docs/deployment.md for full deployment guide.

Architecture

Channel/Video URL → Ingestor → Transcriber → Analyzer → Domain Specialist → Publisher
                                                                              ├── livewiki vault
                                                                              ├── graphify graph
                                                                              └── webhooks

See PLAN.md for full architecture.

Environments

Env URL Branch
Production yt.nazimyildiz.com main
Staging staging.yt.nazimyildiz.com main (pre-release)
Development dev.yt.nazimyildiz.com develop
Local localhost:8000 feature/*

Development

ruff check src/ tests/          # lint
mypy --strict src/              # typecheck
pytest tests/ -v --cov=src      # test

Project Structure

src/
├── pipeline/           # Core processing stages
│   ├── ingestor.py     # Video metadata fetch (yt-dlp)
│   ├── transcriber.py  # Captions → whisper fallback
│   ├── analyzer.py     # Fabric pattern execution
│   ├── publisher.py    # livewiki + graphify + webhooks
│   ├── monitor.py      # RSS feed polling
│   └── specialists/    # Domain enrichment agents
│       ├── finance.py
│       └── longevity.py
├── api/                # FastAPI REST endpoints
├── cli/                # Typer CLI
├── models/             # Pydantic schemas
├── config/             # Configuration loading
└── patterns/           # Vendored fabric patterns (markdown)
config/
├── domains.yaml        # Domain specialist registry
└── models.yaml         # LLM provider routing

License

MIT