Какую проблему решает
Когда пользователь вставляет ссылку на YouTube в ассистента, тот либо отказывается, либо фантазирует по названию, либо ломается на длинных видео. Командам, которые делают агентов для исследований, продаж или поддержки, нужен надёжный способ превратить любое видео в текст, с которым модель может работать, без поддержки парсеров, ломающихся при каждом изменении YouTube.
Что включить в первую версию
- Инструмент, который модель может вызвать с любым URL или ID видео YouTube
- Чистый текст расшифровки и сегменты с таймкодами для цитирования
- Выбор языка и перевод для видео не на английском
- Разбиение длинных видео на части, чтобы они помещались в контекст модели
- Кэширование, чтобы одно и то же видео не загружалось дважды
Как создать: пошагово
- 01
Выберите способ интеграции
Если ваш ассистент поддерживает Model Context Protocol, подключите MCP-сервер — инструменты появятся автоматически. Иначе опишите функцию-инструмент, которая вызывает /transcribe.
- 02
Определите контракт инструмента
Принимайте URL видео и необязательный язык. Возвращайте текст расшифровки и список сегментов с временем начала.
- 03
Обработайте длинные видео
Если видео длиннее контекстного окна, разбейте сегменты на части и сделайте пересказ каждой перед ответом или извлекайте только части, относящиеся к вопросу.
- 04
Ссылайтесь на источник
Попросите модель указывать таймкоды из сегментов, чтобы пользователи могли проверить каждое утверждение.
Стартовый код
Эта идея построена на шаблоне «Рецепт 1: на входе одно видео, на выходе структурированный результат». Подставьте свои каналы, промпты и хранилище.
import requests
API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}
res = requests.post(f"{API}/transcribe", headers=HEADERS, json={
"video": "https://www.youtube.com/watch?v=VIDEO_ID",
"format": {"timestamp": True, "paragraphs": True},
}).json()
transcript = res["data"]["transcript"]
print(transcript["text"][:500]) # plain text for your LLM prompt
for seg in transcript["segments"][:3]: # timestamps for deep links
print(seg["start"], seg["text"])Почему это стоит создать
Обычно это функция, а не продукт: она делает ваш существующий ассистент, бот или копилот заметно полезнее. Как самостоятельный продукт бот для Slack или Discord, отвечающий на вопросы о присланных видео, может брать плату за каждое рабочее пространство.
Каких ошибок избегать
- Запихивать трёхчасовую расшифровку в один промпт: вместо этого извлекайте нужное или пересказывайте по частям.
- Отбрасывать таймкоды — тогда ответы невозможно проверить.
- Раз за разом загружать одно и то же популярное видео вместо кэширования расшифровок.
Вопросы об этой идее
Могут ли ChatGPT или Claude читать видео на YouTube?
Самостоятельно — ненадёжно. Подключение инструмента расшифровки или MCP-сервера позволяет им читать полную расшифровку любого публичного видео с субтитрами.
Что такое MCP-сервер?
Model Context Protocol — стандартный способ давать AI-ассистентам инструменты. Наш MCP-сервер предоставляет инструменты расшифровки, которые совместимые ассистенты могут вызывать без собственного кода.
Как работать с очень длинными видео?
Разбейте сегменты с таймкодами на части, затем перескажите каждую или извлекайте только те части, что относятся к вопросу пользователя.