media-agent

media-agent

MCP server that gives AI agents video parsing and downloading capabilities, offering tools to extract video info, list formats, and download videos from sites like Bilibili and YouTube via yt-dlp.

Category
访问服务器

README

<!-- MANPAGE: BEGIN EXCLUDED SECTION --> <div align="center">

<a href="https://github.com/leohux/media-agent"> <img src="docs/banner.svg" alt="media-agent" width="820"> </a>

MEDIA-AGENT <br> <em>A MCP video-download agent for WorkBuddy, Cursor, and other hosts</em>

<br>

Release Python OS MCP License Commits Stars Last commit

</div> <!-- MANPAGE: END EXCLUDED SECTION -->

media-agent 让 AI 智能体真正去下载视频:你在 WorkBuddy / Cursor / Claude Desktop 里丢一条链接,Agent 会先解析标题和时长,再把文件存到你指定的目录。

<div align="center"> <img src="docs/hero.png" alt="media-agent" width="760"> <br> <img src="docs/architecture.png" alt="media-agent tools" width="820"> </div>

目录

它是什么

一层专门给大模型调用的 MCP / CLI 接口。人不用记一长串下载参数;Agent 只看到三个固定工具,返回 JSON。

适合 不适合
WorkBuddy / Cursor 里说「把这个视频存到 D 盘」 网页版通义千问直接挂本地工具
命令行解析、下载单条链接 整份播放列表、整频道扒取
B站 / 抖音 / YouTube / 小红书等公开视频 会员、DRM、付费课破解

安装

Release 包

Releases 下载最新 wheel:

pip install media_agent-0.1.3-py3-none-any.whl
pip install mcp

从源码

git clone https://github.com/leohux/media-agent.git
cd media-agent
pip install -e ".[default,agent]"

自检:

python -m media_agent --help
python -m media_agent extract "https://www.youtube.com/watch?v=jNQXAC9IVRw"

oktrue 即解析成功。

依赖

  • Python ≥ 3.10
  • 建议安装 ffmpeg(合并音视频 / 抽音频)。没装也能下,会自动改用单文件格式
  • 给 Agent 用:pip install mcp

接到 AI 工具(MCP)

本项目是 MCP stdio 服务。谁能配自定义 MCP,谁就能用。完整示例见 mcp.example.json

python 换成你机器上的解释器路径。

{
  "mcpServers": {
    "media-agent": {
      "command": "python",
      "args": ["-m", "media_agent"],
      "env": {
        "MEDIA_AGENT_OUTPUT_DIR": "D:/downloads",
        "MEDIA_AGENT_ALLOWED_ROOT": "D:/downloads",
        "MEDIA_AGENT_COOKIES_FROM_BROWSER": "chrome"
      }
    }
  }
}

WorkBuddy / Cursor / Claude

产品 配置位置
WorkBuddy ~/.workbuddy/mcp.json 或项目内 .workbuddy/mcp.json
Cursor MCP 设置页,或 .cursor/mcp.json
Claude Desktop claude_desktop_config.json

配好后直接说:

解析这个视频,确认标题后再下到 D:/downloads,清晰度 720p。 https://www.bilibili.com/video/BV...

千问

  • :把千问放进 WorkBuddy / Qwen-Agent 当模型
  • 不能:通义千问网页版、阿里云百炼远程 SSE(本项目是本地 stdio)

三个工具

Agent 只能调这三项,不会直接拼下载命令。

工具 作用 何时用
extract_video_info 只解析,不下文件 先确认标题、时长、UP 主
list_formats 列出清晰度 用户指定了 720p / 只下音频
download_video 下载一条视频 用户明确要保存文件

三个工具都接受 cookies_from_browser / cookiefile。抖音等站点通常需要先在浏览器打开过该页。

download_video 参数

参数 说明
url 必须是 http://https:// 的单条链接
output_dir 保存目录,可省略
quality best / 1080p / 720p / 480p / 360p / audio_only
audio_only true 时只下音频
cookies_from_browser 从浏览器读 cookie,如 chrome / edge / chrome:Profile 1
cookiefile Netscape 格式 cookie 文件路径

解析成功时大致返回:

{
  "ok": true,
  "error": null,
  "id": "jNQXAC9IVRw",
  "title": "Me at the zoo",
  "duration": 19,
  "uploader": "jawed",
  "webpage_url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
  "ext": "mp4",
  "extractor": "Youtube"
}

失败则 okfalse,原因在 error 里。

命令行

python -m media_agent extract "https://www.bilibili.com/video/BVxxxx"
python -m media_agent formats "https://www.youtube.com/watch?v=..."
python -m media_agent download "https://www.youtube.com/watch?v=..." --output-dir D:/downloads --quality 720p
python -m media_agent download "https://..." --output-dir D:/downloads --audio-only
python -m media_agent extract --cookies-from-browser chrome "https://www.douyin.com/video/..."
python -m media_agent   # 启动 MCP,给 Agent 用

支持哪些网站

与上游内核相同,约一千多个提取器。常见:

  • 国内:B站、抖音、小红书、微博、优酷、爱奇艺、腾讯视频、芒果 TV、西瓜视频、AcFun、央视网、网易云、QQ 音乐
  • 国外:YouTube、TikTok、Twitter/X、Instagram、Facebook、Twitch、Vimeo

完整名单:supportedsites.md

网站改版后个别站点可能失效。快手没有独立提取器。会员内容经常下不了。

安全限制

限制 行为
协议 只接受 http / https
播放列表 拒绝,请传单条视频链接
目录 MEDIA_AGENT_ALLOWED_ROOT 之内才能写
覆盖 默认不覆盖已有文件
环境变量 作用
MEDIA_AGENT_OUTPUT_DIR 默认保存目录
MEDIA_AGENT_ALLOWED_ROOT 路径白名单根目录
MEDIA_AGENT_COOKIES_FROM_BROWSER 默认从哪个浏览器读 cookie(chrome / edge / firefox …)
MEDIA_AGENT_COOKIEFILE Netscape cookie 文件路径

常见问题

WorkBuddy 配了但不调用?
确认 command 能执行 python -m media_agent --help,并且已安装 mcp

解析成功,YouTube 下载 403?
站点风控常见。可换其他平台或直链,或加上 --cookies-from-browser chrome(需已在该浏览器登录)。

抖音提示 Fresh cookies are needed?
先在 Chrome / Edge 打开过该视频页,再传 --cookies-from-browser chromeedge。浏览器开着时 Windows 上有时读不到 cookie,可先关掉浏览器再试。也可导出 Netscape cookie 文件后用 --cookies 路径

提示要 ffmpeg?
没装也会下(单文件格式)。要高清画质+音轨合并,请安装 ffmpeg。

能下播放列表吗?
不能。打开列表里的单集再传链接。

和 yt-dlp 什么关系?
内核在 yt_dlp/,产品名是 media-agent。不要对这个仓库跑上游自动更新。

开发

media_agent/          对外入口:python -m media_agent
yt_dlp/agent/         三个工具 + MCP 服务
yt_dlp/               下载内核
test/test_agent_tools.py
mcp.example.json
docs/banner.svg
docs/hero.png
docs/architecture.png
python -m unittest test.test_agent_tools -v

Agent / MCP / 文档问题请在 本仓库 开 Issue。网站解析坏了请到 yt-dlp/yt-dlp

致谢与许可

下载能力来自 yt-dlp/yt-dlp,与官方无隶属关系。详见 NOTICE

许可证:Unlicense

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选