YouTube下载器MCP
一个YouTube视频和字幕下载器,有两个界面:
- MCP服务器 --AI助手(Cursor、Claude等)可以通过模型上下文协议调用工具
- 电子桌面应用程序 --具有搜索、格式选择和下载进度的独立GUI
这两个接口共享相同的基于yt-dlp的核心,确保行为一致。
建筑
youtube-downloader-mcp/
index.js # MCP server entry (stdin/stdout JSON-RPC)
package.json
lib/
core/ # Shared core services (used by MCP + Electron)
youtube_video_downloader_service.js
youtube_subtitle_downloader_service.js
youtube_video_id_extractor_utility.js
download_task_persistent_json_store.js
download_task_runtime_state_tracker.js
yt_dlp_command_argument_builder.js
mcp_result_formatting_helpers.js
tools/ # MCP tool definitions (thin wrappers)
youtube_download_task_create.js
youtube_download_task_list.js
youtube_subtitle.js
electron-app/ # Electron + React desktop UI
electron/main.ts # IPC bridge to lib/core
src/App.tsx # React frontend先决条件
- Node.js >= 18
- Python 3 随着
pip(yt-dlp在首次使用时自动安装) - 对于Electron应用程序:Electron的系统依赖关系
快速开始
MCP服务器
添加到光标MCP配置(~/.cursor/mcp.json):
{
"mcpServers": {
"youtube-downloader-mcp": {
"command": "node",
"args": ["/path/to/youtube-downloader-mcp/index.js"]
}
}
}然后重新启动Cursor。以下工具可用:
| 工具 | 说明 |
|---|---|
youtube_download | 下载YouTube视频(在后台运行) |
youtube_subtitle | 下载字幕+生成纯文本转录 |
youtube_task_history | 查看所有下载/字幕任务的历史记录 |
电子桌面应用程序
cd electron-app
npm install
npm run dev:electronMCP工具
youtube_download
下载YouTube视频。下载在后台运行;使用 youtube_task_history 检查进度。
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
output_path: "~/Downloads" (optional)youtube_subtitle
下载SRT格式的字幕并将其转换为纯文本转录。
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
language: "en-orig,en" (optional, comma-separated)
output_path: "~/Downloads" (optional)youtube_task_history
列出所有过去的下载和字幕任务及其状态、路径和元数据。
type: "download" | "subtitle" (optional filter)
status: "completed" (optional filter)
limit: 50 (optional, max 200)环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
YTDL_BROWSER | chrome | cookie提取浏览器 |
YTDL_PLAYER_CLIENT | android | 提取器的YouTube播放器客户端 |
YTDL_USE_COOKIES | true | 设置为 false 禁用cookie使用 |
WORKSPACE_ROOT | 项目根目录 | 相对输出路径的基本目录 |
许可证
麻省理工学院——见 最终用户许可协议
