SuperAPI AI 工具集

youtube

数据与分析

查看项目

更新于 10-16 06:05

技能介绍

YouTube 技能用于对 YouTube 做内容研究与字幕提取。它通过 YouTube Data API v3 访问官方接口,主要经由 MCP 服务器调用,字幕在必要时回退到 yt-dlp。

【主要能力】

  • 视频详情:标题、描述、统计数据、发布时间。
  • 字幕:带时间戳的字幕内容。
  • 频道信息与频道最近视频。
  • YouTube 站内搜索。
  • 播放列表信息。

【安装与配置】

  1. 安装依赖。 主方法(MCP 服务器): npm install -g zubeid-youtube-mcp-server 回退工具(MCP 失败时):

yt-dlp for transcript extraction

pip install yt-dlp

  1. 获取 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”并保存。
  1. 配置 API Key。 方式 A(推荐):在 ~/.clawdbot/clawdbot.json 中加入: { "skills": { "entries": { "youtube": { "apiKey": "AIzaSy..." } } } } 方式 B:环境变量。 export YOUTUBE_API_KEY="AIzaSy..."

  2. 设置 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"

【常见工作流】

  1. 查找播客最新一期(以 Lex Fridman Podcast 为例,频道 ID:UCSHZKyawb77ixDdsGog4iWA): mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js"
    channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:1 返回最新视频的标题、ID、发布时间。

  2. 为研究获取字幕:先从搜索或频道列表取得视频 ID,再优先用 MCP 取字幕;若为空则回退 yt-dlp,并读取 /tmp/VIDEO_ID.en.vtt。

  3. 按主题搜索: 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)。