YouTube MCP 服务器
用于与 YouTube 数据交互的模型上下文协议 (MCP) 服务器。该服务器提供资源和工具,用于通过 stdio 接口查询 YouTube 视频、频道、评论和文字记录。
特征
- 使用高级过滤选项搜索 YouTube 视频
- 获取有关特定视频和频道的详细信息
- 比较多个视频的统计数据
- 按地区和类别发现热门视频
- 分析频道性能和视频统计数据
- 检索视频评论和文字记录/字幕
- 生成视频分析和文字记录摘要
先决条件
- Node.js(v16+)
- YouTube 数据 API 密钥
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 YouTube MCP 服务器:
npx -y @smithery/cli install @coyaSONG/youtube-mcp-server --client claude
手动安装
- 克隆此存储库:
git clone https://github.com/coyaSONG/youtube-mcp-server.git
cd youtube-mcp-server
- 安装依赖项:
- 在根目录中创建一个
.env
文件:YOUTUBE_API_KEY=your_youtube_api_key_here
PORT=3000
用法
构建和运行
- 构建项目:
- 运行服务器:
- 以开发模式运行:
- 清理构建工件:
Docker 部署
该项目包含一个用于容器化部署的Dockerfile:
# Build the Docker image
docker build -t youtube-mcp-server .
# Run the container
docker run -p 3000:3000 --env-file .env youtube-mcp-server
API 参考
资源
youtube://video/{videoId}
- 获取特定视频的详细信息youtube://channel/{channelId}
- 获取有关特定频道的信息youtube://transcript/{videoId}
- 获取特定视频的成绩单- 可选查询参数:
?language=LANGUAGE_CODE
(例如en
、 ko
、 ja
)
工具
基本工具
search-videos
- 使用高级过滤选项搜索 YouTube 视频get-video-comments
- 获取特定视频的评论get-video-transcript
- 获取特定视频的文字记录(可选语言)enhanced-transcript
- 具有过滤、搜索和多视频功能的高级成绩单提取get-key-moments
- 从视频记录中提取带有时间戳的关键时刻,以便于导航get-segmented-transcript
- 将视频记录分成多个片段以便于分析
统计工具
get-video-stats
- 获取特定视频的统计信息get-channel-stats
- 获取订阅者数量、观看次数和其他频道统计数据compare-videos
- 比较多个视频的统计数据
发现工具
get-trending-videos
- 按地区和类别检索热门视频get-video-categories
- 获取特定区域可用的视频类别
分析工具
analyze-channel-videos
- 分析特定频道视频的表现趋势
提示
video-analysis
- 生成 YouTube 视频的分析transcript-summary
- 根据视频成绩单生成视频摘要,可自定义长度并提取关键字segment-by-segment-analysis
- 通过分析视频的每个片段提供内容的详细细分
示例
访问视频脚本
youtube://transcript/dQw4w9WgXcQ
获取特定语言的成绩单
youtube://transcript/dQw4w9WgXcQ?language=en
使用统计工具
// Get video statistics
{
"type": "tool",
"name": "get-video-stats",
"parameters": {
"videoId": "dQw4w9WgXcQ"
}
}
// Compare multiple videos
{
"type": "tool",
"name": "compare-videos",
"parameters": {
"videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"]
}
}
使用成绩单摘要提示
{
"type": "prompt",
"name": "transcript-summary",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"language": "en"
}
}
使用增强转录工具
// Basic multi-video transcript extraction
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ", "9bZkp7q19f0"],
"format": "timestamped"
}
}
// With search and time filtering
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ"],
"filters": {
"timeRange": {
"start": 60, // Start at 60 seconds
"end": 180 // End at 180 seconds
},
"search": {
"query": "never gonna",
"contextLines": 2
}
},
"format": "merged"
}
}
// With smart segmentation for easier analysis
{
"type": "tool",
"name": "enhanced-transcript",
"parameters": {
"videoIds": ["dQw4w9WgXcQ"],
"filters": {
"segment": {
"count": 5,
"method": "smart" // Breaks at natural pauses
}
},
"format": "timestamped",
"language": "en"
}
}
使用增强的转录分析功能
// Get key moments from a video
{
"type": "tool",
"name": "get-key-moments",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"maxMoments": "5"
}
}
// Get a segmented transcript
{
"type": "tool",
"name": "get-segmented-transcript",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"segmentCount": "4"
}
}
// Get a segment-by-segment analysis
{
"type": "prompt",
"name": "segment-by-segment-analysis",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"segmentCount": "4"
}
}
// Get customized transcript summary
{
"type": "prompt",
"name": "transcript-summary",
"parameters": {
"videoId": "dQw4w9WgXcQ",
"language": "en",
"summaryLength": "detailed",
"includeKeywords": "true"
}
}
错误处理
服务器处理各种错误情况,包括:
- API 密钥无效
- 未找到视频或频道
- 无法获取成绩单
- 网络问题
执照
麻省理工学院
致谢