Back to MCP directory
publicPublicdnsLocal runtime

youtube-content-management-mcp

一个基于YouTube Data API v3的MCP服务器,提供视频、频道和播放列表的搜索与数据分析功能,支持内容发现和指标查询。

article

README

🚀 YouTube内容管理MCP服务器

这是一个模型上下文协议(MCP)服务器,集成了YouTube数据API v3,用于内容发现和分析。该服务器使AI助手能够搜索YouTube视频、频道和播放列表,并获取视频、频道和播放列表的详细指标。

🚀 快速开始

要使用此服务器,你需要完成以下几个步骤:

  1. 获取YouTube API密钥。
  2. 安装必要的依赖项。
  3. 配置环境变量。
  4. 根据你的使用场景(如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-clientpython-dotenvpydantic

获取YouTube API密钥

  1. 访问Google Cloud Console
  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. 在VSCode中安装MCP扩展

  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"
          }
        }
      }
    }
    

    使用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"
          }
        }
      }
    }
    
  3. 重启VSCode或重新加载窗口。

  4. 通过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进行强大的输入验证,确保:

  • 必需字段(如queryvideo_id)已提供且不为空。
  • 数字字段(如max_results)在有效范围内(1 - 50)。
  • 字符串字段(如orderduration)匹配允许的值。
  • 时间戳(如published_after)遵循RFC 3339格式。

无效输入会导致清晰的错误消息,提高了可靠性和用户体验。

安全注意事项

  • 切勿将API密钥提交到版本控制
  • 考虑使用环境变量代替硬编码的API密钥。
  • 定期轮换你的API密钥。
  • 在Google Cloud Console中监控你的API使用情况。
  • 设置API密钥限制,将使用范围限制为YouTube数据API v3。

故障排除

常见问题

  1. "YouTube API key is not set"
    • 确保你的API密钥已正确配置在环境变量中。
    • 检查密钥是否有效且已启用YouTube数据API v3。
  2. "quotaExceeded"错误
    • 你已达到每日API配额限制(默认值:10,000单位)。
    • 等待配额重置(每天)或在Google Cloud Console中增加你的配额。
    • 注意:指标工具和带有指标的搜索工具可能会因多次API调用而消耗更多配额。
  3. "keyInvalid"错误
    • 你的API密钥无效或已被吊销。
    • 生成一个新的API密钥并更新你的配置。
  4. "Invalid input arguments"错误
    • 查看Pydantic错误消息以获取详细信息(如缺少query、无效的order)。
    • 确保输入符合工具的参数要求。
  5. MCP服务器无法启动
    • 检查所有依赖项(google-api-python-clientpython-dotenvpydantic)是否已安装。
    • 验证配置中的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文档
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client