YouTube视频下载工具

pizdh541/youtobe_downloader_mcp
Hosted
1 Stars 262 次浏览 Dolphinguin 更新于 2026-08-23

一个用于下载 YouTube 视频和音频的模型上下文协议(MCP)服务器。它支持多种传输模式,包括适用于本地客户端的 Stdio 模式和适用于远程 HTTP 连接的 SSE 模式。服务器包含安全限制,如最大视频时长和下载超时。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "yt-dlp-mcp": {
      "args": [
        "-y",
        "yt-dlp-mcp"
      ],
      "command": "npx"
    }
  }
}

可用工具 (4 个)

该服务在 MCP 协议中暴露的工具,AI 可按需调用

check_ytdlp

Check if yt-dlp is installed and get its version

该工具无需必填参数,直接调用即可

validate_youtube_url 1 个参数 需填 1 项

Validate if a URL is a valid YouTube URL

必填参数:url

download_youtube_video 3 个参数 需填 1 项

Download a YouTube video to the downloads directory

必填参数:url

download_youtube_audio 2 个参数 需填 1 项

Download audio from a YouTube video to the downloads directory

必填参数:url

服务介绍

YouTube MCP 服务器

一个用于下载 YouTube 视频和音频的模型上下文协议(MCP)服务器。

⚠️ 法律声明

此工具仅限合法使用。 用户需确保他们有权下载内容,并遵守所有适用法律及 YouTube 的服务条款。未经授权下载受版权保护的内容是被禁止的。

功能

  • 下载 MP4 或 WebM 格式的 YouTube 视频
  • 提取 MP3、M4A 或 Opus 格式的音频
  • 验证 YouTube URL
  • 检查 yt-dlp 安装
  • 多种传输模式:
    • Stdio 模式 - 适用于本地 MCP 客户端
    • SSE 模式 - 适用于远程 HTTP 连接
  • 安全限制:
    • 最大视频时长:2小时
    • 不支持播放列表下载
    • 下载超时时间:5分钟

要求

  • Node.js >= 18
  • 已安装并可在 PATH 中访问的 yt-dlp
  • npm

安装

  1. 克隆或下载此仓库
  2. 安装依赖项:
    bash
    npm install
    
  3. 构建项目:
    bash
    npm run build
    

使用方法

运行服务器

Stdio 模式(默认)

对于本地 MCP 客户端:

bash

npm start

或者直接使用 Node.js:
bash

node dist/index.js

SSE 模式(HTTP/远程)

对于通过 HTTP 的远程连接:

bash

npm run start:sse

或者自定义端口:
bash

set PORT=8080&& set TRANSPORT_TYPE=sse&& node dist/index.js

SSE 服务器将可用在以下地址:

  • SSE 端点: http://localhost:3000/sse
  • 消息端点: http://localhost:3000/message
  • 健康检查: http://localhost:3000/health

MCP 配置

Stdio 模式配置

请参阅 mcp.config.example.json 获取 MCP 客户端配置。

将示例文件复制为 mcp.config.json 并将 ${workspacePath} 更新为您实际的项目路径。

SSE 模式配置

请参阅 mcp.config.sse.example.json 获取 SSE 客户端配置。

示例配置:
json

{
  "mcpServers": {
    "youtube-mcp-sse": {
      "transport": "sse",
      "url": "http://localhost:3000/sse",
      "messageUrl": "http://localhost:3000/message"
    }
  }
}

对于远程访问,请将 localhost 替换为您的服务器 IP 地址或域名。

可用工具

check_ytdlp

检查是否已安装 yt-dlp 并获取其版本。

参数:

validate_youtube_url

验证 URL 是否为有效的 YouTube URL。

参数:

  • url (字符串, 必填): 要验证的 URL

download_youtube_video

将 YouTube 视频下载到下载目录。

参数:

  • url (字符串, 必填): 要下载的 YouTube 视频 URL
  • format (字符串, 可选): 视频格式 - mp4webm (默认: mp4)
  • resolution (字符串, 可选): 视频分辨率 - best, 720p, 或 1080p (默认: best)

安全限制:

  • 最大时长: 2小时
  • 不支持播放列表
  • 下载超时: 5分钟

download_youtube_audio

从 YouTube 视频中提取音频并下载到下载目录。

参数:

  • url (字符串, 必填): 要从中提取音频的 YouTube 视频 URL
  • audio_format (字符串, 可选): 音频格式 - mp3, m4a, 或 opus (默认: mp3)

安全限制:

  • 最大时长: 2小时
  • 不支持播放列表
  • 下载超时: 5分钟

开发

构建

bash

npm run build

监视模式

bash

npm run dev

项目结构

plaintext

mcp_youtobe_new/
├── src/
│   ├── index.ts          # Main MCP server entry point
│   └── utils/
│       └── validators.ts  # URL validation utilities
├── dist/                 # Compiled JavaScript output
├── downloads/             # Downloaded files directory
├── package.json
├── tsconfig.json
├── mcp.config.example.json
└── README.md

许可证

ISC

免责声明

本项目按原样提供,仅供教育和合法用途。开发者不对软件的任何滥用负责。用户必须遵守所有适用法律及 YouTube 的服务条款。

相关 MCP 服务