YouTube内容管理MCP服务器
模型上下文协议(MCP)服务器,为内容发现和分析提供YouTube数据API v3集成。此服务器使AI助手能够搜索YouTube视频、频道、播放列表,并检索视频、频道和播放列表的详细指标。
特性
当前工具
- 🎥 搜索_视频:在YouTube上搜索具有高级过滤选项的视频,包括观看次数、点赞次数和评论次数。
- 📺 搜索频道:根据搜索查询查找YouTube频道,包括订阅者计数、视频计数和总观看次数。
- 📋 搜索播放列表:根据搜索查询在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密钥
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用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(推荐)
- 安装MCP扩展 在VSCode中
- 配置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"
}
}
}
}使用紫外线的替代方案:
{
"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配置文件中:
窗户: %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客户端一起工作。有关配置说明,请参阅客户的文档。
可用工具
搜索_视频
在YouTube上搜索具有高级过滤选项的视频,包括观看次数、点赞次数和评论次数等指标。
参数:
query(字符串,必填):搜索查询max_results(整数,可选):最大结果数(1-50,默认值:25)order(字符串,可选):排序顺序-“相关性”、“日期”、“评级”、“viewCount”(默认值:“相关性”)duration(字符串,可选):视频持续时间-“中等”,“长”(默认值:“中等”)published_after(字符串,可选):RFC 3339时间戳(例如,“2023-01-01T00:00:00Z”)
示例用法:
Search for Python tutorials uploaded in the last year, sorted by view count搜索频道
根据搜索查询查找YouTube频道,包括订阅者数量、视频数量和总观看次数等指标。
参数:
query(字符串,必填):频道搜索查询max_results(整数,可选):最大结果数(1-50,默认值:25)published_after(字符串,可选):RFC 3339时间戳(例如,“2023-01-01T00:00:00Z”)
示例用法:
Find coding tutorial channels搜索播放列表
根据搜索查询在YouTube上搜索播放列表。
参数:
query(字符串,必填):搜索播放列表查询max_results(整数,可选):最大结果数(1-50,默认值:25)published_after(字符串,可选):RFC 3339时间戳(例如,“2023-01-01T00:00:00Z”)
示例用法:
Find playlists about machine learningget_video_metrics
检索特定YouTube视频的统计数据,包括观看次数、点赞次数和评论次数。
参数:
video_id(string,必填):YouTube视频ID
示例用法:
Get metrics for the video with ID dQw4w9WgXcQget_channel_metrics
检索特定YouTube频道的统计信息,包括订阅者计数、总观看次数和视频计数。
参数:
channel_id(string,必填):YouTube频道ID
示例用法:
Get metrics for the channel with ID UC_x5XG1OV2P6uZZ5FSM9Ttwget_playlist_metrics
检索特定YouTube播放列表的统计信息,包括所有视频的项目计数和总观看次数。
参数:
playlist_id(字符串,必填):YouTube播放列表ID
示例用法:
Get metrics for the playlist with ID PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU交互示例
配置完MCP服务器后,您可以通过AI助手与之交互:
使用指标进行视频搜索:
搜索过去6个月的机器学习教程,按浏览次数排序,并显示浏览次数
使用指标进行渠道发现:
“根据订阅人数在YouTube上查找顶级烹饪频道”
播放列表搜索:
“显示有关Python编程的播放列表”
视频指标:
“获取ID为dQw4w9WgXcQ的视频的观看次数和点赞次数”
渠道指标:
“频道UC_x5XG1OV2P6uZZ5FSM9Ttw的订户数和总浏览量是多少?”
播放列表指标:
“播放列表PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU中有多少个视频和总浏览量?”
输入验证
所有工具使用 派丹蒂克 为了进行稳健的输入验证,确保:
- 必填字段(例如。,
query,video_id)已提供且非空。 - 数字字段(例如。,
max_results)在有效范围(1-50)内。 - 字符串字段(例如。,
order,duration)匹配允许的值。 - 时间戳(例如。,
published_after)遵循RFC 3339格式。
无效的输入会导致清晰的错误消息,从而提高可靠性和用户体验。
安全说明
- 永远不要提交API密钥 到版本控制
- 考虑使用环境变量而不是对API键进行硬编码
- 定期旋转API键
- 在Google云控制台中监控您的API使用情况
- 设置API密钥限制,以限制对YouTube Data API v3的使用
故障排除
常见问题
- “未设置YouTube API密钥”
- 确保在环境变量中正确配置了API密钥 - 检查密钥是否有效并且启用了YouTube Data API v3
- “quotaExceded”错误
- 您已达到每日API配额限制(默认值:10000个单位) - 等待配额重置(每天)或在Google Cloud Console中增加配额 - 注意:由于多次调用API,带有度量的度量工具和搜索工具可能会消耗更多配额
- “keyInvalid”错误
- 您的API密钥无效或已被吊销 - 生成新的API密钥并更新您的配置
- “输入参数无效”错误
- 检查Pydantic错误消息以了解详细信息(例如,丢失 query,无效 order) - 确保输入符合工具的参数要求
- 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:每天10000个单位(默认)
- 搜索操作:每项请求100个单位
- 列表操作(视频、频道、播放列表):每次请求1个单位
- 播放列表项目:每份申请5个单位
- 速率限制:注意快速连续地提出太多请求,尤其是使用度量工具
支持
- 为bug或功能请求创建问题
- 检查 YouTube数据API文档 针对特定于API的问题
- 审查MCP协议文档以了解集成问题
- 参见 Pydantic文档 用于验证相关问题
