README
🚀 YouTube内容管理MCP服务器
这是一个模型上下文协议(MCP)服务器,集成了YouTube数据API v3,用于内容发现和分析。该服务器使AI助手能够搜索YouTube视频、频道和播放列表,并获取视频、频道和播放列表的详细指标。
🚀 快速开始
要使用此服务器,你需要完成以下几个步骤:
- 获取YouTube API密钥。
- 安装必要的依赖项。
- 配置环境变量。
- 根据你的使用场景(如VSCode、Claude Desktop等)进行相应的配置。
✨ 主要特性
当前工具
- 🎥 search_videos:使用高级过滤选项在YouTube上搜索视频,可根据观看次数、点赞数和评论数进行筛选。
- 📺 search_channels:根据搜索查询查找YouTube频道,可查看订阅者数量、视频数量和总观看次数等信息。
- 📋 search_playlists:根据搜索查询在YouTube上搜索播放列表。
- 📊 get_video_metrics:通过视频ID检索特定视频的统计信息(观看次数、点赞数、评论数)。
- 📈 get_channel_metrics:通过频道ID检索特定频道的统计信息(订阅者数量、总观看次数、视频数量)。
- 📑 get_playlist_metrics:通过播放列表ID检索特定播放列表的统计信息(项目数量、总观看次数)。
计划功能
- 播放列表创建和管理
- 评论检索和分析
- 视频上传和管理(需正确认证)
- 按地区查看热门视频
- 视频转录访问
📦 安装指南
前提条件
- Python 3.8或更高版本
- YouTube数据API v3密钥
- 安装了MCP扩展的VSCode(用于VSCode使用场景)
- 所需的Python包:
google-api-python-client、python-dotenv、pydantic
获取YouTube API密钥
- 访问Google Cloud Console。
- 创建一个新项目或选择现有项目。
- 启用YouTube数据API v3:
- 导航到“API和服务”>“库”。
- 搜索“YouTube数据API v3”。
- 点击它并按“启用”。
- 创建凭证:
- 转到“API和服务”>“凭证”。
- 点击“创建凭证”>“API密钥”。
- 复制生成的API密钥。
- (推荐)限制API密钥:
- 点击API密钥进行编辑。
- 在“API限制”下,选择“限制密钥”。
- 选择“YouTube数据API v3”。
- 保存更改。
安装步骤
-
克隆或下载此仓库
git clone https://github.com/NastyRunner13/youtube-content-management-mcp cd youtube-content-management-mcp -
安装依赖项
pip install -r requirements.txt或者如果你使用
uv:uv install -
设置环境变量(可选) 在项目根目录创建一个
.env文件:YOUTUBE_API_KEY=your_youtube_api_key_here
💻 使用示例
使用VSCode(推荐)
-
在VSCode中安装MCP扩展。
-
配置MCP服务器,将以下内容添加到你的VSCode
settings.json中:{ "mcp.servers": { "youtube-content-management": { "command": "python", "args": [ "/path/to/youtube-content-management-mcp/main.py" ], "env": { "YOUTUBE_API_KEY": "your_youtube_api_key_here" } } } }使用uv的替代方法:
{ "mcp.servers": { "youtube-content-management": { "command": "uv", "args": [ "--directory", "/path/to/youtube-content-management-mcp", "run", "main.py" ], "env": { "YOUTUBE_API_KEY": "your_youtube_api_key_here" } } } } -
重启VSCode或重新加载窗口。
-
通过MCP面板或询问你的AI助手使用工具。
使用Claude Desktop
将以下配置添加到你的Claude Desktop配置文件中:
Windows:%APPDATA%/Claude/claude_desktop_config.json
macOS:~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"youtube-content-management": {
"command": "python",
"args": ["/path/to/youtube-content-management-mcp/main.py"],
"env": {
"YOUTUBE_API_KEY": "your_youtube_api_key_here"
}
}
}
}
使用其他MCP客户端
该服务器实现了标准的MCP协议,应该可以与任何兼容的MCP客户端一起使用。请参考你的客户端文档以获取配置说明。
可用工具示例
search_videos
在YouTube上使用高级过滤选项搜索视频,可根据观看次数、点赞数和评论数等指标进行筛选。
参数:
query(字符串,必需):搜索查询max_results(整数,可选):最大结果数(1 - 50,默认值:25)order(字符串,可选):排序顺序 - "relevance"(相关性)、"date"(日期)、"rating"(评分)、"viewCount"(观看次数)(默认值:"relevance")duration(字符串,可选):视频时长 - "medium"(中等)、"long"(长)(默认值:"medium")published_after(字符串,可选):RFC 3339时间戳(例如,"2023-01-01T00:00:00Z")
使用示例:
搜索去年上传的Python教程,按观看次数排序
search_channels
根据搜索查询查找YouTube频道,可查看订阅者数量、视频数量和总观看次数等指标。
参数:
query(字符串,必需):频道搜索查询max_results(整数,可选):最大结果数(1 - 50,默认值:25)published_after(字符串,可选):RFC 3339时间戳(例如,"2023-01-01T00:00:00Z")
使用示例:
查找编码教程频道
search_playlists
根据搜索查询在YouTube上搜索播放列表。
参数:
query(字符串,必需):播放列表搜索查询max_results(整数,可选):最大结果数(1 - 50,默认值:25)published_after(字符串,可选):RFC 3339时间戳(例如,"2023-01-01T00:00:00Z")
使用示例:
查找关于机器学习的播放列表
get_video_metrics
检索特定YouTube视频的统计信息,包括观看次数、点赞数和评论数。
参数:
video_id(字符串,必需):YouTube视频ID
使用示例:
获取ID为dQw4w9WgXcQ的视频的指标
get_channel_metrics
检索特定YouTube频道的统计信息,包括订阅者数量、总观看次数和视频数量。
参数:
channel_id(字符串,必需):YouTube频道ID
使用示例:
获取ID为UC_x5XG1OV2P6uZZ5FSM9Ttw的频道的指标
get_playlist_metrics
检索特定YouTube播放列表的统计信息,包括项目数量和所有视频的总观看次数。
参数:
playlist_id(字符串,必需):YouTube播放列表ID
使用示例:
获取ID为PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU的播放列表的指标
🔧 技术细节
输入验证
所有工具都使用Pydantic进行强大的输入验证,确保:
- 必需字段(如
query、video_id)已提供且不为空。 - 数字字段(如
max_results)在有效范围内(1 - 50)。 - 字符串字段(如
order、duration)匹配允许的值。 - 时间戳(如
published_after)遵循RFC 3339格式。
无效输入会导致清晰的错误消息,提高了可靠性和用户体验。
安全注意事项
- 切勿将API密钥提交到版本控制。
- 考虑使用环境变量代替硬编码的API密钥。
- 定期轮换你的API密钥。
- 在Google Cloud Console中监控你的API使用情况。
- 设置API密钥限制,将使用范围限制为YouTube数据API v3。
故障排除
常见问题
- "YouTube API key is not set"
- 确保你的API密钥已正确配置在环境变量中。
- 检查密钥是否有效且已启用YouTube数据API v3。
- "quotaExceeded"错误
- 你已达到每日API配额限制(默认值:10,000单位)。
- 等待配额重置(每天)或在Google Cloud Console中增加你的配额。
- 注意:指标工具和带有指标的搜索工具可能会因多次API调用而消耗更多配额。
- "keyInvalid"错误
- 你的API密钥无效或已被吊销。
- 生成一个新的API密钥并更新你的配置。
- "Invalid input arguments"错误
- 查看Pydantic错误消息以获取详细信息(如缺少
query、无效的order)。 - 确保输入符合工具的参数要求。
- 查看Pydantic错误消息以获取详细信息(如缺少
- MCP服务器无法启动
- 检查所有依赖项(
google-api-python-client、python-dotenv、pydantic)是否已安装。 - 验证配置中的Python路径是否正确。
- 查看MCP扩展日志以获取详细的错误消息。
- 检查所有依赖项(
调试模式
要启用调试日志记录,请将以下内容添加到你的环境中:
"env": {
"YOUTUBE_API_KEY": "your_key_here",
"DEBUG": "true"
}
贡献
我们欢迎贡献!你可以在以下方面提供帮助:
- 增加额外的YouTube API端点(评论、转录)。
- 优化API配额使用(例如,批量调用指标)。
- 增强Pydantic验证规则。
- 性能优化。
- 文档改进。
- 测试和错误报告。
API限制
- YouTube数据API v3:每天10,000单位(默认值)。
- 搜索操作:每次请求100单位。
- 列表操作(视频、频道、播放列表):每次请求1单位。
- 播放列表项目:每次请求5单位。
- 速率限制:注意不要连续进行过多请求,特别是使用指标工具时。
支持
- 若有错误或功能请求,请创建一个问题。
- 有关API特定问题,请查看YouTube数据API文档。
- 有关集成问题,请查看MCP协议文档。
- 有关验证相关问题,请参考Pydantic文档。
Scan to join WeChat group