finds.dev← search

// the find

NotJoeMartinez/yt-fts

★ 1,809 · Python · Unlicense · updated Jan 2026

YouTube Full Text Search - Search all of YouTube from the command line

yt-fts scrapes subtitles from YouTube channels via yt-dlp, stores them in SQLite, and lets you full-text search across everything you've indexed from the command line. It also bolts on semantic search via OpenAI/Gemini embeddings stored in ChromaDB, and a simple RAG chatbot on top. For someone who watches a lot of specific channels and wants to find that thing they said three years ago, this is exactly the right tool.

SQLite FTS with the enhanced query syntax (AND/OR/wildcards) is a genuinely good fit here — fast, zero infrastructure, and the data is yours. Parallel download jobs via yt-dlp are well thought out and the --cookies-from-browser flag handles the inevitable YouTube auth friction. The diagnose command for 403 errors is a nice touch that shows real-world awareness of how often this breaks. Dual embedding backend support (OpenAI and Gemini) means you're not locked into one paid API.

The README opens with 'this project is abandoned' — that's not a minor caveat, that's the headline. YouTube regularly breaks yt-dlp and this will bit-rot fast with no maintainer. The semantic search and full-text search are entirely separate pipelines with no unified interface, which is an odd design choice that forces you to know ahead of time which kind of search you want. The update command explicitly doesn't refresh embeddings, so your semantic index will silently go stale as channels post new content — there's no path to keep it current without re-running embeddings from scratch.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →