用途
YouTube Summarizer 用于把 YouTube 视频自动转成结构化、可检索的知识。当用户分享 YouTube 链接(youtube.com/watch、youtu.be、youtube.com/shorts)或要求总结、转录某个视频内容时,该技能会抓取字幕、生成摘要,并把完整字幕交付到消息平台。
主要能力
- 一步式字幕提取:直接放入 YouTube URL 即可自动获取完整字幕,无需手动复制粘贴。
- 结构化摘要:每次按固定格式输出(主旨 → 关键洞察 → 要点 → 结论),而非随机要点。
- 包含视频元数据:标题、频道、播放量、发布日期会嵌入摘要。
- 完整字幕交付:将带时间戳的字幕保存为文件,并发送到 Telegram/聊天平台。
- 可在 VPS/云环境运行:使用 Android 客户端模拟绕过 YouTube 对云 IP 的封锁(yt-dlp 在此场景会失败)。
- 多语言支持:按请求语言自动抓取,不可用时回退英文。
三种模式
- quick:3 条要点 TL;DR + 一条关键收获,适合快速消费、分享片段。
- standard:完整结构化摘要(主旨、洞察、收获),适合学习、记笔记、研究。默认使用此模式。
- deep:完整摘要 + 章节拆解 + 内容再利用机会,适合把视频转化为内容资产。
使用方式
依赖:需要安装 MCP YouTube Transcript 服务器,路径为 /root/clawd/mcp-server-youtube-transcript。若不存在,安装命令:
cd /root/clawd git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git cd mcp-server-youtube-transcript npm install && npm run build
工作流程:
-
检测 YouTube URL,从以下模式提取视频 ID:
- https://www.youtube.com/watch?v=VIDEO_ID
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/shorts/VIDEO_ID
- 直接视频 ID(11 个字符)
-
抓取字幕,运行:
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 读取输出。
-
处理数据,解析 JSON 提取:result.metadata.title(标题)、result.metadata.author(频道名)、result.metadata.viewCount(格式化播放量)、result.metadata.publishDate(发布日期)、result.actualLang(使用语言)、result.lines(字幕片段数组)。全文为 result.lines.map(l => l.text).join(' ')。
-
生成摘要,使用模板:
📹 Video: [title] 👤 Channel: [author] | 👁️ Views: [views] | 📅 Published: [date]
🎯 Main Thesis: [1-2 句核心论点]
💡 Key Insights:
- [洞察 1]
- [洞察 2]
- [洞察 3]
- [洞察 4]
- [洞察 5]
📝 Notable Points:
- [补充要点 1]
- [补充要点 2]
🔑 Takeaway: [可执行的结论]
-
保存完整字幕到带时间戳的文件:/root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt,文件包含视频元数据头(标题、频道、URL、日期)、完整字幕文本和便于查找的 URL 引用。
-
平台特定交付。若渠道为 Telegram:
message --action send --channel telegram --target CHAT_ID
--filePath /root/clawd/transcripts/YYYY-MM-DD_VIDEO_ID.txt
--caption "📄 YouTube Transcript: [title]"
若渠道为其他/webchat:直接回复摘要(不附文件)。
- 以结构化摘要作为对用户的回复。
命令行配置示例:
- 标准模式(默认):youtube-summarizer [URL]
- 快速模式:youtube-summarizer [URL] --quick
- 深度模式:youtube-summarizer [URL] --deep
- 指定语言:youtube-summarizer [URL] --lang es
安装与设置:
1. 克隆并安装 MCP 服务器
cd /root/clawd git clone https://github.com/kimtaeyoon83/mcp-server-youtube-transcript.git cd mcp-server-youtube-transcript npm install && npm run build
2. 测试安装
node --input-type=module -e " import { getSubtitles } from './dist/youtube-fetcher.js'; const result = await getSubtitles({ videoID: 'dQw4w9WgXcQ', lang: 'en' }); console.log(result.metadata.title); "
3. 创建字幕目录
mkdir -p /root/clawd/transcripts
4. 验证技能就绪
youtube-summarizer --check-setup
适用场景
- 内容创作者研究竞品 YouTube 策略:批量分析竞品视频,识别热门话题、信息模式和内容空白。
- 学习与记笔记:把长视频转成结构化摘要。
- 研究:建立按主题/领域组织的字幕库,用 grep 或文本搜索跨字幕查找特定话题,追踪趋势。
- 内容再利用:从视频洞察生成 Twitter 线程、博客文章、newsletter;提取开头 30 秒作为钩子模式。
限制与错误处理
- 若字幕抓取失败:检查视频是否启用字幕;请求语言不可用时尝试 lang: 'en' 回退;告知用户字幕不可用并建议替代方案(YouTube 手动字幕功能:设置 → 显示字幕;视频可能无字幕;换一个视频)。
- 若 MCP 服务器未安装:提供安装说明,在合适场景下可自动安装。
- 若视频 ID 提取失败:请用户提供完整 YouTube URL 或视频 ID。
- 若视频为年龄限制或私密:告知因限制无法访问字幕,建议检查视频隐私设置。
- 常见问题:"Transcript not available" 通常是视频未启用字幕;VPS 上 "Failed to fetch transcript" 可能是 YouTube 更新 API,需更新 MCP 服务器(cd /root/clawd/mcp-server-youtube-transcript && git pull && npm install && npm run build);"Video ID not recognized" 通常是 URL 格式错误,建议直接从 YouTube 地址栏复制。
质量准则
摘要应可在 30 秒内扫读;不添加字幕中没有的信息;使用一致格式;按视频长度调整细节:短视频(<5 分钟)3 条关键洞察,中等视频(5-30 分钟)标准格式 5 条洞察,长视频(>30 分钟)7 条以上洞察并按需分节。优先提取数据点、可引用金句、框架方法、反常识观点和证据案例。
路线图(暂未提供具体时间)
多视频批量处理(分析播放列表)、字幕情感分析、说话人分离、自动章节检测、跨视频模式分析。
该技能基于 MCP YouTube Transcript 服务器构建(使用 Android 模拟以保证云环境可靠性)。