YouTube视频服务

一个简单的MCP服务器,提供与YouTube交互的工具,包括搜索视频和获取视频详细信息。

  • by davo20019
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 davo20019/mcp-server-youtube

使用说明

MCP YouTube服务器

这是一个简单的模型上下文协议(MCP)服务器,提供与YouTube交互的工具。它允许MCP主机应用程序(如桌面版的Claude):

  • 搜索YouTube视频。
  • 获取有关特定YouTube视频的详细信息。

需求

  • Python 3.10或更高版本。
  • 紫外线 (必须在运行安装程序之前安装)。
  • YouTube数据API v3密钥。您可以从 谷歌云控制台.
  • bash 兼容的shell(用于运行安装脚本,主要是Linux/macOS)。

安装和设置

  1. 克隆存储库:

    git clone https://github.com/davo00019/mcp-server-youtube.git
    cd mcp-server-youtube
    
  2. 运行安装脚本:

    • 确保你有 uv 已安装(pip install uv 或查看 紫外线装置).
    • 自 在...之内 这 mcp-server-youtube 目录,运行:
      bash setup.sh
      
    • 脚本将:
      • 检查 uv.
      • 创建虚拟环境(.venv)里面 mcp-server-youtube.
      • 安装依赖项(uv sync).
      • 提示您输入YouTube API密钥并创建 .env 文件。
      • 使服务器包装器脚本可执行。
      • 打印MCP主机配置所需的最终说明和路径。
  3. 配置MCP主机:

    • 按照末尾打印的说明进行操作 setup.sh 脚本。
    • 复制脚本提供的“包装脚本路径”。
    • 将此路径粘贴到MCP主机的配置文件中(例如。, claude_desktop_config.json)作为 command 为了 youtube 服务器,确保 args 是 [].

配置详细信息(.env)

这 setup.sh 脚本将提示您输入YouTube Data API v3密钥,并创建 .env 文件在 mcp-server-youtube 包含以下内容的目录:

YOUTUBE_API_KEY=YOUR_API_KEY_HERE

如果以后需要更改密钥,可以编辑此项 .env 文件直接。

使用MCP主机运行(例如:桌面版的Claude)

运行后 setup.sh 如上所述编写脚本并配置MCP主机(安装和设置中的步骤3),服务器应在主机应用程序启动时自动启动。

  1. 查找您的Claude for Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  2. 编辑配置文件: 更新 mcpServers 部分。这 setup.sh 脚本(通过 print_config_paths.py)提供了一个示例JSON结构,显示了如何配置 youtube 服务器条目,包括正确的绝对路径 command 现场。将脚本输出中的示例复制粘贴或调整到配置文件中。

  3. 重新启动桌面版的Claude。

    • Windows用户注意: 这 setup.sh 和 run_server.sh 脚本是为 bash 环境(Linux/macOS)。您可能需要手动执行设置步骤(创建venv、安装deps、创建 .env,使用直接的python/script路径配置主机)或调整Windows的脚本(例如,创建 run_server.bat).

用法

在MCP主机中配置服务器并重新启动主机后,YouTube工具应该可用。 然后,您可以在宿主应用程序中使用自然语言提示:

  • “在YouTube上搜索‘python异步教程’”
  • “查找有关‘MCP服务器开发’的视频”
  • “获取YouTube视频ID XXXXXXX的详细信息”(用有效ID替换XXXXXXX)

主机应用程序将与本地应用程序通信 youtube_server.py 完成这些请求的过程。

可用工具

服务器目前提供以下工具:

  • search_videos(query: str, max_results: int = 5):根据查询字符串在YouTube上搜索视频。
  • get_video_details(video_id: str):获取特定视频ID的详细信息(片段、统计信息、内容详细信息)。
  • get_channel_details(channel_id: str):获取特定频道ID的详细信息(代码片段、统计信息)。
  • list_channel_videos(channel_id: str, max_results: int = 10):列出特定频道ID上传的最新视频。
  • search_playlists(query: str, max_results: int = 5):在YouTube上搜索与查询字符串匹配的播放列表。
  • get_playlist_items(playlist_id: str, max_results: int = 10):列出特定播放列表ID中包含的视频。
  • get_related_videos(video_id: str, max_results: int = 5):查找YouTube认为与给定视频ID相关的视频。
  • get_popular_videos(region_code: str = 'US', video_category_id: str = '0', max_results: int = 10):列出当前在特定地区或类别中最受欢迎的视频。

贡献

欢迎投稿!如果您有改进或错误修复,请随时提交问题或拉取请求。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。