universal-media-downloader
$
npx mdskill add cat-xierluo/legal-skills/universal-media-downloaderDownload media from major video and podcast sites using yt-dlp, handling logins and restrictions.
- Retrieves video or audio content from various online platforms via a single link.
- Integrates with yt-dlp to support sites like YouTube, Bilibili, and podcast feeds.
- Uses provided cookies or proxy settings to bypass access restrictions like 403 errors.
- Delivers the downloaded file directly to the user or specified local directory.
SKILL.md
.github/skills/universal-media-downloaderView on GitHub ↗
---
name: universal-media-downloader
homepage: https://github.com/cat-xierluo/legal-skills
author: 杨卫薪律师(微信ywxlaw)
version: "0.2.0"
description: 输入各类视频网站/播客平台链接后,自动下载对应媒体文件并交付给用户。优先使用 yt-dlp 覆盖抖音(Douyin)、B站(Bilibili)、YouTube 等常见视频网站,也可用于可直接暴露音频地址的播客平台(如小宇宙单集链接)。当遇到 403/登录/年龄或地区限制时,支持使用 cookies.txt 重试;对于可能存在 DRM/加密或条款限制的平台(例如部分 Spotify 内容),应提示用户仅下载其有权保存的内容,并在不可下载时建议改用官方离线/导出渠道或提供原始 RSS/直链。注意:抖音图文笔记暂不支持自动下载,需手动处理。
license: MIT
---
# Universal Media Downloader(通用视频/播客下载)
## 适用范围
**优先覆盖(通常可直接用)**
- **抖音视频**:`douyin.com`、`v.douyin.com` 等视频链接
- **抖音图文笔记**:暂不支持自动下载(反爬限制),需手动截图
- **B站**:`bilibili.com`、`b23.tv` 等
- **YouTube**:`youtube.com`、`youtu.be`
- 以及其它 **yt-dlp 支持的网站**(数量很多)
**播客平台**
- **小宇宙(单集/节目页)**:多数情况下可直接下载音频(yt-dlp 通常能用)
- 其它播客平台:如果页面可解析出音频直链,通常也能下载
> 合规提示:仅用于下载你**有权保存**的内容(例如你自己上传/拥有版权/获得授权/平台允许离线的内容)。遇到 DRM/加密或平台限制时,不要尝试绕过。
## 快速开始
### 1)下载视频(默认)
- 命令:
- `python scripts/download_media.py "<URL>"`
- 默认保存目录:
- 技能目录下的 `downloads/` 文件夹(自包含)
- 可通过 `--out-dir` 参数自定义输出路径
### 2)只下载音频(适合播客 / 只想要 MP3)
- 命令:
- `python scripts/download_media.py --audio-only --audio-format mp3 "<URL>"`
### 3)遇到 403 / 需要登录 / 风控拦截:用 cookies 重试
- 让用户提供浏览器导出的 **Netscape 格式** `cookies.txt`
- 然后重试:
- `python scripts/download_media.py --cookies "/path/to/cookies.txt" "<URL>"`
### 4)需要代理(可选)
- 例如:
- `--proxy "socks5://127.0.0.1:7890"`
### 5)指定下载路径
- 用户可通过自然语言指定保存位置,AI 应自动转换为 `--out-dir` 参数
- 示例:
- 用户说"下载到桌面" → `--out-dir ~/Desktop`
- 用户说"保存到 Videos/bilibili" → `--out-dir "~/Videos/bilibili"`
- 用户说"下载到这个文件夹"(指定某路径)→ 使用用户指定的绝对路径
- **注意**:确保目标目录存在,如不存在可自动创建
## 平台差异与限制(重要)
- **YouTube/B站/抖音**:
- 常见失败原因:年龄限制、地区限制、频繁请求触发风控、需要登录
- 处理方式:cookies、代理、或降低并发/等待后重试
- YouTube 额外提示:若出现 *Signature solving failed / JS challenge* 警告,可按 yt-dlp 的 EJS 指引启用挑战求解组件(例如加 `--remote-components ejs:github`),或让用户提供 cookies
- **Spotify**:
- Spotify 上的内容可能存在 DRM、账号权限/订阅限制,且“下载”可能违反平台条款。
- 本 skill **不保证** Spotify 链接一定可下载。
- 可行替代:
- 使用官方离线功能(若平台提供)
- 提供该播客的 **RSS/音频直链**(如果你拥有/可获得),再用本脚本下载
## Bundled scripts
- `scripts/download_media.py`
- 基于 `yt-dlp` 的通用下载器
- 输出:成功时最后一行 `SAVED_FILEPATH=...`
- **AI 使用指引**:当用户指定保存路径时,自动使用 `--out-dir` 参数
- 参数:
- `url`(必填)
- `--audio-only` / `--audio-format`
- `--subtitles`(可选,自动下载字幕)
- `--sub-lang`(可选,字幕语言,默认 all)
- `--cookies`(可选)
- `--proxy`(可选)
- `--out-dir`(可选,自定义输出目录)
## 依赖
### 系统依赖
| 依赖 | 安装方式 |
|------|----------|
| `yt-dlp` | `pip install yt-dlp` |
| `ffmpeg`(可选,用于字幕提取和音频转换) | macOS: `brew install ffmpeg`<br>Linux: `sudo apt-get install ffmpeg` |
### Python 包
无需额外 Python 依赖,`yt-dlp` 已包含所需库。
More from cat-xierluo/legal-skills
- clawhub-sync将本地开发的 Skills 批量同步到 ClawHub 平台。支持智能 .gitignore 过滤、白名单控制、增量同步、单个 skill 同步。本技能应在用户需要将本地 skills 发布到 ClawHub、批量同步技能、检查发布状态时使用。
- code2patent从已开发代码项目中提取技术实现证据,围绕候选专利方案生成技术交底书,并以“权利要求布局卡 → 发明专利初稿”两步法继续生成接近可申报版的中国发明专利起草材料。触发场景包括:读取代码仓库后撰写技术交底书、将人工总结的专利方案映射到具体实现、从代码中挖掘可专利技术方案、为专利代理师准备权利要求布局和发明专利初稿。
- course-generator从多个文献内容中系统化提取并生成结构化课程。支持 1-100+ 个文献文件,智能识别内容类型(转录/文献/混合),自动进行主题识别、课程大纲生成、总览与章节内容撰写。采用可选模块架构,适应不同类型内容(理论/实践/案例/历史等)。本技能应在用户需要将多个文献整理为系统化课程、生成学习材料、处理转录内容、或从复杂文稿中提取结构化内容时使用。
- court-sms本技能应在用户收到法院短信(文书送达、立案通知、开庭提醒等)时使用,自动提取案号、当事人、下载链接,下载文书并归档到对应案件目录。
- de-ai-polish检测并去除文章中的AI化表述模式,用于写作润色、文本优化、去AI腔。
- douyin-batch-download抖音视频批量下载工具 - 基于 F2 框架实现高效、增量的视频下载功能。支持单个/批量博主下载,自动 Cookie 管理,差量更新机制。本技能应在用户需要批量下载特定博主视频、服务器部署自动化下载、或定期更新视频库时使用。
- funasr-transcribe使用本地 FunASR 服务将音频或视频文件转录为带时间戳的 Markdown 文件,支持 mp4、mov、mp3、wav、m4a 等常见格式。本技能应在用户需要语音转文字、会议记录、视频字幕、播客转录时使用。
- git-batch-commit智能 Git 批量提交工具。当用户说 "git 提交"、"git commit"、"批量提交"、"拆分提交"、"整理提交" 时使用,或者当用户暂存了多个不同类型的文件需要分开提交时使用。自动将混合的文件修改按类型分类(依赖管理、文档更新、license 文件、配置、源代码等),并创建多个清晰聚焦的提交,使用标准化的提交信息格式。帮助保持清晰的 Git 历史,确保每个提交都有单一、明确的目的。使用英文前缀(docs:、feat:、fix: 等)加中文内容,支持 GitHub 彩色标签显示。
- github-star-managerGitHub Star 项目管理工具,支持从内容自动发现并 Star 项目,同步追踪更新,生成可视化 Dashboard
- legal-proposal-generator根据案件材料或沟通记录生成各类法律服务文档(诉讼方案、咨询报告、非诉方案、建议书、沟通报告、案件分析摘要等)。本技能应在用户需要将案件材料、咨询记录或沟通内容整理为专业法律文档时使用。