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,worker}:
mkdir vidtheque && cd vidtheque
REL=https://raw.githubusercontent.com/T0mSIlver/vidtheque/v0.0.6/deploy
curl -fsSLO "$REL/docker-compose.yml" -O "$REL/compose.release.example.yml"
curl -fsSL -o .env "$REL/.env.example" # the document of record for every knob
echo "IMAGE_TAG=0.0.6" >> .env
docker compose -f docker-compose.yml -f compose.release.example.yml up -d
curl localhost:8080/healthzThe 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, 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 ride in the same process: / 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.
flowchart LR
client["MCP client<br/>(Claude, …)"] -->|MCP| MCP
browser["Browser"] -->|"landing · demo · dashboard"| MCP
subgraph MCP ["mcp/ — CPU, multi-arch (runs on a Pi)"]
surface["MCP tools · OAuth (CIMD)<br/>landing · demo · dashboard"] ---
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
- FlicenseNot gradedqualityBmaintenanceEnables searching and retrieving video transcripts, metadata, channel info, playlists, comments, trending videos, engagement analytics, chapters, SponsorBlock clean transcripts, and most-replayed heatmaps.35 npm-