Summarize a YouTube video from its transcript. Triggers: youtube link, youtube video, summarize video, пересказ видео, о чём видео, краткое содержание видео, суть видео, транскрипция видео, ютуб ролик, youtube ролик, what is the video about, video summary, watch?v=, youtu.be
Summarize a YouTube video by extracting its transcript and generating a concise Russian-language summary.
Extract the video ID from the URL and try subtitles first.
Check yt-dlp: Run which yt-dlp. If missing, tell the user to brew install yt-dlp and stop.
Cookies (optional): Check for cookies file to access age-restricted/private videos:
COOKIES_FLAG=""
[ -f /app/.claude/claudeclaw/youtube.cookie.txt ] && COOKIES_FLAG="--cookies /app/.claude/claudeclaw/youtube.cookie.txt"
List subtitles:
yt-dlp $COOKIES_FLAG --list-subs "VIDEO_URL" 2>&1
If subtitles exist (including auto-generated), download and clean them:
yt-dlp $COOKIES_FLAG --write-auto-sub --sub-lang "en,ru,de,fr,es,pt,it,ja,ko,zh,ar,hi" --sub-format vtt --skip-download -o "/tmp/yt-%(id)s" "VIDEO_URL"
bash skills/youtube-summary/scripts/clean-vtt.sh /tmp/yt-VIDEO_ID.*.vtt
If subtitles are unavailable or the cleaned output is empty, fall through to STT.
If STT_URL env var is not set, skip this step and report that transcription is unavailable.
Download audio and transcribe via HTTP STT service:
yt-dlp $COOKIES_FLAG -x --audio-format wav --audio-quality 5 -o "/tmp/yt-%(id)s.%(ext)s" "VIDEO_URL"
curl -s -X POST "${STT_URL}/inference" \
-F "file=@/tmp/yt-VIDEO_ID.wav" \
-F "temperature=0.0" \
-F "response_format=json" \
| jq -r '.text'
Ты — конспектёр. Твоя задача: создать конспект, после которого человек получит те же знания, что и от просмотра видео, но за 2 минуты чтения.
Суть — 2–3 предложения. Тема + главный тезис или цель автора. Не пересказ, а ответ на "зачем смотреть это видео."
Конспект:
Структурированное изложение содержания. Используй подзаголовки, если видео имеет явные смысловые блоки (разделы лекции, этапы процесса, отдельные темы). Для коротких видео (< 15 мин) подзаголовки не нужны — достаточно нумерованного списка.
Правила:
Выводы и рекомендации — только если автор явно формулирует. Если это tutorial/how-to — пропусти секцию, конспект и так содержит всё нужное.
rm -f /tmp/yt-VIDEO_ID*
yt-dlp вернёт ошибку — сообщи пользователю, что видео недоступно. Если cookies файл отсутствует, упомяни что можно положить cookies в /app/.claude/claudeclaw/youtube.cookie.txt.STT_URL не задан).