DEV.co
RAG Frameworks · NotJoeMartinez

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.

Source: GitHub — github.com/NotJoeMartinez/yt-fts
1.8k
GitHub stars
96
Forks
Python
Primary language
Unlicense
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
RepositoryNotJoeMartinez/yt-fts
OwnerNotJoeMartinez
Primary languagePython
LicenseUnlicense — OSI-approved
Stars1.8k
Forks96
Open issues13
Latest releasev0.1.62 (2025-07-04)
Last updated2026-01-22
Sourcehttps://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.

Quickstart

Get the yt-fts source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/NotJoeMartinez/yt-fts.gitcd yt-fts# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Research and Knowledge Discovery

Search across archived YouTube channels (podcasts, educational series, lectures) to extract specific references, timestamps, and related content without manual video scrubbing.

Content Curation and Summaries

Build indexed libraries of creator content, identify thematic patterns via semantic search, and generate context-aware summaries using the LLM chat feature.

Internal Documentation Indexing

Organizations can download internal video tutorials or recorded training sessions, index them locally, and allow employees to search transcripts with semantic understanding.

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.

SignalAssessment
MaintenanceStale
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitPossible
Assessment confidenceHigh
Security considerations

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.

Software development agency

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.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related 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?
yt-fts relies on available subtitles. Channels without subtitles or with auto-generated subtitles only may have limited coverage. The tool does not generate transcripts; it only downloads existing ones.
Will YouTube block my IP if I download too many subtitles?
Yes, excessive parallel downloads (high --jobs values) or repeated runs can trigger rate-limiting. Use --diagnose to test connectivity and keep --jobs in the 4–16 range. YouTube's ToS should be reviewed for compliance.
What are the costs of using semantic search?
Semantic search costs depend on the embedding API (OpenAI or Gemini). Costs scale with transcript length and number of chunks. Generate embeddings once per channel and reuse them to minimize costs.
Is this project still maintained?
No. The maintainer explicitly states the project is abandoned. Security fixes, feature updates, and dependency maintenance are not planned. Use at your own risk.

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.