跳到主要内容

YouTube 内容

获取 YouTube 视频字幕并将其转换为结构化内容(章节、摘要、推文串、博客文章)。当用户分享 YouTube URL 或视频链接、要求总结视频、请求字幕,或希望从任何 YouTube 视频中提取并重新格式化内容时使用。

技能元数据

来源捆绑(默认安装)
路径skills/media/youtube-content

参考:完整 SKILL.md

信息

以下是 Hermes 在触发此技能时加载的完整技能定义。这是技能激活时代理看到的指令。

YouTube 内容工具

从 YouTube 视频中提取字幕并将其转换为有用的格式。

设置

pip install youtube-transcript-api

辅助脚本

SKILL_DIR 是包含此 SKILL.md 文件的目录。该脚本接受任何标准 YouTube URL 格式、短链接 (youtu.be)、Shorts、嵌入链接、直播链接或原始的 11 字符视频 ID。

# JSON output with metadata
python3 SKILL_DIR/scripts/fetch_transcript.py "https://youtube.com/watch?v=VIDEO_ID"

# Plain text (good for piping into further processing)
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --text-only

# With timestamps
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --timestamps

# Specific language with fallback chain
python3 SKILL_DIR/scripts/fetch_transcript.py "URL" --language tr,en

输出格式

获取字幕后,根据用户的要求进行格式化:

  • 章节:按主题转换分组,输出带时间戳的章节列表
  • 摘要:整个视频的简明概述,5-10 句话
  • 章节摘要:每个章节附带一段简短的段落摘要
  • 推文串:Twitter/X 推文串格式——编号帖子,每条少于 280 个字符
  • 博客文章:包含标题、章节和关键要点的全篇文章
  • 引用:带时间戳的著名引言

示例 — 章节输出

00:00 Introduction — host opens with the problem statement
03:45 Background — prior work and why existing solutions fall short
12:20 Core method — walkthrough of the proposed approach
24:10 Results — benchmark comparisons and key takeaways
31:55 Q&A — audience questions on scalability and next steps

工作流程

  1. 获取:使用辅助脚本及 --text-only --timestamps 参数获取字幕。
  2. 验证:确认输出非空且为预期语言。如果为空,请重试时不带 --language 参数以获取任何可用的字幕。如果仍然为空,告知用户该视频可能已禁用字幕。
  3. 分块(如需):如果字幕超过 ~50K 字符,将其分割为重叠的块(~40K 字符,重叠 2K 字符),在合并之前对每个块进行摘要。
  4. 转换:转换为请求的输出格式。如果用户未指定格式,默认为摘要。
  5. 核查:在呈现之前,重新阅读转换后的输出,检查连贯性、正确的时间戳和完整性。

错误处理

  • 字幕已禁用:告知用户;建议他们检查视频页面上是否有可用的字幕。
  • 视频私有/不可用:转发错误并要求用户验证 URL。
  • 无匹配语言:重试时不带 --language 参数以获取任何可用的字幕,然后向用户注明实际语言。
  • 缺少依赖项:运行 pip install youtube-transcript-api 并重试。