返回市场
视频下载器-mcp

视频下载器-mcp

作者:kevinwatt93 星标更新:2025-10-19

项目介绍

🎬 yt-dlp-mcp

<div align="center">

一款强大的MCP服务器,将视频平台功能带入您的AI代理

npm 版本 许可证: MIT Node.js 版本 TypeScript

与Claude、Dive和其他兼容MCP的AI系统集成。下载视频、提取元数据、获取字幕等——全部通过自然语言。

特性安装工具使用示例文档

</div>

✨ 特性

<table> <tr> <td width="50%">

🔍 搜索与发现

  • 分页支持的YouTube搜索
  • JSON或Markdown输出格式
  • 按相关性和质量过滤

📊 元数据提取

  • 全面的视频信息
  • 频道详情和统计数据
  • 上传日期、标签、类别
  • 不需要下载内容

📝 字幕与转录

  • 下载VTT格式的字幕
  • 生成干净的文本转录
  • 多语言支持
  • 自动生成字幕
</td> <td width="50%">

🎥 视频下载

  • 分辨率控制(480p-1080p)
  • 视频剪辑支持
  • 平台无关(YouTube、Facebook等)
  • 保存到下载文件夹

🎵 音频提取

  • 最佳音质音频(M4A/MP3)
  • 直接音频下载
  • 完美适用于播客和音乐

🛡️ 隐私与安全

  • 无跟踪或分析
  • 通过yt-dlp直接下载
  • Zod模式验证
  • 限制字符长度以确保LLM安全
</td> </tr> </table>

🚀 安装

先决条件

在您的系统上安装yt-dlp

<table> <tr> <th>平台</th> <th>命令</th> </tr> <tr> <td>🪟 <strong>Windows</strong></td> <td><code>winget install yt-dlp</code></td> </tr> <tr> <td>🍎 <strong>macOS</strong></td> <td><code>brew install yt-dlp</code></td> </tr> <tr> <td>🐧 <strong>Linux</strong></td> <td><code>pip install yt-dlp</code></td> </tr> </table>

使用Dive Desktop快速设置

  1. 打开Dive Desktop
  2. 点击**"+ 添加MCP服务器"**
  3. 粘贴以下配置:
{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "@kevinwatt/yt-dlp-mcp"]
    }
  }
}
  1. 点击**"保存"**,现在可以使用了!🎉

手动安装

npm install -g @kevinwatt/yt-dlp-mcp

🛠️ 可用工具

所有工具都以前缀ytdlp_开头,以避免与其他MCP服务器命名冲突。

🔍 搜索与发现

<table> <tr> <th width="30%">工具</th> <th width="70%">描述</th> </tr> <tr> <td><code>ytdlp_search_videos</code></td> <td>

分页支持的YouTube搜索

  • 参数: query, maxResults, offset, response_format
  • 返回: 包含标题、频道、时长、URL的视频列表
  • 支持: JSON和Markdown格式
</td> </tr> </table>

📝 字幕与转录

<table> <tr> <th width="30%">工具</th> <th width="70%">描述</th> </tr> <tr> <td><code>ytdlp_list_subtitle_languages</code></td> <td>

列出视频的所有可用字幕语言

  • 参数: url
  • 返回: 可用语言、格式、自动生成状态
</td> </tr> <tr> <td><code>ytdlp_download_video_subtitles</code></td> <td>

下载带有时间戳的VTT格式字幕

  • 参数: url, language (可选)
  • 返回: 原始VTT字幕内容
</td> </tr> <tr> <td><code>ytdlp_download_transcript</code></td> <td>

生成干净的纯文本转录

  • 参数: url, language (可选)
  • 返回: 清理过的文本,不包含时间戳或格式
</td> </tr> </table>

🎥 视频与音频下载

<table> <tr> <th width="30%">工具</th> <th width="70%">描述</th> </tr> <tr> <td><code>ytdlp_download_video</code></td> <td>

下载视频到下载文件夹

  • 参数: url, resolution, startTime, endTime
  • 分辨率: 480p, 720p, 1080p, 最佳
  • 支持: 视频剪辑
</td> </tr> <tr> <td><code>ytdlp_download_audio</code></td> <td>

提取并下载仅音频

  • 参数: url
  • 格式: 最佳音质M4A/MP3
</td> </tr> </table>

📊 元数据

<table> <tr> <th width="30%">工具</th> <th width="70%">描述</th> </tr> <tr> <td><code>ytdlp_get_video_metadata</code></td> <td>

提取全面的视频元数据到JSON

  • 参数: url, fields (可选数组)
  • 返回: 完整元数据或筛选字段
  • 包括: 浏览量、点赞数、上传日期、标签、格式等
</td> </tr> <tr> <td><code>ytdlp_get_video_metadata_summary</code></td> <td>

获取人类可读的元数据摘要

  • 参数: url
  • 返回: 格式化文本,包含关键信息
</td> </tr> </table>

💡 使用示例

搜索视频

"搜索Python编程教程"
"查找前20个机器学习视频"
"搜索'react hooks教程'并显示结果10-20"
"以JSON格式搜索JavaScript课程"

获取元数据

"获取https://youtube.com/watch?v=...的元数据"
"给我这个视频的标题、频道和浏览次数"
"提取仅时长和上传日期"
"给我这个视频信息的快速摘要"

下载字幕与转录

"列出https://youtube.com/watch?v=...的可用字幕"
"从这个视频下载英文字幕"
"获取这个视频的西班牙语干净转录"
"下载繁体中文(zh-Hant)转录"

下载内容

"以1080p下载此视频:https://youtube.com/watch?v=..."
"从这个YouTube视频下载音频"
"从1:30到2:45下载这个视频"
"将这个Facebook视频保存到我的下载文件夹"

📖 文档


🔧 配置

环境变量

# 下载目录(默认:~/Downloads)
YTDLP_DOWNLOADS_DIR=/path/to/downloads

# 默认分辨率(默认:720p)
YTDLP_DEFAULT_RESOLUTION=1080p

# 默认字幕语言(默认:en)
YTDLP_DEFAULT_SUBTITLE_LANG=en

# 字符限制(默认:25000)
YTDLP_CHARACTER_LIMIT=25000

# 最大转录长度(默认:50000)
YTDLP_MAX_TRANSCRIPT_LENGTH=50000

🏗️ 架构

构建于

  • yt-dlp - 视频提取引擎
  • MCP SDK - 模型上下文协议
  • Zod - TypeScript优先模式验证
  • TypeScript - 类型安全和开发者体验

关键特性

  • 类型安全: 完全的TypeScript严格模式
  • 验证输入: Zod模式进行运行时验证
  • 字符限制: 自动截断以防止上下文溢出
  • 工具注释: readOnly, destructive, idempotent提示
  • 错误指导: 对LLMs有操作性的错误消息
  • 模块化设计: 清晰的责任分离

📊 响应格式

JSON格式

适合程序化处理:

{
  "total": 50,
  "count": 10,
  "offset": 0,
  "videos": [...],
  "has_more": true,
  "next_offset": 10
}

Markdown格式

人类可读的显示:

找到50个视频(显示10个):

1. **视频标题**
   📺 频道: 创作者名称
   ⏱️ 时长: 10:30
   🔗 URL: https://...

🔒 隐私与安全

  • 无跟踪: 直接下载,无分析
  • 输入验证: Zod模式防止注入
  • URL验证: 严格的URL格式检查
  • 字符限制: 防止上下文溢出攻击
  • 默认只读: 大多数工具不会修改系统状态

🤝 贡献

欢迎贡献!请查看我们的贡献指南

  1. 分叉仓库
  2. 创建一个功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加精彩功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

本项目采用MIT许可证 - 查看LICENSE文件了解详情。


🙏 致谢

  • yt-dlp - 强大的视频提取工具
  • Anthropic - 模型上下文协议
  • Dive - 兼容MCP的AI平台

📚 相关项目


<div align="center">

⬆ 返回顶部

</div>