На этой странице
Субтитры YouTube в саммари, треды, блог-посты.
Метаданные навыка¶
| Источник | Встроенный (устанавливается по умолчанию) |
| Путь | skills/media/youtube-content |
Справочник: полный SKILL.md¶
info Ниже приведено полное определение навыка, которое Hermes загружает при его активации. Это те инструкции, которые видит агент, когда навык активен.
YouTube Content Tool¶
Когда использовать¶
Используйте, когда пользователь делится ссылкой на YouTube или видео, просит сделать саммари видео, запросить субтитры или извлечь и преобразовать контент из любого видео на YouTube. Преобразует субтитры в структурированный контент (разделы, саммари, треды, блог-посты).
Извлекает субтитры из видео YouTube и конвертирует их в полезные форматы.
Установка¶
[code] pip install youtube-transcript-api
[/code]
Вспомогательный скрипт¶
SKILL_DIR — каталог, содержащий этот файл SKILL.md. Скрипт принимает любой стандартный URL YouTube, короткие ссылки (youtu.be), shorts, встраиваемые ссылки, прямые трансляции или 11-символьный ID видео.
[code]
# JSON-вывод с метаданными
python3 SKILL_DIR/scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"
# Простой текст (удобно для передачи в дальнейшую обработку)
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --text-only
# С таймстампами
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --timestamps
# Конкретный язык с цепочкой fallback
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --language tr,en
[/code]
Форматы вывода¶
После получения субтитров отформатируйте их в зависимости от запроса пользователя:
- Chapters (Разделы) : Сгруппировать по смене тем, вывести список разделов с таймстампами
- Summary (Саммари) : Краткий обзор всего видео на 5–10 предложений
- Chapter summaries (Саммари разделов) : Разделы с кратким абзацем-саммари для каждого
- Thread (Тред) : Формат Twitter/X — пронумерованные посты, каждый до 280 символов
- Blog post (Блог-пост) : Полноценная статья с заголовком, разделами и ключевыми выводами
- Quotes (Цитаты) : Запоминающиеся цитаты с таймстампами
Пример — вывод разделов¶
[code]
00:00 Introduction — ведущий начинает с описания проблемы
03:45 Background — предыдущие работы и почему существующие решения не подходят
12:20 Core method — разбор предлагаемого подхода
24:10 Results — сравнение бенчмарков и ключевые выводы
31:55 Q&A — вопросы аудитории о масштабируемости и следующих шагах
[/code]
Рабочий процесс¶
- Fetch (Получить) субтитры с помощью вспомогательного скрипта с флагами
--text-only --timestamps. - Validate (Проверить) : убедиться, что вывод непустой и на ожидаемом языке. Если пусто, повторить без
--language, чтобы получить любые доступные субтитры. Если всё ещё пусто, сообщить пользователю, что в видео, скорее всего, отключены субтитры. - Chunk if needed (Разделить при необходимости) : если объём субтитров превышает ~50K символов, разбить на перекрывающиеся части (~40K с перекрытием 2K) и сделать саммари каждой части перед объединением.
- Transform (Преобразовать) в запрошенный формат вывода. Если пользователь не указал формат, по умолчанию используется саммари.
- Verify (Проверить) : перечитать преобразованный вывод на связность, корректность таймстампов и полноту перед показом.
Обработка ошибок¶
- Субтитры отключены : сообщить пользователю; предложить проверить, доступны ли субтитры на странице видео.
- Приватное/недоступное видео : передать ошибку и попросить пользователя проверить URL.
- Нет подходящего языка : повторить без
--language, чтобы получить любые доступные субтитры, затем сообщить пользователю фактический язык. -
Отсутствует зависимость : выполнить
pip install youtube-transcript-apiи повторить. - Справочник: полный SKILL.md
- Когда использовать
- Установка
- Вспомогательный скрипт
- Форматы вывода
- Рабочий процесс
- Обработка ошибок