---
name: youtube-transcript-ingest
description: "Использовать, когда пользователь прислал YouTube URL и попросил конспект, расшифровку, тезисы, таймкоды или анализ ролика; если YouTube URL прислан без комментариев, сделать подробное структурное резюме видео по transcript-only маршруту."
---

# YouTube Transcript Ingest

## Назначение
Получить расшифровку YouTube-ролика через subtitles / auto-subtitles без скачивания видео или аудио, сделать понятное резюме и предложить, как использовать или хранить материал.

Канонические детали находятся в `agent/protocols/youtube-transcript-ingest-protocol.md`.

## Когда использовать
Использовать, когда пользователь:
- прислал YouTube URL без дополнительных комментариев;
- попросил конспект, расшифровку, тезисы, таймкоды, анализ или выжимку YouTube-ролика;
- прислал YouTube URL вместе с инструкцией, как использовать ролик.

Если ссылка пришла без комментариев, задача по умолчанию: сделать подробное, структурное и понятное резюме видео, отразив ключевые идеи, смыслы, выводы и аргументы без воды.

Если ссылка пришла с инструкцией пользователя, инструкция имеет приоритет, а этот skill используется как технический и аналитический маршрут.

## Разрешения
YouTube URL считается узким разрешением на:
- интернет-доступ только к этой ссылке и transcript endpoints;
- transcript-only локальный запуск для subtitles / auto-subtitles;
- временные файлы в `/private/tmp` или `output/`.

Не разрешено без отдельного подтверждения:
- скачивать видео или аудио;
- устанавливать `yt-dlp` или другие зависимости;
- использовать cookies, browser profile, авторизованные сессии или bot-check обход;
- запускать ASR / Whisper;
- сохранять файлы в `raw/`, `agent/` или `projects/`;
- менять файлы проекта, Git, MCP, GUI или внешние папки.

## Procedure
1. Определи, есть ли у пользователя отдельная инструкция к ссылке.
2. Получи transcript-only данные через `yt-dlp`, если инструмент доступен.
3. Если `yt-dlp` отсутствует, остановись и предложи временную установку в `/private/tmp` или другой согласованный вариант.
4. Не скачивай видео или аудио.
5. Если обычный режим не видит автосубтитры, попробуй fallback client mode, например `youtube:player_client=android`.
6. Предпочитай `json3`, если он доступен.
7. Очисти transcript: убери служебные элементы, пустые сегменты, HTML entities, последовательные дубли и грубые ASR-артефакты.
8. Дай в чат структурное резюме, достаточное для понимания видео без просмотра.
9. Коротко предложи, как материал можно использовать для Agent Core или выбранного project layer, если это уместно.
10. Аргументированно предложи вариант хранения или интеграции: не сохранять, `output/`, `raw/`, source note, project/agent integration или гибридный вариант.
11. Любое сохранение или интеграция в файлы выполняется только через `PROPOSE -> APPROVE -> APPLY`.

## Рабочая команда
Ориентир для transcript-only получения:

```bash
yt-dlp \
  --skip-download \
  --write-auto-subs \
  --sub-langs "ru,en" \
  --sub-format "json3/vtt/srt" \
  --extractor-args "youtube:player_client=android" \
  -o "/private/tmp/youtube-transcript-ingest/%(id)s.%(ext)s" \
  "<youtube_url>"
```

Команду можно адаптировать под конкретный ролик, язык и временную папку, но нельзя нарушать запрет на скачивание видео / аудио.

## Формат ответа
Обычно ответ включает:
- название, канал, длительность, язык transcript и качество источника;
- подробное структурное резюме;
- ключевые идеи и выводы;
- практические смыслы;
- ограничения transcript, если они есть;
- рекомендацию по использованию и хранению.

Не пересказывай transcript дословно целиком. Не выдумывай содержание, если transcript недоступен.

## Если transcript недоступен
Сообщи, что ролик не покрывается текущим transcript-only маршрутом.

Можно предложить ASR как отдельную задачу, но не запускать его без подтверждения, потому что это может требовать audio download, внешнего сервиса или отдельной модели.
