Token导航 LogoToken导航TokenDH.com
Youtube MCP Download logo
音视频stdio官方级别未说明来源级核验

Youtube MCP Download

MCP Server

一个基于Python的工具集,用于下载YouTube视频和播放列表,支持简单的脚本下载和高级的MCP服务器管理。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonClaude语音音频Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

granludo

提供方

granludo

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 youtube_downloader.py

详细介绍

YouTube视频下载器

使用yt-dlp下载YouTube内容的Python工具的综合集合,包括简单的脚本和高级MCP服务器。

工具

1.简单脚本

单视频下载器(youtube_downloader.py)

下载带有进度跟踪的单个YouTube视频。

播放列表下载器(playlist_downloader.py)

有序下载整个YouTube播放列表。

2.MCP服务器(youtube_mcp_server_fastmcp.py)

使用FastMCP的高级MCP(模型上下文协议)服务器,提供:

  • 异步视频和播放列表下载
  • 作业跟踪和状态监控
  • 用于元数据存储的SQLite数据库
  • 图书馆综合管理
  • Claude桌面集成

特性

简单脚本

单视频下载器

  • ✅ 提示用户输入YouTube URL
  • ✅ 下载最优质的视频
  • ✅ 创建一个 downloads 保存视频的文件夹
  • ✅ 显示下载进度
  • ✅ 优雅地处理错误
  • ✅ 如果yt-dlp不存在,则自动安装yt-dlp
  • ✅ 无pytube依赖性(根据要求)

播放列表下载器

  • ✅ 提示用户输入YouTube播放列表URL
  • ✅ 下载整个播放列表(默认情况下最多50个视频)
  • ✅ 为每个播放列表创建有组织的文件夹
  • ✅ 下载前显示播放列表信息
  • ✅ 下载带有播放列表索引号的视频
  • ✅ 如果yt-dlp不存在,则自动安装yt-dlp
  • ✅ 下载大型播放列表前的确认提示

MCP服务器功能

  • 异步下载:开始下载并获取用于跟踪的作业ID
  • 作业状态监控:检查下载进度和状态
  • 元数据库:带有视频/播放列表信息的SQLite数据库
  • 图书馆管理:浏览所有下载的内容
  • 错误处理:全面的错误跟踪和报告
  • 并发下载:可以同时运行多个下载
  • 元数据:存储标题、描述、持续时间、文件路径等。

需求

  • Python 3.11+
  • yt-dlp(丢失时自动安装)
  • MCP SDK(丢失时自动安装)

用法

单视频下载

  1. 运行单个视频下载程序:
   python3 youtube_downloader.py
  1. 出现提示时输入YouTube URL
  1. 视频将下载到 downloads 文件夹

播放列表下载

  1. 运行播放列表下载程序:
   python3 playlist_downloader.py
  1. 出现提示时输入YouTube播放列表URL
  1. 查看播放列表信息并确认下载
  1. 所有视频都将下载到特定于播放列表的文件夹中

MCP服务器使用情况

MCP服务器为异步下载和库管理提供了四种主要工具。

与紫外线一起使用(推荐)

  1. 安装依赖项并运行:
   cd /Users/granludo/code/testing/youtube_download
   uv sync
   uv run python start_server.py

直接使用Python

python3 youtube_mcp_server_fastmcp.py

可用的MCP工具

  1. 下载_视频 -开始异步视频下载
  2. 下载播放列表 -开始异步播放列表下载
  3. get_download_status -监控下载进度
  4. cancel_下载 -取消正在运行的下载
  5. list_downloads -浏览所有下载作业
  6. 获取_视频_元数据 -无需下载即可获取视频信息

例子

单个视频示例

$ python3 youtube_downloader.py

==================================================
YouTube Video Downloader
==================================================
Enter YouTube URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
📥 Downloading video from: https://www.youtube.com/watch?v=dQw4w9WgXcQ
✓ Download completed!
📁 Files saved to: /path/to/downloads

播放列表示例

$ python3 playlist_downloader.py

==================================================
YouTube Playlist Downloader
==================================================
Enter YouTube Playlist URL: https://www.youtube.com/playlist?list=PLrAXtmRdnEQy5rhxJj7aKre_2qO5yQ5nI
📊 Analyzing playlist...
📋 Playlist name: My Music Playlist
🎥 Number of videos: 25

🔄 Download 25 videos? (y/N): y
📥 Downloading playlist: My Music Playlist
✓ Playlist download completed!
📁 All videos saved to: /path/to/playlists/My Music Playlist

MCP服务器示例

使用紫外线

  1. 安装并运行服务器:
   cd /Users/granludo/code/testing/youtube_download
   uv sync                    # Install dependencies
   uv run python start_server.py  # Start server
  1. 服务器将静默启动 (根据MCP协议的要求,没有stdout输出)

MCP工具示例

工具1:下载单个视频

{
  "name": "download_video",
  "arguments": {
    "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "output_dir": "downloads"
  }
}

答复: "Download started successfully. Job ID: abc123-def456-ghi789"

工具2:下载播放列表

{
  "name": "download_playlist",
  "arguments": {
    "url": "https://www.youtube.com/playlist?list=PLrAXtmRdnEQy5rhxJj7aKre_2qO5yQ5nI",
    "output_dir": "playlists"
  }
}

答复: "Playlist download started successfully. Job ID: def456-ghi789-jkl012"

工具3:检查下载状态

{
  "name": "get_download_status",
  "arguments": {
    "job_id": "abc123-def456-ghi789"
  }
}

响应:包含作业状态、进度和元数据的JSON对象

工具4:列表下载

{
  "name": "list_downloads",
  "arguments": {}
}

答复:

📹 VIDEOS:
- Never Gonna Give You Up (ID: video-uuid-123)
  Path: /downloads/Never Gonna Give You Up.mp4
  Duration: 213s

📁 PLAYLISTS:
- Music Collection (ID: playlist-uuid-456)
  Videos: 25
  Path: /playlists/Music Collection

完整工作流示例

  1. 配置Claude桌面 -将MCP服务器添加到您的 claude_desktop_config.json:
   {
     "mcpServers": {
       "youtube-mcp-tools": {
         "command": "/opt/homebrew/bin/uv",
         "args": [
           "--directory",
           "/Users/granludo/code/testing/youtube_download",
           "run",
           "start_server.py"
         ]
       }
     }
   }
  1. 下载视频 克劳德:
   "Download this YouTube video: https://www.youtube.com/watch?v=jNQXAC9IVRw"

服务器将启动下载并立即返回作业ID。

  1. 检查下载状态:
   "What's the status of that download?"
  1. 列出所有下载:
   "Show me all my download jobs"

备注

简单脚本

  • 如果找不到yt-dlp,这两个脚本都会自动安装yt-dlp
  • 视频与原始标题一起保存
  • 播放列表视频按其在播放列表中的位置编号
  • 默认情况下,播放列表下载器将下载限制为50个视频(可调)
  • 这两个脚本都能优雅地处理键盘中断
  • 下载被组织在单独的文件夹中,分别用于视频和播放列表

MCP服务器

  • 使用FastMCP简化MCP服务器实施
  • 创建 youtube_library.db 用于元数据的SQLite数据库
  • 最多支持3次并发下载
  • 每次下载都使用唯一的UUID进行作业跟踪
  • 丰富的元数据存储,包括标题、描述、持续时间、文件路径
  • 异步下载,立即返回作业ID
  • 全面的错误处理和记录
  • 与Claude Desktop和其他MCP客户端兼容

目录标签

目录标签

PythonClaude语音音频视频下载本地部署YouTube工具Python脚本MCP服务器异步下载

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP