yt-fts is a Python CLI tool that scrapes YouTube subtitles with yt-dlp, stores them in SQLite, and offers full-text search and semantic search via embeddings APIs. It provides commands for downloading, diagnosing, listing, updating, exporting, and searching transcripts, including support for OpenAI or Gemini embeddings and chromadb.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
yt-fts is a command line program that uses yt-dlp to scrape all of a YouTube channels subtitles and load them into a sqlite database that is searchable from the command line. It allows you to query a channel for specific key word or phrase and will generate time stamped YouTube urls to the video containing the keyword. It also supports semantic search via the OpenAI embeddings API, Gemini embedding API and using chromadb.
How it works
The project downloads subtitles from channels or playlists, stores transcripts in SQLite, and provides commands for full-text search and semantic search using embeddings. Semantic search requires embedding generation via embeddings command and results can be surfaced through vsearch and llm commands. The README shows commands for downloading, updating, listing, exporting, and searching transcripts, as well as exporting transcripts to txt or vtt formats.
Getting started
Install via pip:
pip install yt-fts
The README provides usage examples for commands including download, diagnose, list, update, delete, export, search, embeddings, vsearch, llm, summarize, and config. For example, to download a channel or playlist:
# Download channel
yt-fts download --jobs 5 "https://www.youtube.com/@3blue1brown"
yt-fts download --cookies-from-browser firefox "https://www.youtube.com/@3blue1brown"
Options shown include --jobs, --playlist, --language, and --cookies-from-browser. Diagnostics, listing, and updates are demonstrated with their respective command syntax.
Recent releases
Latest releases shown in the RELEASES section include:
- v0.1.62 (2025-07-04): Fix download only one, randomize user agents
- v0.1.60 (2025-07-04): Fix download format errors, bump yt-dlp version, set default jobs to 8
- v0.1.59 (2025-07-03): Added channel name extraction from RSS feed; Advanced search method refactor; Updated GitHub Actions
- v0.1.57 (2024-09-06): Added summarize command for video summaries; Added --cookies-from-browser flag to bypass rate limiting
The changelog links are provided but not reproduced in full here.
Traction
Not provided as a separate metric beyond repository stars and activity; the repository shows:
- stars: 1811
- forks: 98
- open_issues: 13
Behind the repo
No linked startup or company information is present in the provided data beyond the repository itself.
Caveats
License is Unlicense. The README describes the project as abandoned, indicating potential maintenance gaps. The installation and usage commands are shown as provided above, including various options and environment requirements for API keys and cookies.






