YouTube内容管理服务器

一个集成YouTube Data API v3的MCP服务器,提供视频、频道和播放列表的搜索与分析功能,适用于内容发现和数据分析场景。

  • by NastyRunner13
  • Jupyter Notebook
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 nastyrunner13/youtube-content-management-mcp

使用说明

# 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密钥

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用YouTube数据API v3:
    • 导航到“API和服务”>“库”
    • 搜索“YouTube数据API v3”
    • 点击它并按“启用”
  4. 创建凭据:
    • 转到“API和服务”>“凭据”
    • 单击“创建凭据”>“API密钥”
    • 复制生成的API密钥
  5. (推荐)限制API密钥:
    • 点击API键进行编辑
    • 在“API限制”下,选择“限制密钥”
    • 选择“YouTube数据API v3”
    • 保存更改

安装

  1. 克隆或下载此存储库

    git clone https://github.com/NastyRunner13/youtube-content-management-mcp
    cd youtube-content-management-mcp
    
  2. 安装依赖项

    pip install -r requirements.txt
    

    或者如果使用 uv:

    uv install
    
  3. 设置您的环境 (可选) 创建一个 .env 项目根目录中的文件:

    YOUTUBE_API_KEY=your_youtube_api_key_here
    

用法

使用VSCode(推荐)

  1. 安装MCP扩展 在VSCode中

  2. 配置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"
          }
        }
      }
    }
    
  3. 重新启动VSCode 或重新加载窗口

  4. 使用工具 通过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 learning

get_video_metrics

检索特定YouTube视频的统计数据,包括观看次数、点赞次数和评论次数。

参数:

  • video_id (string,必填):YouTube视频ID

示例用法:

Get metrics for the video with ID dQw4w9WgXcQ

get_channel_metrics

检索特定YouTube频道的统计信息,包括订阅者计数、总观看次数和视频计数。

参数:

  • channel_id (string,必填):YouTube频道ID

示例用法:

Get metrics for the channel with ID UC_x5XG1OV2P6uZZ5FSM9Ttw

get_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的使用

故障排除

常见问题

  1. “未设置YouTube API密钥”

    • 确保在环境变量中正确配置了API密钥
    • 检查密钥是否有效并且启用了YouTube Data API v3
  2. “quotaExceded”错误

    • 您已达到每日API配额限制(默认值:10000个单位)
    • 等待配额重置(每天)或在Google Cloud Console中增加配额
    • 注意:由于多次调用API,带有度量的度量工具和搜索工具可能会消耗更多配额
  3. “keyInvalid”错误

    • 您的API密钥无效或已被吊销
    • 生成新的API密钥并更新您的配置
  4. “输入参数无效”错误

    • 检查Pydantic错误消息以了解详细信息(例如,丢失 query,无效 order)
    • 确保输入符合工具的参数要求
  5. 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文档 用于验证相关问题