
一句话给 Agent 说个链接,视频就下好了。支持 YouTube、Bilibili、抖音等 23 平台,m3u8/DASH/直链全啃。
给 Agent 一个链接,视频就下好了。
video-catcher,一个给本地 Agent 用的视频下载 Skill。
支持 YouTube、Bilibili、抖音、X、TikTok、Instagram、Facebook 等 23 个平台。
m3u8 流、DASH 流、直链 MP4 全能啃。

我试了一下。把链接丢给 Codex,解析、下载、合并音视频、验证文件,最后给我一份报告。全程不用我插手。
01 它解决了什么
给 Agent 下视频,痛点就两个。
第一,平台太多,每个都要单独适配。 YouTube 用 yt-dlp,B 站又要换一套,抖音要过签名验证,X 要处理反爬。Agent 要么一个一个装工具,要么自己写一堆解析代码。
第二,失败了不知道怎么救。 下载了一半断了,Agent 不会续传。清晰度不对,Agent 不会换。遇到 DRM 保护的视频,Agent 直接报错。
video-catcher 的解法是:把整个下载链路封装成一个 Skill,Agent 一句命令就能跑完整流程。
02 它支持什么
平台覆盖方面,它优先用 yt-dlp,覆盖了 YouTube、Bilibili、Vimeo、X、TikTok、抖音、Instagram、Facebook 等主流平台。
技术层面,它支持:
- • m3u8 HLS 流和 DASH MPD 流解析
- • 多清晰度选择:360p / 720p / 1080p / 2K / 4K / best
- • 精确画质模式:指定 1080p 就真的下 1080p,没有就报错,不会偷偷降到 720p
- • 分离音视频合并:自动处理 video-only / audio-only 轨道,调用 FFmpeg 合并
- • 字幕和封面下载:一行命令带字幕和缩略图一起下
- • 批量下载:传一组链接,全部跑一遍
- • 播放列表下载:指定 playlist URL,自动解析并下载全部视频
- • 断点续传:直链用 .part + HTTP Range,yt-dlp 自带 continue 机制
还有一个细节我挺在意的:它区分 protected / clear / unknown / not-checked 四种 DRM 状态。遇到受保护的流,它会告诉你,不会瞎试。
03 怎么用
安装三步。
Python 3.11+,装依赖:
python -m pip install -U -r requirements.txt
装 Playwright 浏览器:
python -m playwright install chromium
确认 ffmpeg 在 PATH 里:
ffmpeg -version
装完跑一下环境检查:
python scripts/doctor.py
看到 autonomous-ready=true 就齐活了。
用法也很简单。Agent 拿到用户请求后,直接调:
python scripts/video_catcher.py "URL" --mode download
就能下载。想先看清晰度再决定:
python scripts/video_catcher.py "URL" --mode inspect
04 它的自动链路
video-catcher 最值钱的地方是它的 fallback chain。
第一条路走不通,自动换第二条。yt-dlp 失败,它试试浏览器嗅探。浏览器嗅探失败,它再试直接解析。每一层都有明确的失败原因和恢复策略。
比如 YouTube 的 PO Token 路线:普通解析失败后,自动尝试 PO Token Provider、浏览器指纹模拟、web_safari client 三种恢复手段。
Agent 不用管这些细节,它只管把 URL 丢给 Skill,结果自己会跑回来。
写在最后
视频下载这摊事,以前是人工复制粘贴链接、打开各种工具、手动选清晰度。
现在一句话告诉 Agent,剩下的它自己搞定。
分工明确,Agent 负责跑腿,你负责喊一声。





评论(0)