技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
youtube-zh【数据与研究】搜索 YouTube 视频、获取频道信息、提取视频详情和字幕,通过 YouTube Data API v3 的 MCP 服务器或 yt-dlp 备用方案实现。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
使用 YouTube Data API v3 搜索 YouTube、获取视频/频道信息和提取字幕。
MCP 服务器(主要方法):
npm install -g zubeid-youtube-mcp-server
备用工具(如果 MCP 失败):
# yt-dlp 用于字幕提取
pip install yt-dlp
选项 A:Clawdbot 配置(推荐)
添加到 ~/.clawdbot/clawdbot.json:
{
"skills": {
"entries": {
"youtube": {
"apiKey": "AIzaSy..."
}
}
}
}
选项 B:环境变量
export YOUTUBE_API_KEY="AIzaSy..."
此技能将使用 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"
如果 MCP 字幕失败(为空或不可用),使用 yt-dlp:
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 播客
# 获取频道 ID(Lex Fridman: UCSHZKyawb77ixDdsGog4iWA)
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:1
返回最新视频的标题、ID、发布日期。
# 步骤 1:从搜索或频道列表获取视频 ID
# 步骤 2:首先尝试 MCP 字幕
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
transcripts_getTranscript videoId="VIDEO_ID"
# 步骤 3:如果为空,回退到 yt-dlp
yt-dlp --skip-download --write-auto-sub --sub-lang en \
--output "/tmp/%(id)s.%(ext)s" \
"https://youtube.com/watch?v=VIDEO_ID"
cat /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
按相关频道或日期筛选结果。
在此保存常用频道以便快速访问:
UCSHZKyawb77ixDdsGog4iWA查找频道 ID:
"channelId": 或 "externalId"或使用搜索并从结果中提取。
YouTube Data API v3 有每日配额:
提示: 大量使用字幕查找(无配额成本),谨慎使用搜索。
症状: Connection closed 或 YOUTUBE_API_KEY environment variable is required
解决: 从源码构建:
cd /tmp
git clone https://github.com/ZubeidHendricks/youtube-mcp-server
cd youtube-mcp-server
npm install
npm run build
# 测试
YOUTUBE_API_KEY="your_key" node dist/cli.js
症状: 返回字幕但内容为空
原因: 视频可能没有字幕,或 MCP 无法访问
解决: 使用 yt-dlp 备用方案(见上文)
pip install --user yt-dlp
# 或
pipx install yt-dlp
YouTube API 密钥可安全用于此 MCP 服务器:
googleapis.com但是:
# 1. 查找最新的 Lex Fridman 剧集
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
channels_listVideos channelId="UCSHZKyawb77ixDdsGog4iWA" maxResults:1
# 2. 获取视频详情
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
videos_details videoId="Z-FRe5AKmCU"
# 3. 获取字幕
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
transcripts_getTranscript videoId="Z-FRe5AKmCU"
# 如果字幕为空,使用 yt-dlp
yt-dlp --skip-download --write-auto-sub --sub-lang en \
--output "/tmp/%(id)s.%(ext)s" \
"https://youtube.com/watch?v=Z-FRe5AKmCU"
# 4. 分析字幕以找出有趣的主题
#(读取 /tmp/Z-FRe5AKmCU.en.vtt 并提取关键主题)
# 搜索最近的视频
mcporter call --stdio "node /tmp/youtube-mcp-server/dist/cli.js" \
search_videos query="ClawdBot security concerns" maxResults:10
# 选择相关视频,获取字幕
# 分析情感和技术主张
/tmp/youtube-mcp-server/dist/cli.jsYOUTUBE_API_KEY="key" node ...--extract-audio --audio-format mp3)