关于 YouTube Data MCP Server
YouTube Data MCP Server 为 MCP 客户端提供 YouTube 字幕、视频信息、评论和搜索功能,支持 Stdio 与 StreamableHTTP 传输方式。
主要功能
- 01提取字幕并可附时间戳
- 02获取视频元数据
- 03获取评论和回复
- 04搜索视频、频道和播放列表
适用场景
- 01按指定语言读取视频字幕
- 02查看并分页浏览视频评论
- 03查找 YouTube 视频、频道或播放列表
MCP 相关
这是一个 MCP 服务,提供字幕提取、元数据查询、评论与回复获取及 YouTube 搜索工具,支持 Stdio 和 StreamableHTTP 传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | YouTube 视频 URL 或 11 位视频 ID |
| lang | string | 否 | 语言代码(en、ko、ja、es 等) |
| includeTimestamps | boolean | 否 | 包含每个片段的开始时间和时长 |
详细介绍
YouTube Data MCP 服务
用于提取 YouTube 视频字幕、评论和搜索结果的模型上下文协议(MCP)服务。支持 Stdio 和 StreamableHTTP 两种传输方式。
功能
getTranscript- 提取字幕,可选择包含时间戳getVideoInfo- 获取视频元数据(标题、观看次数、评论数)getComments- 获取评论,支持分页和排序getCommentReplies- 获取特定评论的回复searchYoutube- 搜索视频、频道和播放列表
v2.0 新增内容
- 双传输方式:Stdio(默认)+ StreamableHTTP,支持 Web 集成
- 可靠的字幕提取:将
youtube-transcript替换为youtube-caption-extractor(绕过机器人检测,支持无服务器环境) - 时间戳支持:可选包含每个字幕片段的开始时间和时长
- 模块化架构:清晰分离各项职责(配置、类型、服务、工具)
- MCP SDK v1.25.2:最新 SDK,稳定性有所提升
要求
- Node.js 18+
- SerpAPI 密钥(用于搜索、评论和视频信息)
安装
git clone https://github.com/diasm3/serpapi-youtube-mcp-server.git
cd serpapi-youtube-mcp-server
npm install
配置
创建 .env 文件:
SERPAPI_KEY=your_serpapi_key_here
PORT=3000 # optional, for HTTP mode
前往 serpapi.com 获取 SerpAPI 密钥。
运行服务
# Build
npm run build
# Stdio mode (default) - for Claude Desktop, Cursor, etc.
npm start
# HTTP mode - for web applications
npm start -- --http
# or
MCP_TRANSPORT=http npm start
HTTP 端点
以 HTTP 模式运行时:
GET /health- 健康检查POST /mcp- MCP 请求处理程序
MCP 客户端配置
Claude Desktop / Cursor
{
"mcpServers": {
"youtube-data": {
"command": "node",
"args": ["/path/to/serpapi-youtube-mcp-server/build/index.js"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
使用 npx
{
"mcpServers": {
"youtube-data": {
"command": "npx",
"args": ["-y", "youtube-data-mcp"],
"env": {
"SERPAPI_KEY": "your_serpapi_key_here"
}
}
}
}
API 工具
getTranscript
从 YouTube 视频中提取字幕。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | YouTube URL 或视频 ID |
lang | string | 否 | 语言代码(默认:'en') |
includeTimestamps | boolean | 否 | 包含每个片段的开始时间和时长 |
Get the Korean transcript for https://youtube.com/watch?v=xxxxx with timestamps
getVideoInfo
使用 SerpAPI 获取视频元数据。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | YouTube URL 或视频 ID |
返回:标题、观看次数、发布日期、频道、评论数、分页令牌
getComments
获取视频评论,支持分页。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 有条件 | 获取第一页时必填 |
limit | number | 否 | 评论数上限(默认:100) |
sort | string | 否 | 'relevance' 或 'time' |
pageToken | string | 否 | 用于分页 |
getCommentReplies
获取特定评论的回复。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageToken | string | 是 | 评论中的 repliesToken |
searchYoutube
在 YouTube 上搜索视频、频道和播放列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 搜索查询 |
limit | number | 否 | 结果数上限(默认:10) |
gl | string | 否 | 国家代码(us、kr、jp) |
hl | string | 否 | 语言代码(en、ko、ja) |
sp | string | 否 | 过滤参数 |
pageToken | string | 否 | 用于分页 |
项目结构
src/
├── index.ts # Server entry (Stdio + HTTP)
├── config/ # Environment configuration
├── types/ # Zod schemas + TypeScript types
├── services/
│ ├── serpapi.ts # SerpAPI integration
│ └── youtube.ts # Transcript extraction
├── tools/ # MCP tool definitions
└── utils/ # Helper functions
故障排除
字幕不可用
- 某些视频未启用字幕
- 尝试使用其他语言代码(en、ko、ja 等)
- 并非所有视频都提供自动生成的字幕
SerpAPI 错误
- 确认 API 密钥有效
- 检查 SerpAPI 配额和限制
- 确认视频可公开访问
HTTP 模式无法启动
- 检查 PORT 是否已被占用
- 确认已设置环境变量
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。