1.8k stars · Unlicense · v0.1.62 (2025-07-04) · Track this in Scout
Full-text and semantic search across every subtitle of a whole YouTube channel — competitor research at transcript level.
▶Repo detailsthe review · specs · pros & cons · install
What it is
yt-fts is a Python command-line tool. It downloads the subtitle tracks for every video on a channel, stores them in a SQLite file (a database that is one ordinary file), and searches them with full-text search. It can also do meaning-based search using embeddings if you supply an API key.
What it is good for. Anyone who needs to find something inside a long series of videos: a conference channel, a course, a podcast with video, a competitor's back catalogue. The situation it fixes is the familiar one of knowing a phrase was said somewhere in four hundred hours of video and having no way to get to it.
- The Unlicense, which is public domain — no conditions of any kind. The second such project this archive has published, after RSS-Bridge in Edition 28.
- The results carry the video and the timestamp, so a search ends with a link that starts playing at the right moment.
- Everything lands in one SQLite file, which you can query with ordinary SQL or move to another machine by copying it.
- It depends on YouTube continuing to serve subtitles the way it does today. When that changes, the tool breaks until someone fixes it.
- The newest release, v0.1.62, is dated 4 July 2025 and code last landed on 22 January 2026. The author had described the project as finished; it is alive by the eighteen-month measure and it is not moving quickly.
- Downloading a large channel takes a while and uses the network hard. Doing this to somebody's channel can run against YouTube's terms of use, so read them.
jdepoix/youtube-transcript-apiThe Python library for fetching one video's transcript; it does the fetching and leaves the storing and searching to you.
Track this in Scout
yt-dlp/yt-dlpThe general downloader that can also fetch subtitles, with no search of any kind on top.
Track this in Scout- openai/whisper
Makes transcripts from the audio itself, which is what you need when a video has no subtitles at all.
Track this in Scout
python3 -m venv venv source venv/bin/activate pip install yt-fts yt-fts download --jobs 5 "https://www.youtube.com/@SomeChannel" yt-fts search "point in time recovery"