Opencode - додаємо плагін для розшифровки ютуб - youtube-transcript-mcp - 2026
Published: 2026-09-04
opencode — це CLI-агент для розробки, який вміє підключати зовнішні інструменти через MCP-сервери. Одним із найзручніших для контент-роботи є youtube-transcript-mcp від Eli-xir: кидаєш посилання на YouTube — отримуєш повну розшифровку з таймстемпами. Спершу сервер бере готові субтитри, а якщо їх немає — локально розпізнає аудіо моделлю faster-whisper. Розкажу, як усе це підключити.
Навіщо це потрібно
- Розшифровка будь-якого відео одним посиланням: субтитри (youtube_manual / youtube_auto) або whisper-фолбек.
- Пошук по тексту з клікабельними таймстемпами.
- Підсумки, теми, ключові моменти, розділи.
- Кеш у SQLite — повторно те саме відео не транскрибується.
- 12 інструментів MCP, усе локально, без API-ключів.
Крок 1. Що потрібно
- Python 3.10–3.13 (ctranslate2 не має збірок під 3.14).
- git, pip (або uv / conda).
- Інтернет для YouTube; перший запуск whisper завантажує модель з Hugging Face (tiny ~75 МБ, small ~460 МБ, large-v3 ~1.5 ГБ).
- Windows / macOS / Linux; GPU не обов'язковий (CPU з int8 працює).
Крок 2. Клонування та встановлення
git clone https://github.com/Eli-xir/youtube-transcript-mcp cd youtube-transcript-mcp
Швидкий варіант з uv:
uv venv --python 3.12 .venv uv pip install --python .venv/bin/python -e .
Класичний варіант з pip (або conda):
python3.12 -m venv .venv source .venv/bin/activate pip install -e .
Крок 3. Налаштування .env
cp .env.example .env
Основні змінні (значення за замовчуванням уже розумні):
| Змінна | За замовчуванням | Призначення |
|---|---|---|
| TRANSCRIPTION_PROVIDER | faster-whisper | провайдер розпізнавання (faster-whisper / openai-compatible / none) |
| WHISPER_MODEL | small | tiny / base / small / medium / large-v3 |
| PREFER_CAPTIONS | true | спершу брати готові субтитри YouTube |
| DEVICE | auto | auto / cpu — якщо CUDA не працює, ставимо cpu |
| CACHE_DIR | ./data/cache | каталог кешу SQLite |
Крок 4. Перевірка
Запускаємо вбудований клієнт і дивимось, чи сервер реально віддає розшифровку:
.venv/bin/python scripts/smoke_client.py "https://www.youtube.com/watch?v=VIDEO_ID"
Якщо все гаразд — у виводі буде «Connected. 12 tools: …» і сам текст відео.
Крок 5. Підключення до opencode
Глобальний конфіг (~/.config/opencode/opencode.json) або проєктний opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"youtube-transcript": {
"type": "local",
"command": ["/Users/username/youtube-transcript-mcp/.venv/bin/youtube-transcript-mcp"],
"cwd": "/Users/username/youtube-transcript-mcp",
"environment": {
"TRANSCRIPTION_PROVIDER": "faster-whisper",
"WHISPER_MODEL": "small",
"CACHE_DIR": "/Users/username/youtube-transcript-mcp/data/cache"
},
"enabled": true
}
}
}
Пам'ятайте: command — масив рядків, type обов'язковий, environment задає змінні середовища. Якщо пакет встановлено глобально (pip install без -e), cwd можна прибрати.
Крок 6. Перезапуск і використання
opencode читає конфіг лише під час старту, тому після редагування треба перезапустити програму. Далі просто кидаєте посилання в чат і просите розшифровку. Корисні інструменти:
- youtube_transcribe — головна точка входу (мова, модель, формат srt/vtt, таймстемпи).
- youtube_get_transcript / youtube_get_segment — текст або точний інтервал.
- youtube_search_transcript — пошук з контекстом і посиланнями на момент.
- youtube_generate_summary — підсумки (executive, bullets, chapters, quotes).
- youtube_video_metadata — назва, канал, тривалість, мови субтитрів.
Крок 7. Типові проблеми
- DOWNLOAD_FAILED / HTTP 403 — YouTube троттлить IP після частих завантажень; зачекати кілька хвилин (шлях з субтитрами не страждає).
- MODEL_LOAD_FAILED — модель не завантажилась: перевірити інтернет або поставити WHISPER_MODEL=tiny.
- Помилки CUDA (cublas64_12.dll) — встановити пакети nvidia-*-cu12 або DEVICE=cpu.
- BOT_CHECK / AGE_RESTRICTED — YouTube вимагає куки; yt-dlp підтримує конфіг кук, але він вимкнений за замовчуванням.
- Лайв-стріми не підтримуються; діаризація (розпізнавання спікерів) не підключена.
