Semantic search for YouTube channels, built for MCP.

Index a channel once, then query it like a knowledge base. Find the right segment by meaning (not just keywords), and jump straight to the part you need.

Build video How this works
MCP Workers R2 Vectorize
How It Works

Three steps to searchable video

From raw channel to semantic knowledge base in minutes.

1

Index a channel

Point the CLI at any YouTube channel or video. It downloads subtitles, chunks them into passages, and generates vector embeddings automatically.

2

Search by meaning

Ask natural-language questions via MCP or the CLI. Vector similarity finds the most relevant segments across every indexed video.

3

Jump to the moment

Each result links to the exact timestamp. Click through to YouTube or use the built-in player to watch the clip with full context.

See It In Action

Real query, real results

Here's what a search looks like end to end.

channel-chat
$ channel-chat search "how do vector embeddings work?"

Searching across 142 indexed videos...

Result 1 | score: 0.94
  "Vector embeddings map words into a high-dimensional space
   where similar meanings cluster together. We use cosine
   similarity to measure how close two passages are..."
  ──
  https://youtube.com/watch?v=dQw4w9...&t=847
  Embeddings Deep Dive · 14:07

Result 2 | score: 0.89
  "The key insight is that embeddings capture semantic
   relationships. 'King minus man plus woman' gives you
   something close to 'queen' in embedding space..."
  ──
  https://youtube.com/watch?v=xK3r9...&t=312
  ML Fundamentals #4 · 5:12
Open Source

Built in the open

channel-chat is MIT-licensed and ready to self-host. Runs locally with SQLite or deploys to Cloudflare Workers for production.

TypeScript Cloudflare Workers D1 + Vectorize R2 Storage MCP Protocol SQLite + sqlite-vec