yt-fts
yt-fts is a command-line tool that downloads YouTube channel subtitles into a local SQLite database, enabling keyword search and semantic search across transcripts with timestamp-linked results. It integrates with OpenAI and Gemini APIs for embeddings-based search and includes an LLM chat interface for context-aware Q&A over video content.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | NotJoeMartinez/yt-fts |
| Owner | NotJoeMartinez |
| Primary language | Python |
| License | Unlicense — OSI-approved |
| Stars | 1.8k |
| Forks | 96 |
| Open issues | 13 |
| Latest release | v0.1.62 (2025-07-04) |
| Last updated | 2026-01-22 |
| Source | https://github.com/NotJoeMartinez/yt-fts |
What yt-fts is
Written in Python, yt-fts uses yt-dlp for subtitle extraction, SQLite with full-text search (FTS) for keyword indexing, and ChromaDB for vector embeddings via OpenAI or Gemini APIs. Supports advanced SQLite query syntax, parallel download jobs, and exports results to CSV/VTT formats.
Get the yt-fts source
Clone the repository and explore it locally.
git clone https://github.com/NotJoeMartinez/yt-fts.gitcd yt-fts# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Requires Python 3.x, pip, and yt-dlp as a dependency; ensure yt-dlp and browser-cookie-extraction libraries are compatible with your system.
- Semantic search features require valid OpenAI or Gemini API keys; embeddings generation incurs per-token costs and must be budgeted per channel.
- Parallel download jobs (--jobs flag) can stress YouTube's rate limits; recommended range 4–16 jobs; use --diagnose command to test connectivity before large runs.
- Local SQLite database grows with transcript volume; no built-in storage management or archival strategy provided.
- Maintainer explicitly states the project is abandoned; prioritize for low-stakes, experimental, or internal-only use.
When to avoid it — and what to weigh
- No Offline Subtitle Access — Tool depends on yt-dlp's ability to access YouTube and download subtitles; if subtitles are unavailable or YouTube's terms prohibit this use, the tool will not function effectively.
- Real-Time or Streaming Scenarios — yt-fts requires upfront bulk download and indexing; it does not support live search across new uploads or real-time transcript analysis.
- Large-Scale Enterprise Deployment — Project is stated as abandoned by the maintainer; no SLA, security patches, or production support. Not suitable for mission-critical or compliance-heavy environments.
- High-Cost Semantic Search at Scale — Reliance on external APIs (OpenAI embeddings, Gemini) means per-token costs scale with content volume; embeddings must be regenerated if switching providers.
License & commercial use
Licensed under The Unlicense, a public domain dedication that places the software in the public domain with no restrictions. Users may use, modify, and distribute freely without attribution or warranty.
The Unlicense explicitly places the work in the public domain; commercial use is unrestricted. However, the project is abandoned by its maintainer, and there is no commercial support, SLA, or liability protection. Use for commercial purposes at your own risk and with awareness that YouTube's Terms of Service may restrict automated subtitle downloading or API usage for certain purposes. Requires independent legal review of YouTube ToS compliance for your specific commercial use case.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Stale |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Possible |
| Assessment confidence | High |
Tool stores API keys in environment variables or command-line arguments; no secure credential storage or encryption at rest. SQLite database is unencrypted. No authentication or access control on the local database. When extracting browser cookies via --cookies-from-browser, ensure the system has secure access controls. Downloading subtitles from YouTube may expose your IP; consider YouTube's rate-limiting and terms of service. Abandoned status means no security patches will be issued for discovered vulnerabilities in dependencies.
Alternatives to consider
Whisper API + custom indexing
OpenAI's Whisper API generates transcripts directly; paired with a maintained vector database (e.g., Pinecone, Weaviate) and indexing service, offers more control and support than a single abandoned CLI tool.
YouTube Data API + Kendra/OpenSearch
Official YouTube API for metadata; pair with AWS Kendra or Elasticsearch for enterprise-grade full-text and semantic search on transcripts with managed infrastructure and support.
Memento or similar podcast/video search platforms
Purpose-built platforms for searching across video content; offer web UI, managed indexing, and ongoing maintenance without self-hosting or API key management.
Build on yt-fts with DEV.co software developers
yt-fts is powerful for research and knowledge discovery but is no longer maintained. Our team can help you assess whether this fits your use case, migrate to an actively supported alternative, or build a custom solution tailored to your search and indexing requirements.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
yt-fts FAQ
Can I use this on YouTube channels without subtitles?
Will YouTube block my IP if I download too many subtitles?
What are the costs of using semantic search?
Is this project still maintained?
Custom software development services
DEV.co is a software development agency delivering custom software development services to companies building on open source. Our software developers and web developers design, integrate, and ship production systems — spanning web development, APIs, AI, data, and cloud. If yt-fts is part of your rag frameworks roadmap, our team can implement, customize, migrate, and maintain it.
Evaluating yt-fts for Your Needs?
yt-fts is powerful for research and knowledge discovery but is no longer maintained. Our team can help you assess whether this fits your use case, migrate to an actively supported alternative, or build a custom solution tailored to your search and indexing requirements.