yt-fts

Из публичных источников

Полнотекстовый поиск по YouTube — поиск по всему YouTube из командной строки

Машинный перевод · Показать оригинал

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

AI-инструментКатегория: AI-инструментыOpen sourceданные проверены 16 окт. 2026 г.

Обзор

  • chromadb
  • cli
  • click
  • full-text-search
  • llm
  • rag
  • semantic-search
  • sqlite
  • youtube
  • yt-dlp

Установка

Команды только показываются, маркетплейс их не выполняет. Сверяйтесь с официальной документацией.
  • Файлы официального релизаИз публичных источниковиз последнего официального релиза
    github.com/NotJoeMartinez/yt-fts/releases/tag/v0.1.62 ↗
  • Реестр пакетов языкаpythonИз публичных источниковиз манифеста пакета — публикация в реестре не проверена
    pipx install yt-fts

    Не проверено: перед установкой убедитесь, что пакет в реестре принадлежит этому проекту.

    pypi.org/project/yt-fts/ ↗
  • Сборка из исходниковИз публичных источниковиз метаданных каталога

    Сборка из исходников: проверенного рецепта сборки нет — следуйте инструкциям репозитория.

    github.com/NotJoeMartinez/yt-fts ↗

Совместимость

«Неизвестно» значит, что доказательств не найдено, а не что продукт несовместим.
ПлатформаСтатусАрхитектураДоказательствоУверенность
WindowsНеизвестно———
macOSНеизвестно———
LinuxНеизвестно———
Web browserНеизвестно———
Server / self-hostedНеизвестно———
Container (OCI)Неизвестно———
PythonСовместимо—официальная сборка в релизе v0.1.62: yt_fts-0.1.62-py3-none-any.whl0.60

Релизы

проверено 30 окт. 2026 г.
v0.1.62Последний4 июл. 2025 г.Официальный источник ↗

Файлы версии 0.1.62

Маркетплейс не хранит эти файлы: загрузка идёт из официального источника. Мы их не сканировали.
ФайлПлатформаРазмерSHA-256Скачать из официального источника
yt_fts-0.1.62-py3-none-any.whlpython · wheel34,3 KBbca8d5ceb689…Официальный источник ↗
yt_fts-0.1.62.tar.gzНеизвестно34,8 KB1689d8d4c9bc…Официальный источник ↗
yt_fts-0.1.62-py3-none-any.whl.sigstore.jsonподпись8,7 KB21cb61c01c6c…Официальный источник ↗
yt_fts-0.1.62.tar.gz.sigstore.jsonподпись8,7 KB66ee18e3f934…Официальный источник ↗

История релизов

Профиль качества

алгоритм quality-v1.0 · оценено 16 окт. 2026 г.
Оценка качества73
Оценка риска0
Уверенность 1.00
Оценка качества и оценка риска — разные показатели. Высокое качество не гарантирует безопасность.

Составляющие оценки

Поддержка · 206
last activity 267 days ago
Документация · 1515
README 11711 chars, description present
Готовность к использованию · 1515
install instructions: yes; releases: yes
Метаданные · 108
3/4 of description, homepage, license, topics
Релизы · 106
10 release(s), latest 469 days ago
Точность категории · 105
classifier confidence 0.5
Популярность · 108
1808 stars (log-dampened, 10k = max)
Ясность лицензии · 55
SPDX Unlicense
Сообщество · 55
issues enabled, 98 forks

Лицензия

Unlicense
Лицензия известнапо данным хостинга репозитория

Это статус политики каталога, а не юридическое заключение.

Источники

github.com/NotJoeMartinez/yt-ftsОсновной★ 1 808 звёздактивность 22 янв. 2026 г.Основной репозиторий · Уверенность 1.00

Отзывы

Войдите, чтобы написать отзыв

Отзывов пока нет.

Альтернативы

agenticaПохожий
Один человек, команда агентов. Многосессионный CLI, который работает в нескольких терминалах; /goal поддерживает выполнение длительных задач; шлюз WeChat/WeCom/Feishu позволяет вернуться к агентам, когда вы отошли. Асинхронный Python SDK, постоянная память, самосовершенствующиеся навыки.Apache-2.0 · AI-инструменты
Hyper-ExtractПохожий
Hypergraph — более мощный инструмент. Преобразуйте неструктурированный текст в структурированные знания с помощью LLM. Графы, гиперграфы и пространственно-временные извлечения — одной командой.AI-инструменты
code2promptПохожий
CLI-инструмент для преобразования кодовой базы в один промпт для LLM с деревом исходных файлов, шаблонизацией промптов и подсчётом токенов.MIT · AI-инструменты
openscienceПохожий
Открытая рабочая среда на основе ИИ для научных исследованийApache-2.0 · AI-инструменты
oh-my-piПохожий
⌥ Агент для программирования с встроенной IDE. Разработан Stencil Labs.MIT · AI-инструменты
SoupПохожий
Тонкая настройка LLM по одному YAML-файлу. Послойная потоковая загрузка обучает модель на 8B на ноутбучном GPU с 4 ГБ памяти.Apache-2.0 · AI-инструменты

README

Из NotJoeMartinez/yt-fts · лицензия Unlicense · загружено 30 окт. 2026 г.

yt-fts - YouTube Full Text Search

This project is abandoned until unemployment inevitably finds me again.

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.

https://github.com/NotJoeMartinez/yt-fts/assets/39905973/6ffd8962-d060-490f-9e73-9ab179402f14

Installation

pip

pip install yt-fts

Commands

download

Download subtitles for a channel or playlist.

Takes a channel or playlist URL as an argument. Specify the number of jobs to parallelize the download with the --jobs flag. Use the --cookies-from-browser to use cookies from your browser in the requests, will help if you're getting errors that request you to sign in. You can also run the update command several times to gradually get more videos into the database.

# Download channel
yt-fts download --jobs 5 "https://www.youtube.com/@3blue1brown"
yt-fts download --cookies-from-browser firefox "https://www.youtube.com/@3blue1brown"

# Download playlist
yt-fts download --playlist "https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"

Options:

  • -p, --playlist: Download all videos from a playlist
  • -l, --language: Language of the subtitles to download (default: en)
  • -j, --jobs: Number of parallel download jobs (default: 8, recommended: 4-16)
  • --cookies-from-browser: Browser to extract cookies from (chrome, firefox, etc.)

diagnose

Diagnose 403 errors and other download issues.

This command will test various aspects of the connection to YouTube and provide recommendations for fixing common issues.

yt-fts diagnose
yt-fts diagnose --test-url "https://www.youtube.com/watch?v=dQw4w9WgXcQ" --cookies-from-browser firefox

Options:

  • -u, --test-url: URL to test with (default: https://www.youtube.com/watch?v=dQw4w9WgXcQ)
  • --cookies-from-browser: Browser to extract cookies from
  • -j, --jobs: Number of parallel download jobs to test with (default: 8)

list

List saved channels, videos, and transcripts.

The (ss) next to the channel name indicates that the channel has semantic search enabled.

# List all channels
yt-fts list

# List videos for a specific channel
yt-fts list --channel "3Blue1Brown"

# Show transcript for a specific video
yt-fts list --transcript "dQw4w9WgXcQ"

# Show library (same as default)
yt-fts list --library

Options:

  • -t, --transcript: Show transcript for a video
  • -c, --channel: Show list of videos for a channel
  • -l, --library: Show list of channels in library

update

Update subtitles for all channels in the library or a specific channel.

Keep in mind some might not have subtitles enabled. This command will still attempt to download subtitles as subtitles are sometimes added later.

# Update all channels
yt-fts update

# Update specific channel
yt-fts update --channel "3Blue1Brown" --jobs 5

Options:

  • -c, --channel: The name or id of the channel to update
  • -l, --language: Language of the subtitles to download (default: en)
  • -j, --jobs: Number of parallel download jobs (default: 8)
  • --cookies-from-browser: Browser to extract cookies from

delete

Delete a channel and all its data.

You must provide the name or the id of the channel you want to delete. The command will ask for confirmation before performing the deletion.

yt-fts delete --channel "3Blue1Brown"

Options:

  • -c, --channel: The name or id of the channel to delete (required)

export

Export transcripts for a channel.

This command will create a directory in the current working directory with the YouTube channel id of the specified channel.

# Export to txt format (default)
yt-fts export --channel "3Blue1Brown" --format txt

# Export to vtt format
yt-fts export --channel "3Blue1Brown" --format vtt

Options:

  • -c, --channel: The name or id of the channel to export transcripts for (required)
  • -f, --format: The format to export transcripts to. Supported formats: txt, vtt (default: txt)

search (Full Text Search)

Full text search for a string in saved channels.

  • The search string does not have to be a word for word and match
  • Search strings are limited to 40 characters.
# search in all channels
yt-fts search "[search query]" 

# search in channel 
yt-fts search "[search query]" --channel "[channel name or id]" 

# search in specific video
yt-fts search "[search query]" --video-id "[video id]"

# limit results 
yt-fts search "[search query]" --limit "[number of results]" --channel "[channel name or id]"

# export results to csv
yt-fts search "[search query]" --export --channel "[channel name or id]" 

Options:

  • -c, --channel: The name or id of the channel to search in
  • -v, --video-id: The id of the video to search in
  • -l, --limit: Number of results to return (default: 10)
  • -e, --export: Export search results to a CSV file

Advanced Search Syntax:

The search string supports sqlite Enhanced Query Syntax. which includes things like prefix queries which you can use to match parts of a word.

# AND search
yt-fts search "knife AND Malibu" --channel "The Tim Dillon Show" 

# OR SEARCH 
yt-fts search "knife OR Malibu" --channel "The Tim Dillon Show" 

# wild cards
yt-fts search "rea* kni* Mali*" --channel "The Tim Dillon Show" 

Semantic Search and RAG

You can enable semantic search for a channel by using the embeddings command. This requires an OpenAI or Gemini API key set in the environment variable OPENAI_API_KEY or GEMINI_API_KEY, or you can pass the key with the --api-key flag.

embeddings

Fetches embeddings for specified channel

# make sure API key is set
# export OPENAI_API_KEY="[yourOpenAIKey]"
# or
# export GEMINI_API_KEY="[yourGeminiKey]"

yt-fts embeddings --channel "3Blue1Brown"

# specify time interval in seconds to split text by default is 30 
# the larger the interval the more accurate the llm response  
# but semantic search will have more text for you to read. 
yt-fts embeddings --interval 60 --channel "3Blue1Brown" 

Options:

  • -c, --channel: The name or id of the channel to generate embeddings for
  • --api-key: API key (if not provided, reads from OPENAI_API_KEY or GEMINI_API_KEY environment variable)
  • -i, --interval: Interval in seconds to split the transcripts into chunks (default: 30)

After the embeddings are saved you will see a (ss) next to the channel name when you list channels, and you will be able to use the vsearch command for that channel.

vsearch (Semantic Search)

vsearch is for "Vector search". This requires that you enable semantic search for a channel with embeddings. It has the same options as search but output will be sorted by similarity to the search string and the default return limit is 10.

# search by channel name
yt-fts vsearch "[search query]" --channel "[channel name or id]"

# search in specific video
yt-fts vsearch "[search query]" --video-id "[video id]"

# limit results 
yt-fts vsearch "[search query]" --limit "[number of results]" --channel "[channel name or id]"

# export results to csv
yt-fts vsearch "[search query]" --export --channel "[channel name or id]" 

Options:

  • -c, --channel: The name or id of the channel to search in
  • -v, --video-id: The id of the video to search in
  • -l, --limit: Number of results to return (default: 10)
  • -e, --export: Export search results to a CSV file
  • --api-key: API key (if not provided, reads from OPENAI_API_KEY or GEMINI_API_KEY environment variable)

llm (Chat Bot)

Starts interactive chat session with a model using the semantic search results of your initial prompt as the context to answer questions. If it can't answer your question, it has a mechanism to update the context by running targeted query based off the conversation. The channel must have semantic search enabled.

yt-fts llm --channel "3Blue1Brown" "How does back propagation work?"

Options:

  • -c, --channel: The name or id of the channel to use (required)
  • --api-key: API key (if not provided, reads from OPENAI_API_KEY or GEMINI_API_KEY environment variable)

summarize

Summarizes a YouTube video transcript, providing time stamped URLS. Requires a valid YouTube video URL or video ID as argument. If the trancript is not in the database it will try to scrape it.

yt-fts summarize "https://www.youtube.com/watch?v=9-Jl0dxWQs8"
# or
yt-fts summarize "9-Jl0dxWQs8"

# Use different model
yt-fts summarize --model "gpt-3.5-turbo" "9-Jl0dxWQs8"

Options:

  • --model, -m: Model to use in summary
  • --api-key: API key (if not provided, reads from OPENAI_API_KEY or GEMINI_API_KEY environment variable)

output:

In this video, 3Blue1Brown explores how large language models (LLMs) like GPT-3 
might store facts within their vast...                                                         

 1 Introduction to Fact Storage in LLMs:                                                                                     
    • The video starts by questioning how LLMs store specific facts and                                                      
      introduces the idea that these facts might be stored in a particular part of the                                       
      network known as multi-layer perceptrons (MLPs).                                                                       
    • 0:00                                                                                                                   
 2 Overview of Transformers and MLPs:                                                                                        
    • Provides a refresher on transformers and explains that the video will focus                                            

config

Show config settings including database and chroma paths.

yt-fts config

How To

Export search results:

For both the search and vsearch commands you can export the results to a csv file with the --export flag. and it will save the results to a csv file in the current directory.

yt-fts search "life in the big city" --export
yt-fts vsearch "existing in large metropolaten center" --export

Delete a channel: You can delete a channel with the delete command.

yt-fts delete --channel "3Blue1Brown"

Update a channel: The update command currently only works for full text search and will not update the semantic search embeddings.

yt-fts update --channel "3Blue1Brown"

Export all of a channel's transcript:

This command will create a directory in current working directory with the YouTube channel id of the specified channel.

# Export to vtt
yt-fts export --channel "[id/name]" --format "[vtt/txt]"
Открыть репозиторий ↗