YouTube 技能用于对 YouTube 做内容研究与字幕提取。它通过 YouTube Data API v3 访问官方接口,主要经由 MCP 服务器调用,字幕在必要时回退到 yt-dlp。
【主要能力】
- 视频详情:标题、描述、统计数据、发布时间。
- 字幕:带时间戳的字幕内容。
- 频道信息与频道最近视频。
- YouTube 站内搜索。
- 播放列表信息。
【安装与配置】
- 安装依赖。 主方法(MCP 服务器): npm install -g zubeid-youtube-mcp-server 回退工具(MCP 失败时):
yt-dlp for transcript extraction
pip install yt-dlp
- 获取 YouTube API Key。
- 前往 Google Cloud Console;
- 创建或选择项目;
- 在“APIs & Services” → “Library”中搜索“YouTube Data API v3”并启用;
- 在“APIs & Services” → “Credentials”中“Create Credentials” → “API Key”;
- 复制密钥;
- 可选:点击该密钥,在“API restrictions”中仅选择“YouTube Data API v3”并保存。
-
配置 API Key。 方式 A(推荐):在 ~/.clawdbot/clawdbot.json 中加入: { "skills": { "entries": { "youtube": { "apiKey": "AIzaSy..." } } } } 方式 B:环境变量。 export YOUTUBE_API_KEY="AIzaSy..."
-
设置 MCP 服务器。 该技能通过 mcporter 调用 YouTube MCP 服务器;若安装包有问题可从源码构建: cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run build
【使用方式】
搜索视频:
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
search_videos query="ClawdBot AI" maxResults:5
返回视频 ID、标题、描述、频道信息。
获取频道信息:
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
channels_info channelId="UCSHZKyawb77ixDdsGog4iWA"
列出频道最近视频:
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:5
获取视频详情:
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
videos_details videoId="Z-FRe5AKmCU"
获取字幕(主方法):
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
transcripts_getTranscript videoId="Z-FRe5AKmCU"
获取字幕(yt-dlp 回退):
若 MCP 字幕失败(为空或不可用),使用:
yt-dlp --skip-download --write-auto-sub --sub-lang en --sub-format vtt
--output "/tmp/%(id)s.%(ext)s"
"https://youtube.com/watch?v=Z-FRe5AKmCU"
然后读取 /tmp/ 下的 .vtt 文件。也可直接取字幕:
yt-dlp --skip-download --write-auto-sub --sub-lang en --print "%(subtitles)s"
"https://youtube.com/watch?v=VIDEO_ID" 2>&1 | grep -A1000 "WEBVTT"
【常见工作流】
-
查找播客最新一期(以 Lex Fridman Podcast 为例,频道 ID:UCSHZKyawb77ixDdsGog4iWA): mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:1 返回最新视频的标题、ID、发布时间。 -
为研究获取字幕:先从搜索或频道列表取得视频 ID,再优先用 MCP 取字幕;若为空则回退 yt-dlp,并读取 /tmp/VIDEO_ID.en.vtt。
-
按主题搜索: mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
search_videos query="Laravel AI productivity 2025" maxResults:10 再按相关频道或日期过滤。
【频道 ID 参考】 Lex Fridman Podcast:UCSHZKyawb77ixDdsGog4iWA。 查找频道 ID:进入频道页,查看页面源代码,搜索“channelId”或“externalId”,或从搜索结果中提取。
【API 配额限制】 YouTube Data API v3 有每日配额:
- 默认:10000 单位/天;
- 搜索:100 单位/次;
- 视频详情:1 单位/次;
- 字幕:0 单位(使用独立机制)。 建议:字幕查询可大量使用(不耗配额),搜索要节制。
【故障排查】 MCP 服务器不工作:症状为连接关闭或提示需要 YOUTUBE_API_KEY 环境变量。修复为从源码构建: cd /tmp git clone https://github.com/ZubeidHendricks/youtube-mcp-server cd youtube-mcp-server npm install npm run build
Test
YOUTUBE_API_KEY="your_key" node dist/cli.js 字幕为空:原因可能是视频没有字幕,或 MCP 无法访问;修复为使用 yt-dlp 回退。 找不到 yt-dlp: pip install --user yt-dlp
或
pipx install yt-dlp
【安全说明】 YouTube API Key 可安全用于该 MCP 服务器:仅用于向官方 YouTube Data API 认证;不涉及第三方服务器;所有网络调用发往 googleapis.com;代码已审查(无数据外泄)。同时建议:将密钥保存在 Clawdbot 配置中(不要写入代码/脚本);在 Google Cloud Console 中将密钥限制为仅 YouTube Data API v3;不要将密钥提交到 git 仓库。
【示例】
为 LinkedIn 帖子研究播客:先查 Lex Fridman 最新一期,再取视频详情与字幕;若字幕为空则用 yt-dlp,然后读取 /tmp/Z-FRe5AKmCU.en.vtt 并提取关键主题。
查找热点主题视频:
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
search_videos query="ClawdBot security concerns" maxResults:10
再挑选相关视频获取字幕,分析观点与技术主张。
【注意事项】
- MCP 服务器路径:/tmp/youtube-mcp-server/dist/cli.js;
- 始终通过环境变量传入 API Key:YOUTUBE_API_KEY="key" node ...,或在 shell/Clawdbot 配置中全局设置;
- 字幕可能是自动生成的,引用时需核对准确性;
- 如需音频,yt-dlp 也可下载(--extract-audio --audio-format mp3)。