使用说明
YouTube MCP服务器
一种模型上下文协议(MCP)服务器,提供全面的YouTube集成,包括视频搜索、详细的视频信息检索和转录提取功能。
特性
- 🔍 视频搜索:搜索支持分页的YouTube视频
- 📹 视频详细信息:获取全面的视频信息,包括统计数据、内容详细信息和元数据
- 📝 获取成绩单:具有智能语言优先级的真实成绩单提取
- 🌐 多语言支持:自动语言检测和成绩单回退
- ⚡ 异步性能:内置async/await以获得最佳性能
- 🔒 输入/输出验证:完成模式验证,并提供详细的错误报告
工具
1. search_videos
使用灵活的分页在YouTube上搜索视频。
参数:
query(字符串,必填):查找视频的搜索查询pageToken(字符串,可选):用于分页以获取下一页/上一页结果的标记
例子:
{
"query": "python programming tutorial",
"pageToken": "CAUQAA"
}
退货: 带有视频片段和分页标记的搜索结果
2. get_videos
获取有关特定YouTube视频的详细信息。
参数:
ids(数组,必填):要检索的视频ID列表(最多50个)parts(数组,可选):要检索的部分视频数据- 可用零件:
snippet,contentDetails,statistics,status,player,recordingDetails,fileDetails,processingDetails,suggestions,liveStreamingDetails,localizations,topicDetails - 违约:
["snippet"]
- 可用零件:
例子:
{
"ids": ["dQw4w9WgXcQ", "9bZkp7q19f0"],
"parts": ["snippet", "contentDetails", "statistics"]
}
退货: 全面的视频数据,包括持续时间、观看次数、点赞次数、描述等
3. get_video_transcript
通过智能语言处理提取视频转录。
参数:
videoId(字符串,必填):YouTube视频IDlanguage(字符串,可选):首选语言代码(例如,'en'、'es'、'fr')
语言优先级:
- 要求的语言 (如有规定)
- 英语 (回退)
- 手工抄本 (优先于自动生成)
- 任何可用的成绩单
例子:
{
"videoId": "dQw4w9WgXcQ",
"language": "en"
}
退货: 带有文本段、精确时间戳和语言元数据的转录
安装
先决条件
- YouTube数据API v3密钥:
- 访问 谷歌云控制台
- 创建新项目或选择现有项目
- 启用YouTube数据API v3
- 创建凭据(API密钥)
- 复制API密钥进行配置
设置
-
安装服务器:
git clone <repository-url> cd youtube-mcp-server uv sync -
配置环境:
cp .env.example .env # Edit .env and add your YouTube API key: # YOUTUBE_API_KEY=your_actual_api_key_here -
测试安装:
uv run python test_server.py
Claude桌面集成
添加到您的Claude Desktop配置中:
{
"mcpServers": {
"youtube": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/yourusername/youtube-mcp-server",
"youtube-mcp-server"
],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here"
}
}
}
}
使用示例
基本视频搜索
# Search for Python tutorials
result = await search_videos("python programming tutorial")
获取视频详细信息
# Get comprehensive video information
result = await get_videos(
ids=["dQw4w9WgXcQ"],
parts=["snippet", "contentDetails", "statistics"]
)
获取成绩单
# Get transcript in preferred language
result = await get_video_transcript("dQw4w9WgXcQ", language="en")
API费率限制
YouTube Data API v3具有以下配额限制:
- 默认配额:每天10000个单位
- 搜索请求:每个100个单位
- 视频详细信息:每个视频1个单位
- 成绩单请求:无额外配额成本(使用单独的API)
典型用法:
- 视频搜索+详细信息:约110个单位(允许约90次搜索/天)
- 成绩单获取:不影响配额
发展
项目结构
youtube-mcp-server/
├── youtube_mcp_server/
│ ├── __init__.py
│ ├── __main__.py
│ ├── server.py # MCP server implementation
│ ├── handlers.py # Tool function implementations
│ └── tools.json # Tool schema definitions
├── test_cases.json # Comprehensive test cases
├── test_server.py # Test suite with schema validation
├── main.py # Development entry point
├── pyproject.toml # Project configuration
└── README.md
运行测试
# Run comprehensive test suite
uv run python test_server.py
# Run the server locally
uv run python main.py
添加功能
- 定义工具模式 在……里面
youtube_mcp_server/tools.json - 机具功能 在……里面
youtube_mcp_server/handlers.py - 更新映射 在……里面
TOOL_FUNCTIONS - 添加测试用例 在……里面
test_cases.json - 运行测试 证实
错误处理
服务器提供全面的错误处理:
- 🔑 API关键问题:清除YouTube API密钥丢失/无效的消息
- 📊 配额管理:有关API配额限制的信息性消息
- ✅ 输入验证:不正确参数的详细验证错误
- 🌐 网络弹性:妥善处理连接问题
- 🔍 架构验证:完整的输入/输出验证,并显示详细的错误消息
技术细节
依赖项
- MCP框架:
mcp>=1.6.0用于模型上下文协议支持 - Google API客户端:
google-api-python-client>=2.0.0用于YouTube数据API - API成绩单:
youtube-transcript-api>=0.6.0用于转录提取 - 环境:
python-dotenv>=1.0.0用于配置管理 - 验证:
jsonschema>=4.0.0用于模式验证
演出
- 异步架构:所有操作都使用async/await以获得最佳性能
- 连接池:高效的HTTP连接管理
- 错误恢复:瞬态故障的自动重试逻辑
- 架构缓存:启动时加载一次工具架构
安全
- 环境变量:API密钥安全存储在环境中
- 输入消毒:根据严格模式验证所有输入
- 速率限制:对YouTube API费率限制的内置尊重
- 错误隔离:详细的错误消息,不暴露内部
贡献
- 分叉存储库
- 创建要素分支
- 通过测试实现您的更改
- 确保所有测试通过:
uv run python test_server.py - 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
支持
- 文档:检查中的测试用例
test_cases.json使用示例 - 验证:运行
uv run python test_server.py验证您的设置 - api参考: YouTube数据API v3文档
- 问题:打开GitHub问题以查找错误或功能请求
内置于❤️ 使用模型上下文协议框架。