YouTube视频下载工具
一个用于下载 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
安装
- 克隆或下载此仓库
- 安装依赖项:
bashnpm install - 构建项目:
bashnpm 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 视频 URLformat(字符串, 可选): 视频格式 -mp4或webm(默认:mp4)resolution(字符串, 可选): 视频分辨率 -best,720p, 或1080p(默认:best)
安全限制:
- 最大时长: 2小时
- 不支持播放列表
- 下载超时: 5分钟
download_youtube_audio
从 YouTube 视频中提取音频并下载到下载目录。
参数:
url(字符串, 必填): 要从中提取音频的 YouTube 视频 URLaudio_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 的服务条款。