YouTube下载器

一个支持视频和字幕下载的工具,提供MCP服务器和Electron桌面应用两种接口。

  • by guojun21
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 guojun21/youtube-downloader-mcp

使用说明

YouTube下载器MCP

一个YouTube视频和字幕下载器,有两个界面:

  1. MCP服务器 --AI助手(Cursor、Claude等)可以通过模型上下文协议调用工具
  2. 电子桌面应用程序 --具有搜索、格式选择和下载进度的独立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:electron

MCP工具

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 项目根目录 相对输出路径的基本目录

许可证

麻省理工学院——见 最终用户许可协议