a self-hostable q&a platform that turns any youtube video into something you can actually have a conversation with.
paste a youtube url, the system pulls the transcript, chunks it, embeds it, and drops it in a local vector store. from there you can ask it anything- get a summary, drill into a specific topic, ask follow-up questions. the llm is either a local model or routed through openrouter, your choice.
no cloud dependency. runs on your machine. your data stays local.
- user pastes a youtube url into the ui
- system pulls the transcript via
youtube-transcript-api - transcript gets chunked into overlapping segments (with timestamps where possible)
- chunks get embedded and stored in a local vector store
- user asks a question
- relevant chunks are retrieved via semantic similarity
- retrieved chunks + question go to the llm
- llm answers based on the actual transcript content
the llm layer is pluggable:
- openrouter: routes to whatever model you want (gpt-4o, claude, mistral, etc.) through a single api. useful if you have an openrouter key but don't want to manage multiple api keys.
- local model: runs fully offline via ollama or llama.cpp. nothing leaves your machine.
the system should make switching between these straightforward- ideally just a config change.
- youtube url input → transcript extraction via
youtube-transcript-api - transcript chunking with overlap for coherent context windows
- vector store for semantic retrieval (local)
- q&a interface over the retrieved chunks
- support for openrouter as the llm backend
- support for local models (ollama)
- self-hostable via docker
- timestamp-aware retrieval (link back to the moment in the video)
- multi-video support (ask across a collection)
- persistent storage so you don't re-process videos you've already loaded
- summary generation on ingest (get the tldr without asking)
- simple web ui (doesn't need to be fancy)