介绍
# YouTube Summarizer Skill
自动从 YouTube 视频获取字幕,生成结构化摘要,并将完整字幕发送到消息平台。
## 何时使用
在以下情况下激活此技能: - 用户分享了 YouTube URL (youtube.com/watch, youtu.be, youtube.com/shorts) - 用户要求对 YouTube 视频进行摘要或转录 - 用户请求有关 YouTube 视频内容的信息
## 依赖项
**必须:** MCP YouTube Transcript server 必须安装于: `/root/clawd/mcp-server-youtube-transcript`
如果不存在,请安装它: ```bash cd /root/clawd git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git cd mcp-server-youtube-transcript npm install && npm run build ```
## 工作流程
### 1. 检测 YouTube URL
从以下模式提取视频 ID: - `https://www.youtube.com/watch?v=VIDEO_ID` - `https://youtu.be/VIDEO_ID` - `https://www.youtube.com/shorts/VIDEO_ID` - 直接视频 ID:`VIDEO_ID`(11 个字符)
### 2. 获取字幕
运行此命令以获取字幕: ```bash cd /root/clawd/mcp-server-youtube-transcript && node --input-type=module -e " import { getSubtitles } from './dist/youtube-fetcher.js'; const result = await getSubtitles({ videoID: 'VIDEO_ID', lang: 'en' }); console.log(JSON.stringify(result, null, 2)); " > /tmp/yt-transcript.json ```
将 `VIDEO_ID` 替换为提取的 ID。从 `/tmp/yt-transcript.json` 读取输出。
### 3. 处理数据
解析 JSON 以提取: - `result.metadata.title` - 视频标题 - `result.metadata.author` - 频道名称 - `result.metadata.viewCount` - 格式化后的观看次数 - `result.metadata.publishDate` - 发布日期 - `result.actualLang` - 使用的语言 - `result.lines` - 字幕片段数组
完整文本:`result.lines.map(l => l.text).join(' ')`
### 4. 生成摘要
使用此模板创建结构化摘要:
```markdown 📹 **Video:** [title] 👤 **Channel:** [author] | 👁️ **Views:** [views] | 📅 **Published:** [date]
**🎯 Main Thesis:** [1-2 sentence core argument/message]
**💡 Key Insights:** - [insight 1] - [insight 2] - [insight 3] - [insight 4] - [insight 5]
**📝 Notable Points:** - [additional point 1] - [additional point 2]
**🔑 Takeaway:** [Practical application or conclusion] ```
目标是: - 核心论点:最多 1-2 句话 - 关键见解:3-5 个要点,每点 1-2 句话 - 值得注意的点:2-4 个支持细节 - 收获:可执行的结论
### 5. 保存完整字幕
将完整字幕保存到带有时间戳的文件: ``` /root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt ```
在文件中包含: - 视频元数据标头 - 完整字幕文本 - URL 引用
### 6. 特定平台交付
**如果是 Telegram 频道:** ```bash message --action send --channel telegram --target CHAT_ID \ --filePath /root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt \ --caption "📄 YouTube Transcript: [title]" ```
**如果是其他/webchat 频道:** 仅回复摘要(不附加文件)。
### 7. 回复摘要
将结构化摘要作为您的回复发送给用户。
## 错误处理
**如果获取字幕失败:** - 检查视频是否启用了字幕 - 如果请求的语言不可用,尝试使用 `lang: 'en'` 作为回退 - 告知用户字幕不可用并建议替代方案: - 手动 YouTube 字幕功能 - 视频可能没有字幕 - 尝试不同的视频
**如果未安装 MCP 服务器:** - 提供安装说明 - 如果在适当的上下文中,提议自动安装它
**如果视频 ID 提取失败:** - 请用户提供完整的 YouTube URL 或视频 ID
## 示例
请参阅 `examples/` 目录以获取示例输出。
## 质量指南
- **简洁:** 摘要应能在 30 秒内快速浏览 - **准确:** 不要添加字幕中不存在的信息 - **结构化:** 使用一致的格式以便于阅读 - **语境化:** 根据视频长度调整详细程度 - 短视频(<5 分钟):简短摘要 - 长视频(>30 分钟):更详细的细分
## 注意事项
- MCP 服务器使用 Android 客户端模拟来绕过 YouTube 的云 IP 封锁 - 在 yt-dlp 经常失败的 VPS/云环境中可靠工作 - 支持多种语言,并自动回退到英语 - 字幕质量取决于 YouTube 的自动生成字幕或手动字幕