$npx -y skills add SpaceZephyr/read-buddy --skill read-youtube-transcript从 YouTube 视频链接提取字幕并转换为中文文字稿。支持自动生成字幕和手动字幕。 使用场景:(1) 用户提供 YouTube 链接并要求提取字幕/文字稿,(2) 用户要求将 YouTube 视频内容转为文字, (3) 用户说"帮我把这个 YouTube 视频转成文字"或类似请求。 触发词:YouTube 字幕、视频转文字、提取字幕、YouTube transcript、视频文字稿。
| 1 | # YouTube 字幕提取技能 |
| 2 | |
| 3 | 从 YouTube 视频提取字幕,输出中文文字稿。 |
| 4 | |
| 5 | ## 快速使用 |
| 6 | |
| 7 | ```bash |
| 8 | python3 scripts/get_transcript.py "https://www.youtube.com/watch?v=VIDEO_ID" |
| 9 | ``` |
| 10 | |
| 11 | ## 工作流程 |
| 12 | |
| 13 | 1. **获取视频链接**:从用户消息中提取 YouTube URL |
| 14 | 2. **运行脚本**:执行 `scripts/get_transcript.py` 提取字幕 |
| 15 | 3. **处理输出**: |
| 16 | - 如果字幕是中文:直接输出 |
| 17 | - 如果字幕是英文:翻译为中文后输出 |
| 18 | 4. **保存结果**:根据用户需求保存为 Markdown 文件 |
| 19 | |
| 20 | ## 脚本参数 |
| 21 | |
| 22 | | 参数 | 说明 | 默认值 | |
| 23 | |-----|------|-------| |
| 24 | | `url` | YouTube 视频链接或 ID | 必填 | |
| 25 | | `-f, --format` | 输出格式: `text`, `markdown`, `json` | `markdown` | |
| 26 | | `-t, --timestamps` | 包含时间戳 | 否 | |
| 27 | | `-l, --lang` | 首选语言(逗号分隔) | `zh,en` | |
| 28 | | `-o, --output` | 输出文件路径 | stdout | |
| 29 | |
| 30 | ## 使用示例 |
| 31 | |
| 32 | ### 基本用法 |
| 33 | ```bash |
| 34 | python3 scripts/get_transcript.py "https://www.youtube.com/watch?v=dQw4w9WgXcQ" |
| 35 | ``` |
| 36 | |
| 37 | ### 带时间戳输出 |
| 38 | ```bash |
| 39 | python3 scripts/get_transcript.py -t "https://youtu.be/VIDEO_ID" |
| 40 | ``` |
| 41 | |
| 42 | ### 保存到文件 |
| 43 | ```bash |
| 44 | python3 scripts/get_transcript.py -o output.md "https://www.youtube.com/watch?v=VIDEO_ID" |
| 45 | ``` |
| 46 | |
| 47 | ### JSON 格式(便于后处理) |
| 48 | ```bash |
| 49 | python3 scripts/get_transcript.py -f json "VIDEO_ID" |
| 50 | ``` |
| 51 | |
| 52 | ## 支持的 URL 格式 |
| 53 | |
| 54 | - `https://www.youtube.com/watch?v=VIDEO_ID` |
| 55 | - `https://youtu.be/VIDEO_ID` |
| 56 | - `https://www.youtube.com/embed/VIDEO_ID` |
| 57 | - 直接使用 Video ID |
| 58 | |
| 59 | ## 语言优先级 |
| 60 | |
| 61 | 脚本按以下顺序查找字幕: |
| 62 | 1. 简体中文 (zh-Hans) |
| 63 | 2. 繁体中文 (zh-Hant) |
| 64 | 3. 中文 (zh) |
| 65 | 4. 英文 (en) |
| 66 | 5. 自动生成字幕 |
| 67 | |
| 68 | ## 翻译处理 |
| 69 | |
| 70 | 如果获取到的是英文字幕,需要翻译为中文: |
| 71 | |
| 72 | 1. 运行脚本获取英文字幕 |
| 73 | 2. 使用 Claude 内置能力翻译为流畅的中文 |
| 74 | 3. 保持原文结构和段落划分 |
| 75 | |
| 76 | ## 错误处理 |
| 77 | |
| 78 | | 错误 | 原因 | 解决方案 | |
| 79 | |-----|------|---------| |
| 80 | | No captions available | 视频无字幕 | 告知用户该视频没有可用字幕 | |
| 81 | | Cannot extract video ID | URL 格式错误 | 请求用户提供正确的 YouTube 链接 | |
| 82 | | 网络超时 | 网络问题 | 重试或检查网络连接 | |
| 83 | |
| 84 | ## 输出格式示例 |
| 85 | |
| 86 | ### Markdown 格式 |
| 87 | ```markdown |
| 88 | # 视频标题 |
| 89 | |
| 90 | - **Video ID**: abc123 |
| 91 | - **语言**: 中文(自动生成) |
| 92 | - **链接**: https://www.youtube.com/watch?v=abc123 |
| 93 | |
| 94 | --- |
| 95 | |
| 96 | ## 文字稿 |
| 97 | |
| 98 | 这是视频的第一段内容... |
| 99 | |
| 100 | 这是视频的第二段内容... |
| 101 | ``` |