npx skills add ...
npx skills add cat-xierluo/legal-skills --skill universal-media-downloader
输入各类视频网站/播客平台链接后,自动下载对应媒体文件并交付给用户。优先使用 yt-dlp 覆盖抖音(Douyin)、B站(Bilibili)、YouTube 等常见视频网站,也可用于可直接暴露音频地址的播客平台(如小宇宙单集链接)。当遇到 403/登录/年龄或地区限制时,支持使用 cookies.txt 重试;对于可能存在 DRM/加密或条款限制的平台(例如部分 Spotify 内容),应提示用户仅下载其有权保存的内容,并在不可下载时建议改用官方离线/导出渠道或提供原始 RSS/直链。抖音视频在 yt-dlp 撞签名墙("Fresh cookies needed")时自动三级 fallback:无登录直连 aweme.snssdk.com/v1/play → 本机浏览器游客 cookie(无需登录抖音)重跑 yt-dlp,全程无感;抖音图文笔记暂不支持自动下载,需手动处理。
npx skills add cat-xierluo/legal-skills --skill universal-media-downloader
优先覆盖(通常可直接用)
douyin.com、v.douyin.com 等视频链接bilibili.com、b23.tv 等youtube.com、youtu.be播客平台
合规提示:仅用于下载你有权保存的内容(例如你自己上传/拥有版权/获得授权/平台允许离线的内容)。遇到 DRM/加密或平台限制时,不要尝试绕过。
命令:
python scripts/download_media.py "<URL>"默认保存目录:
~/Downloads/(不再自包含,方便日常访问;见 DEC-004)--out-dir 参数自定义输出路径python scripts/download_media.py --audio-only --audio-format mp3 "<URL>"更省事(推荐)——直接读浏览器 cookies:
python scripts/download_media.py --cookies-from-browser chrome "<URL>"或手动导出 cookies.txt(Netscape 格式):
cookies.txt,然后重试:
python scripts/download_media.py --cookies "/path/to/cookies.txt" "<URL>"
--cookies与--cookies-from-browser互斥,二选一。抖音视频无需手动传 cookie——脚本会自动走三级 fallback(见下文「平台差异」),其中最后一环就是自动带本机浏览器游客 cookie 重试(无需登录抖音)。
--proxy "socks5://127.0.0.1:7890"--out-dir 参数--out-dir ~/Desktop--out-dir "~/Videos/bilibili"YouTube / B站:
--remote-components ejs:github),或让用户提供 cookies抖音视频(三级自动 fallback,v0.3.0 起 / v0.5.0 增强):
www.douyin.com 业务 API 已全上 a_bogus/msToken 签名墙,yt-dlp 直接下会报 Fresh cookies are needed。video_id → aweme.snssdk.com/aweme/v1/play/ 拿 302 CDN 直链 → 带 referer 下载,无需 cookie/签名。chrome、safari 读一份游客 cookie(s_v_web_id 等访问 cookie,无需登录抖音)重跑 yt-dlp,即可过 "Fresh cookies are needed" 校验。download_douyin_note.py)。浏览器 cookie 读取失败(如 Chrome 正在运行占用/无该浏览器)时自动换下一个,全失败则回显 yt-dlp 原始报错。play_addr(监控信号 #2 命中,风控返回壳页),当前主力通道是游客 cookie;演进记录见 references/douyin-nocookie-approach.md。Spotify:
scripts/download_media.py
yt-dlp 的通用下载器SAVED_FILEPATH=...--out-dir 参数url(必填)--audio-only / --audio-format--subtitles(可选,自动下载字幕)--sub-lang(可选,字幕语言,默认 all)--cookies(可选)--cookies-from-browser(可选,chrome/firefox/safari/edge,与 --cookies 互斥)--proxy(可选)--out-dir(可选,自定义输出目录)scripts/download_douyin_note.py
iteminfo API 已被抖音加 encrypt_data_miss 拦截,当前提取能力有限,必要时手动截图scripts/download_douyin_video_nocookie.py
aweme.snssdk.com/v1/play,无需 cookie/签名)download_media.py 在抖音 yt-dlp 失败时会自动调用它;也可独立使用SAVED_FILEPATH= 结尾,便于下游脚本(cubox/content-manager)解析url(必填)、--out-dir、--ratio(540p/720p/1080p,默认 540p)、--out-namereferences/douyin-nocookie-approach.md| 依赖 | 安装方式 |
|---|---|
yt-dlp | pip install yt-dlp |
ffmpeg(可选,用于字幕提取和音频转换) | macOS: brew install ffmpegLinux: sudo apt-get install ffmpeg |
aria2c(可选,抖音 fallback 大文件多线程加速 + 断点续传;未安装自动回退单线程) | macOS: brew install aria2 |
无需额外 Python 依赖,yt-dlp 已包含所需库。
抖音相关脚本(download_douyin_*.py)额外依赖 requests(pip install requests)。*