YouTube视频下载服务

一个多通道协议(MCP)服务器,允许Claude或其他MCP兼容的AI代理将YouTube视频直接下载到计算机的下载文件夹中。

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

使用说明

YouTube下载器MCP服务器📺

这个项目是一个 MCP(多通道协议)服务器 这允许克劳德(或任何兼容MCP的AI代理)将YouTube视频直接下载到您计算机的下载文件夹中。它旨在与Claude的工具调用功能无缝集成。

特性

  • 显示两个MCP工具:
    • download_youtube_video(url: str):在后台启动YouTube视频下载并返回下载ID。
    • check_download_status(download_id: str):用于检查下载的状态(正在进行、已完成或错误)。
  • 下载内容将保存到系统的下载文件夹中。
  • 完全异步/后台操作。

安装

  1. 克隆存储库:

    git clone <your-repo-url>
    cd youtube-downloader-mcp
    
  2. 安装诗歌(如果你没有):

    pip install poetry
    
  3. 安装依赖项:

    poetry install
    
  4. 安装FFmpeg

    检查并按照说明使用本网站安装此工具(https://ffmpeg.org/). 这 yt_dlp 需要FFmpeg将音频和视频文件合并为单个mp4文件。

运行MCP服务器

使用Poetry运行服务器:

poetry run python endpoints.py

您应该看到这样的消息:

Running YouTube Downloader MCP server

与克劳德一起使用

  1. 将此服务器添加为Claude设置中的工具 (或使用Claude桌面应用程序的“添加MCP服务器”功能)。

    • 更新您的 claude_desktop_config.json 添加此MCP服务器配置:
    •   {
            "mcpServers": {
                "youtube-dowloader": {
                "command": "poetry",
                "args": [
                    "--directory",
                    "<your_project_path>",
                    "run",
                    "python",
                    "endpoints.py"
                ]
                }
            }
        }
      
    • 有关更多信息,请查看此链接https://modelcontextprotocol.io/quickstart/user
  2. Claude将自动发现以下工具:

    • download_youtube_video(url: str)
    • check_download_status(download_id: str)
  3. 工作流程示例:

运行测试

要运行YoutubeDownloader服务的单元测试,请使用:

poetry run python -m unittest tests/test_services.py

所有测试均位于 tests/ 目录。这些测试使用模拟,因此不会进行真正的下载或系统调用。

备注

  • FFmpeg是必需的 用于视频合并。如果您没有,请从下载 ffmpeg.org 并确保它在你的路径中。
  • 所有下载都会转到系统的下载文件夹。
  • 此服务器专为与Claude一起使用而设计,但任何兼容MCP的客户端都可以使用它。

故障排除

  • 如果您看到有关非JSON输出的错误,请确保您运行的是最新代码(所有yt-dlp日志都重定向到stderr)。
  • 如果你得到 ffmpeg not installed 错误,请安装FFmpeg并重新启动服务器。
  • 如果您遇到状态不更新的问题,请确保一次只运行一个服务器实例。

许可证

麻省理工学院