什么是 yt-dlp?
yt-dlp 是一个命令行音视频下载器,支持远超一千个站点。它最初是 youtube-dl 的分支(经由现已停止维护的 youtube-dlc),如今是两者之中真正活跃维护的项目:格式选择器强大得多,内置 SponsorBlock 集成,原生支持嵌入字幕、章节和元数据,并提供可编写自定义提取器的插件系统。
⚡ yt-dlp 的主要功能
🌐 数千个站点
超过 1700 个提取器,覆盖视频平台、广播机构、播客托管和新闻网站,另有通用提取器,可在没人专门写过提取器的页面上找到媒体。
🎚️ 精确的格式选择
-f 和 -S 提供了一整套针对分辨率、编码、码率和容器的表达式语言,让你精确指定想要的流,而不是接受默认值。
🎧 提取音频
-x --audio-format mp3 会抽出音轨并重新编码,配合 --embed-thumbnail 和 --embed-metadata 可得到音乐播放器都能识别的带标签文件。
💬 字幕与章节
下载或嵌入任意可用语言的字幕,保留自动生成的字幕,把章节标记直接写入输出文件,或据此切分文件。
⏭️ SponsorBlock
借助 SponsorBlock 数据库,在下载时即可标记或移除赞助片段、片头和自我推广,事后无需再动剪辑软件。
🍪 Cookie 与会话
--cookies-from-browser 直接从 Firefox 或 Chromium 读取已登录的会话,让私享、年龄限制和会员专属内容也能正常下载。
apt upgrade 就能让你保持最新。
📦 从 deb.griffo.io 安装
第 1 步:添加仓库
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update第 2 步:安装 yt-dlp
# 安装最新版 yt-dlp
sudo apt install yt-dlp
# 验证安装
yt-dlp --version# 安装最新版 yt-dlp
apt install yt-dlp
# 验证安装
yt-dlp --version第 3 步:安装 ffmpeg(强烈建议)
# yt-dlp 需要 ffmpeg 来合并分离的视频与音频流、
# 提取音频,以及嵌入字幕或缩略图
sudo apt install ffmpeg
# bash、zsh 和 fish 的补全随包提供——
# 无需任何配置。打开新的 shell 并按 Tab:
yt-dlp --embed-<Tab>
# 手册页同样会被安装
man yt-dlp# yt-dlp 需要 ffmpeg 来合并分离的视频与音频流、
# 提取音频,以及嵌入字幕或缩略图
apt install ffmpeg
# bash、zsh 和 fish 的补全随包提供——
# 无需任何配置。打开新的 shell 并按 Tab:
yt-dlp --embed-<Tab>
# 手册页同样会被安装
man yt-dlp🎯 基本用法示例
日常下载:
# 以可用的最佳画质下载视频
yt-dlp 'https://example.com/watch?v=...'
# 不超过 1080p 的最佳 MP4
yt-dlp -S 'res:1080,ext:mp4' 'URL'
# 仅音频,输出带标签的 MP3
yt-dlp -x --audio-format mp3 --embed-thumbnail --embed-metadata 'URL'
# 选择之前先查看所有可用格式
yt-dlp -F 'URL'字幕、章节与赞助片段:
# 嵌入英文字幕,包括自动生成的字幕
yt-dlp --embed-subs --sub-langs en --write-auto-subs 'URL'
# 把章节标记写入文件
yt-dlp --embed-chapters 'URL'
# 下载时直接去掉赞助片段和片头
yt-dlp --sponsorblock-remove sponsor,intro 'URL'
# 只截取其中一段,而不是整个视频
yt-dlp --download-sections '*00:01:30-00:04:00' 'URL'播放列表、归档与自动化:
# 下载整个播放列表,并按上传者分文件夹整理
yt-dlp -o '%(uploader)s/%(title)s.%(ext)s' 'PLAYLIST_URL'
# 保持频道同步,且不重复下载旧内容
yt-dlp --download-archive seen.txt 'CHANNEL_URL'
# 使用已登录的浏览器会话下载私享或年龄限制内容
yt-dlp --cookies-from-browser firefox 'URL'
# 通过 aria2c 获得更快的下载速度
yt-dlp --downloader aria2c --downloader-args aria2c:'-x 8 -s 8' 'URL'🔧 工具集成
yt-dlp 是许多其他软件默认依赖的下载后端:
- ffmpeg:合并、重封装、提取音频和嵌入数据都会调用它
- mpv:直接播放链接,播放时交给 yt-dlp 解析
- aria2:可选的外部下载器,支持并行分段传输
- 媒体服务器:Jellyfin、Kodi 和 Navidrome 的媒体库常用 yt-dlp 的输出模板来填充
- 配置文件:把常用参数写进
~/.config/yt-dlp/config,不必每次重复输入
🚀 为什么选择 deb.griffo.io?
- 官方 Ubuntu:有该软件包,但冻结在发行版发布时的版本,落后数月的提取器修复
- pip / pipx:版本较新,但不在 apt 之内,而且 PEP 668 让 Ubuntu 上的系统级
pip install变得别扭 - deb.griffo.io:最新版本,并自动更新
- ✅ 可用的提取器:最新发布版本,这正是下载能否成功的关键
- ✅ 无需手动配置:不用 pip,不用 virtualenv,也不会有自更新写入
/usr/local/bin - ✅ 自动更新:上游发布后数小时内更新软件包
- ✅ 完整软件包:官方上游构建、
yt-dlp.1手册页,以及 bash、zsh 和 fish 补全 - ✅ 所有架构:以
Architecture: all发布,amd64、arm64、armhf、riscv64 等安装的是同一个包 - ✅ 多发行版:支持 Ubuntu 22.04、24.04、25.10 和 26.04
- ✅ 易于维护:使用标准 apt 命令即可更新
📦 软件包构建仓库
Ubuntu 软件包在这个 GitHub 仓库中自动构建和维护:
- 📺 yt-dlp-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供: