Skip to main content
Glama

yt

YouTube CLI для агентов — поиск, транскрипты, метаданные и локальный кэш FTS5 для извлечения контекста для ИИ. Обертка над yt-dlp с JSON-конвертами, потоковой передачей NDJSON и MCP-бинарником.

Никаких ключей YouTube Data API. Никаких квот. Никаких ограничений по скорости на стандартном пути.

██╗   ██╗████████╗
╚██╗ ██╔╝╚══██╔══╝
 ╚████╔╝    ██║
  ╚██╔╝     ██║
   ██║      ██║
   ╚═╝      ╚═╝

Зачем

Существующие инструменты для YouTube либо:

  • Созданы для людей (интерактивные TUI, такие как ytfzf),

  • Созданы для создателей контента (нишевая аналитика, аудит конкурентов),

  • Либо заперты внутри MCP-серверов.

yt создан для агентов — Claude Code, Cursor, Codex, Gemini CLI и ваших bash-скриптов. Один вызов (yt context <url>) передает LLM все необходимое для анализа видео.

Установка

# Requires yt-dlp on PATH
brew install yt-dlp

# From source
git clone https://github.com/progrmoiz/yt-cli
cd yt-cli
npm install && npm run build && npm link

Проверка работоспособности:

yt doctor

Быстрый старт

# Search
yt search "rust async" --limit 5

# Grok a single video (the 80% agent use case)
yt context https://www.youtube.com/watch?v=dQw4w9WgXcQ

# Fetch transcript
yt transcript https://www.youtube.com/watch?v=dQw4w9WgXcQ --text

# Query everything you've cached
yt find "borrow checker"

# List a channel's recent videos
yt channel @ThePrimeTimeagen --limit 20

Перенаправление вывода автоматически переключает его в JSON (паттерн redis-cli):

yt search "typescript" | jq '.data[0].url'
yt context <url> | jq '.data.transcript.full_text'

Команды

Команда

Описание

yt search <query>

Поиск по YouTube, без API-ключа. --limit, --since 7d.

yt transcript <url>

Транскрипт с метками времени в формате JSON. Кэшируется. --lang en, --text.

yt info <url>

Метаданные: название, канал, главы, длительность. Кэшируется.

yt context <url>

Основная функция. Информация + транскрипт + главы для агентов в один запрос.

yt find <query>

Поиск FTS5 по кэшированным транскриптам. Результаты на уровне строк с метками времени.

yt channel <handle|id|url>

Последние видео с канала.

yt doctor [--deep]

Диагностика: yt-dlp, кэш, обнаружение агента.

yt self-test

Набор регрессионных тестов — отслеживает изменения в эндпоинтах YouTube.

yt schema <cmd>

JSON-схема для вывода этой команды.

yt mcp serve

Stdio MCP-сервер. Сопутствующий бинарник.

Интеграция с агентами

Claude Code / Cursor / и т.д. — MCP

// .mcp.json
{
  "mcpServers": {
    "yt": { "command": "yt", "args": ["mcp", "serve"] }
  }
}

Инструменты представлены 1:1 с командами CLI: search, info, transcript, context, find, channel, whoami.

Скрипты / оболочка

# Ingest the top 10 search hits into the local cache
yt search "machine learning ops" --limit 10 --json \
  | jq -r '.data[].url' \
  | xargs -I{} yt transcript {} --json >/dev/null

# Then query across all of them
yt find "feature store" --limit 5

Кэш

База данных SQLite в ~/.cache/yt/yt.db. Содержимое:

  • videos — одна строка на видео (метаданные).

  • transcripts — одна строка на пару (видео, язык).

  • transcript_segments_fts — виртуальная таблица FTS5 по каждому сегменту транскрипта.

Переопределите с помощью YT_CACHE_DIR=/path/to/dir.

Каждый вызов transcript / info / context сначала проверяет кэш. Используйте --refresh для принудительного обновления.

Формат вывода

Стандартный конверт (v2):

{
  "version": "2",
  "status": "success",
  "command": "context",
  "cli": { "name": "yt", "version": "0.1.0" },
  "data": { /* command payload */ },
  "metadata": {
    "elapsed_ms": 1200,
    "cached": true,
    "has_transcript": true,
    "agent": "CLAUDECODE"
  }
}

Используйте --raw для получения «чистых» данных. Полная JSON-схема доступна через yt schema <command>.

Коды выхода

0 ок · 1 общая ошибка · 2 использование · 3 проверка · 4 авторизация · 5 ограничение скорости · 6 сеть · 7 не найдено · 75 временный сбой

Переменные окружения

Переменная

Назначение

YT_CACHE_DIR

Директория кэша (по умолчанию: ~/.cache/yt)

YT_DLP_BIN

Переопределение пути к бинарному файлу yt-dlp

YT_NO_RETRY

Установите 1, чтобы отключить автоматическую повторную попытку при RATE_LIMIT/NETWORK/TIMEOUT

YT_JSON=1

Принудительный вывод в формате JSON

YT_API_KEY

Зарезервировано для будущих дополнений Data API

NO_COLOR

Отключить ANSI-цвета

CI

Принудительный неинтерактивный режим

Лицензия

MIT.

A
license - permissive license
-
quality - not tested
-
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/progrmoiz/yt-cli'

If you have feedback or need assistance with the MCP directory API, please join our Discord server