vidtheque
Enables adding YouTube videos, channels, and playlists to the local knowledge base, with word-level transcription, OCR, and keyframe extraction; provides search and timestamped retrieval across the corpus.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vidthequeFind where I watched a video about MCP servers."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Knowledge is announced on video. vidtheque puts it on tap.
You don't have time to watch everything — your agent does. Follow the
builders whose talks, streams and deep-dives matter: vidtheque turns them into
solid, timestamped knowledge — every sentence spoken, every line that crossed
the screen, every frame — and every answer comes with its receipt: the
sentence, the slide, and the second it happened (https://youtu.be/ID?t=123).
See it live: vidtheque.dev · the demo — the first shelf: every talk AI Engineer published in 2026, all 310, on tap.
Quickstart
Releases ship as published images — ghcr.io/t0msilver/vidtheque-{mcp,web,worker}:
mkdir vidtheque && cd vidtheque
REL=https://raw.githubusercontent.com/T0mSIlver/vidtheque/v0.0.15/deploy
curl -fsSLO "$REL/docker-compose.yml" -O "$REL/compose.release.example.yml" -O "$REL/Caddyfile"
curl -fsSL -o .env "$REL/.env.example" # the document of record for every knob
echo "IMAGE_TAG=0.0.15" >> .env
docker compose -f docker-compose.yml -f compose.release.example.yml up -d
curl localhost:8080/healthzCaddy is the one origin over the web and mcp images, by the route table in that
Caddyfile; all three ship since 0.0.7. The worker image is amd64 + CUDA (~28 GB — what GPU torch genuinely weighs); the mcp image is
CPU-only, multi-arch, and runs on a Pi. No GPU? Drop the worker: a hosted
OpenAI-compatible provider covers the transcript leg, and YouTube captions are
the zero-GPU indexing path. deploy/vidtheque-update.sh makes upgrades one
command; pin exact tags — v0.0.x schemas can still change. To build from source instead: clone this repo, cp deploy/.env.example deploy/.env, run make images, then docker compose -f deploy/docker-compose.yml up -d.
Related MCP server: klaket-mcp
Follow the builders
Point it at a video, a channel, or a playlist. It transcribes with word-level timestamps, reads what is on screen, embeds keyframes, and keeps it all in a local index you own — the channels you chose, growing by subscription. The demo is the first shelf, not the library.
Your agent watched it
Agents plug in over MCP and consume the corpus mid-task: ask for the SOTA,
get what was said on stage three weeks ago — search across transcript,
on-screen text and frames, then drill into any moment. A web demo and a
management dashboard sit over the same corpus on one origin: / is the
landing, /demo searches and answers for visitors, /dashboard is the
operator's instrument.
Receipts, always
What separates injected knowledge from a hallucinated summary: the verbatim
quote, the real slide with its OCR box, and the youtu.be/…?t= link that
lands on the second.
Architecture
Two services, one repo, HTTP between them — never a shared Python import. The
front end in web/ is a third deployable; a Caddy edge puts both on one origin.
flowchart LR
client["MCP client<br/>(Claude, …)"] -->|MCP| MCP
browser["Browser"] -->|"/ · /demo · /dashboard"| Web
browser -->|"/dashboard/api · /dashboard POSTs · /frames"| MCP
subgraph Web ["web/ — Next.js front end"]
pages["landing · demo · dashboard"]
end
Web -->|"/api/*"| MCP
subgraph MCP ["mcp/ — CPU, multi-arch (runs on a Pi)"]
surface["MCP tools · OAuth (CIMD)<br/>/api facade · dashboard JSON + writes"] ---
pipeline["yt-dlp fetch · scene detection<br/>job queue"] ---
store[("SQLite + sqlite-vec + FTS5<br/>keyframe JPEGs")]
end
MCP -->|"HTTP — OpenAI shapes where they fit<br/>/v1/audio/transcriptions · /v1/ocr<br/>/v1/embeddings(/image · /frame-query)"| Worker
subgraph Worker ["worker/ — GPU, single box, stateless"]
lm["LifecycleManager — load-on-demand,<br/>idle-TTL unload, VRAM check, lease hooks"] ---
backends["STT: whisperX · OCR: RapidOCR<br/>Embeddings: Qwen3-VL-Embedding-2B<br/>(one model, one slot, both legs)"]
endThe worker is a stateless inference API — the endpoints are the contract.
One model embeds everything: Qwen3-VL-Embedding-2B reads a slide as a
document, not a picture — where CLIP-style dual encoders do 1.3–3.6× worse.
Development
uv sync && make test # CPU-only, no model downloads; GPU extras: --extra gpuAGENTS.md is how to work in this repo; docs/README.md maps every surface
to its contract. Security: SECURITY.md +
docs/security.md. MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Extract YouTube transcripts, search what was said, and read on-screen frames with cited timestamps.
- ShortyOAuthcom.aishorty
Summarize and transcribe videos, audio, documents and web pages; subtitles; search your library.
Search your saved videos by what was said. YouTube, Reels, and TikTok transcripts. Read-only.
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceBuilds a searchable knowledge base from YouTube video transcripts with hybrid semantic and keyword search. Allows LLM assistants to search, organize, and retrieve timestamped information from videos you've watched.3-
- AlicenseAqualityBmaintenanceLet AI agents watch videos: local transcripts, speaker labels, scenes, chapters and exact-moment search from any video URL or file. Fully local, no API keys.42AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables LLM agents to process local videos into timestamped, citable text documents and then query them through tools for listing videos, retrieving transcripts, and fetching specific segments, all fully offline.MIT
- AlicenseNot gradedqualityBmaintenanceSearch within videos by dialogue, on-screen visuals, and recurring faces using natural language - connected with your favorite agent (like Claude, Codex, Hermes).52MIT