M3U8 视频下载器(一键命令生成)
职责边界(必须遵守)
本 skill 只做两件事:
- 指导用户用「猫抓」扩展获取 m3u8 链接(用户不会抓时才需要引导)
- 生成一条可直接复制、由用户自己在终端执行的 yt-dlp 命令
Agent 绝对不要自己执行下载命令。 原因:Trae 沙盒限制写盘目录 + 反爬请求易被拦截。一律把生成好的命令交给用户跑。
第一步:获取 m3u8 链接(猫抓 cat-catch)
当用户只有网页地址、没有 m3u8 链接时,向用户展示以下步骤:
- 在 Chrome/Edge 安装扩展「猫抓 cat-catch」(应用商店搜索即可)
- 打开目标视频网页,点击播放视频
- 点击浏览器右上角的猫抓图标
- 在弹出的媒体列表中找到
.m3u8结尾的条目:- 优先复制
playlist.m3u8(主播放列表,会自动选最高画质) - 若主链接下载被拒,再换具体画质的子清单,如
720p/video.m3u8
- 优先复制
- 右键复制该条目的完整链接
第二步:生成一键命令
将下方模板中的三个 <占位符> 替换为实际值后,整条输出给用户:
D:\software\yt-dlp_win\yt-dlp.exe --impersonate chrome --referer "<来源网页地址>" -N 8 -o "<输出路径>\<文件名>.%(ext)s" "<m3u8链接>"
固定参数说明(不可删减)
| 参数 | 作用 |
|---|---|
--impersonate chrome |
核心参数。模拟真实 Chrome 的 TLS 指纹通过 Cloudflare 检测(实测缺失必 403) |
--referer "<来源网页>" |
过防盗链。默认填 https://missav.live/,其他站点改为对应视频网页地址 |
-N 8 |
8 线程并发下载分片,大幅提速 |
-o "<路径>\<文件名>.%(ext)s" |
输出位置,每次由用户临时指定 |
环境前提(已验证):yt-dlp 位于 D:\software\yt-dlp_win\yt-dlp.exe,ffmpeg 已在 PATH 中负责合并封装。
第三步:报错对照表
| 报错 | 处理方案 |
|---|---|
HTTP Error 403(Cloudflare anti-bot) |
确认带了 --impersonate chrome;仍 403 则换子清单链接(如 720p/video.m3u8)重试 |
| 换子清单仍 403 | 追加 --cookies-from-browser edge(或 chrome),借用真实浏览器的通过凭证 |
curl: (56) Connection closed abruptly |
个别分片网络中断,yt-dlp 会自动重试,无需处理 |
ffmpeg not found |
执行 winget install ffmpeg 后重跑同一条命令 |
| 中途断开/失败 | 直接重跑同一条命令,自动断点续传,已下分片不重复下载 |
行为准则
- 用户给了 m3u8 链接 → 直接输出替换好占位符的完整命令
- 用户只给网页地址 → 先展示「第一步」教其用猫抓抓取,拿到链接后再生成命令
- 文件超过 1G 属正常现象,主动告知用户支持断点续传、中途断了重跑即可
- 用户要求时,可额外生成
.bat双击脚本(写入工作区等沙盒允许的位置)