yt-dlp/yt-dlp

GitHub Trending (daily) 工具

摘要

yt-dlp 是一个功能丰富的命令行音视频下载器,支持数千个网站,从 youtube-dl 分支而来。

一个功能丰富的命令行音视频下载器
查看原文
查看缓存全文

缓存时间: 2026/05/22 12:15

yt-dlp/yt-dlp 源代码:https://github.com/yt-dlp/yt-dlp YT-DLP 发布版本 PyPI 捐赠 Discord 支持站点 许可证: Unlicense CI 状态 提交记录 最近提交 yt-dlp 是一个功能丰富的命令行音视频下载器,支持数千个站点。该项目是 youtube-dl (https://github.com/ytdl-org/youtube-dl) 的一个分支,基于现已停止维护的 youtube-dlc (https://github.com/blackjack4494/yt-dlc)。 * 安装 * 详细说明 (https://github.com/yt-dlp/yt-dlp/wiki/Installation) * 发布文件 * 更新 * 依赖 * 编译 * 使用方法和选项 * 通用选项 * 网络选项 * 地理限制 * 视频选择 * 下载选项 * 文件系统选项 * 缩略图选项 * 互联网快捷方式选项 * 详细输出和模拟选项 * 变通方法 * 视频格式选项 * 字幕选项 * 认证选项 * 后处理选项 * SponsorBlock 选项 * 提取器选项 * 预设别名 * 配置 * 配置文件编码 * 使用 netrc 进行认证 * 关于环境变量的说明 * 输出模板 * 输出模板示例 * 格式选择 * 筛选格式 * 排序格式 * 格式选择示例 * 修改元数据 * 修改元数据示例 * 提取器参数 * 插件 * 安装插件 * 开发插件 * 嵌入 yt-dlp * 嵌入示例 * 与 youtube-dl 的差异 * 新功能 * 默认行为差异 * 弃用选项 * 贡献 * 提交 Issue * 开发者说明 * WIKI (https://github.com/yt-dlp/yt-dlp/wiki) * FAQ (https://github.com/yt-dlp/yt-dlp/wiki/FAQ) # 安装 Windows (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe) Unix (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp) MacOS (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos) PyPI (https://pypi.org/project/yt-dlp) 源代码压缩包 (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.tar.gz) 其他变体 所有版本 (https://github.com/yt-dlp/yt-dlp/releases) 你可以使用二进制文件、pip (https://pypi.org/project/yt-dlp) 或第三方包管理器来安装 yt-dlp。详细说明请参阅 wiki (https://github.com/yt-dlp/yt-dlp/wiki/Installation) ## 发布文件 #### 推荐文件|描述 :—|:— yt-dlp (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp)|平台无关的 zipimport (https://docs.python.org/3/library/zipimport.html) 二进制文件。需要 Python(推荐用于 Linux/BSD) yt-dlp.exe (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe)|Windows (Win8+) 独立 x64 二进制文件(推荐用于 Windows) yt-dlp_macos (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos)|通用 MacOS (10.15+) 独立可执行文件(推荐用于 MacOS) #### 替代品|描述 :—|:— yt-dlp_linux (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux)|Linux (glibc 2.17+) 独立 x86_64 二进制文件 yt-dlp_linux.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux.zip)|未打包的 Linux (glibc 2.17+) x86_64 可执行文件(无自动更新) yt-dlp_linux_aarch64 (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64)|Linux (glibc 2.17+) 独立 aarch64 二进制文件 yt-dlp_linux_aarch64.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64.zip)|未打包的 Linux (glibc 2.17+) aarch64 可执行文件(无自动更新) yt-dlp_linux_armv7l.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l.zip)|未打包的 Linux (glibc 2.31+) armv7l 可执行文件(无自动更新) yt-dlp_musllinux (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux)|Linux (musl 1.2+) 独立 x86_64 二进制文件 yt-dlp_musllinux.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux.zip)|未打包的 Linux (musl 1.2+) x86_64 可执行文件(无自动更新) yt-dlp_musllinux_aarch64 (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux_aarch64)|Linux (musl 1.2+) 独立 aarch64 二进制文件 yt-dlp_musllinux_aarch64.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_musllinux_aarch64.zip)|未打包的 Linux (musl 1.2+) aarch64 可执行文件(无自动更新) yt-dlp_x86.exe (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_x86.exe)|Windows (Win8+) 独立 x86 (32-bit) 二进制文件 yt-dlp_win_x86.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win_x86.zip)|未打包的 Windows (Win8+) x86 (32-bit) 可执行文件(无自动更新) yt-dlp_arm64.exe (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_arm64.exe)|Windows (Win10+) 独立 ARM64 二进制文件 yt-dlp_win_arm64.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win_arm64.zip)|未打包的 Windows (Win10+) ARM64 可执行文件(无自动更新) yt-dlp_win.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_win.zip)|未打包的 Windows (Win8+) x64 可执行文件(无自动更新) yt-dlp_macos.zip (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos.zip)|未打包的 MacOS (10.15+) 可执行文件(无自动更新) #### 杂项|描述 :—|:— yt-dlp.tar.gz (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.tar.gz)|源代码压缩包 SHA2-512SUMS (https://github.com/yt-dlp/yt-dlp/releases/latest/download/SHA2-512SUMS)|GNU 格式 SHA512 校验和 SHA2-512SUMS.sig (https://github.com/yt-dlp/yt-dlp/releases/latest/download/SHA2-512SUMS.sig)|SHA512 校验和的 GPG 签名文件 SHA2-256SUMS (https://github.com/yt-dlp/yt-dlp/releases/latest/download/SHA2-256SUMS)|GNU 格式 SHA256 校验和 SHA2-256SUMS.sig (https://github.com/yt-dlp/yt-dlp/releases/latest/download/SHA2-256SUMS.sig)|SHA256 校验和的 GPG 签名文件 用于验证 GPG 签名的公钥在此提供 (https://github.com/yt-dlp/yt-dlp/blob/master/public.key) 示例用法: curl -L https://github.com/yt-dlp/yt-dlp/raw/master/public.key | gpg --import gpg --verify SHA2-256SUMS.sig SHA2-256SUMS gpg --verify SHA2-512SUMS.sig SHA2-512SUMS #### 许可说明 虽然 yt-dlp 本身采用 Unlicense 许可,但许多发布文件包含来自其他项目的代码,这些代码采用不同的许可。最值得注意的是,PyInstaller 打包的可执行文件包含 GPLv3+ 许可的代码,因此整个作品采用 GPLv3+ (https://www.gnu.org/licenses/gpl-3.0.html) 许可。 zipimport Unix 可执行文件 (yt-dlp) 包含来自 meriyah (https://github.com/meriyah/meriyah) 的 ISC (https://github.com/meriyah/meriyah/blob/main/LICENSE.md) 许可代码,以及来自 astring (https://github.com/davidbonnet/astring) 的 MIT (https://github.com/davidbonnet/astring/blob/main/LICENSE) 许可代码。更多详情请参阅 THIRD_PARTY_LICENSES.txt。 Git 仓库、源代码压缩包 (yt-dlp.tar.gz)、PyPI 源码分发和 PyPI 构建分发(wheel)仅包含 Unlicense 许可的代码。 注意:man 手册页、shell 补全(自动完成)文件等可在源代码压缩包中找到 (https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.tar.gz) ## 更新 如果你使用发布二进制文件,可以使用 yt-dlp -U 进行更新 如果你通过 pip (https://github.com/yt-dlp/yt-dlp/wiki/Installation#with-pip) 安装,只需重新运行安装程序时使用的相同命令 对于其他第三方包管理器,请参阅 wiki (https://github.com/yt-dlp/yt-dlp/wiki/Installation#third-party-package-managers) 或参考其文档 目前有三个发布频道可用于二进制文件:stablenightlymaster。 * stable 是默认频道,提供(大体上)每月发布的版本。虽然命名为 stable,因为其许多更改已由 nightlymaster 频道的用户测试过,但最新的 stable 版本往往“陈旧”且容易因外部变化而损坏(即站点方面更改导致 yt-dlp 无法正常工作)。 * nightly 频道提供的版本在代码库有变更的任何一天 UTC 午夜前发布。此频道充当项目开发的快照,是 推荐给 yt-dlp 普通用户的频道nightly 版本可从 yt-dlp/yt-dlp-nightly-builds (https://github.com/yt-dlp/yt-dlp-nightly-builds/releases) 获取,或作为 yt-dlp PyPI 包的开发版本(可使用 pip 的 --pre 标志安装)。 * master 频道提供“候选”版本,在每次推送到 master 分支后发布。此频道始终提供最新的修复和功能,但可能容易出错或出现回归问题。master 版本可从 yt-dlp/yt-dlp-master-builds (https://github.com/yt-dlp/yt-dlp-master-builds/releases) 获取。 使用 --update/-U 时,发布二进制文件只会更新到其当前频道。--update-to CHANNEL 可用于在存在更新版本时切换到不同频道。--update-to [CHANNEL@]TAG 也可用于升级或降级到某频道的特定标签。你还可以使用 --update-to <repository>/<channel><repository>/<tag>)来更新到完全不同仓库的频道。不过要注意你更新到的仓库,因为对不同仓库的二进制文件没有进行验证。 示例用法: * yt-dlp --update-to master 切换到 master 频道并更新到最新版本 * yt-dlp --update-to [email protected] 升级/降级到 stable 频道的标签 2023.07.06 * yt-dlp --update-to 2023.10.07 如果当前频道存在标签 2023.10.07,则升级/降级到该标签 * yt-dlp --update-to example/[email protected] 升级/降级到 example/yt-dlp 仓库的标签 2023.09.24 版本 重要:任何遇到 stable 版本问题的用户,请在提交错误报告前安装或更新到 nightly 版本: # 从 stable 可执行文件/二进制文件更新到 nightly: yt-dlp --update-to nightly # 使用 pip 安装 nightly: python -m pip install -U --pre "yt-dlp[default]" 当你运行的 yt-dlp 版本超过 90 天时,会看到一条建议更新到最新版本的警告信息。你可以通过在命令或配置文件中添加 --no-update 来抑制此警告。 ## 依赖 支持 Python 3.10+ (CPython) 和 3.11+ (PyPy)。其他版本和实现可能无法正常工作。 虽然所有其他依赖都是可选的,但强烈推荐使用 ffmpegffprobeyt-dlp-ejs 和受支持的 JavaScript 运行时/引擎 ### 强烈推荐 * ffmpegffprobe (https://www.ffmpeg.org) - 用于合并独立的视频和音频文件,以及各种后处理任务。许可证取决于构建版本 (https://www.ffmpeg.org/legal.html) 由于 ffmpeg 是一个非常重要的依赖,我们在 yt-dlp/FFmpeg-Builds (https://github.com/yt-dlp/FFmpeg-Builds) 提供了我们自己的构建版本。过去,这些构建版本应用了补丁以解决 yt-dlp 用户的常见问题,但目前我们的构建版本与上游 ffmpeg 相同。详情请参阅 readme (https://github.com/yt-dlp/FFmpeg-Builds#patches-applied) 重要:你需要的是 ffmpeg 二进制文件而不是同名的 Python 包 (https://pypi.org/project/ffmpeg) * yt-dlp-ejs (https://github.com/yt-dlp/ejs) - 用于完整的 YouTube 支持。采用 Unlicense (https://github.com/yt-dlp/ejs/blob/main/LICENSE) 许可,包含 MIT (https://github.com/davidbonnet/astring/blob/main/LICENSE) 和 ISC (https://github.com/meriyah/meriyah/blob/main/LICENSE.md) 组件。还需要一个 JavaScript 运行时/引擎,例如 deno (https://deno.land)(推荐)、node.js (https://nodejs.org)、bun (https://bun.sh) 或 QuickJS (https://bellard.org/quickjs/) 来运行 yt-dlp-ejs。参见 wiki (https://github.com/yt-dlp/yt-dlp/wiki/EJS)。 ### 网络 * certifi (https://github.com/certifi/python-certifi)* - 提供 Mozilla 的根证书包。采用 MPLv2 (https://github.com/certifi/python-certifi/blob/master/LICENSE) 许可 * brotli (https://github.com/google/brotli)* 或 brotlicffi (https://github.com/python-hyper/brotlicffi) - Brotli (https://en.wikipedia.org/wiki/Brotli) 内容编码支持。两者均采用 MIT 许可 1 (https://github.com/google/brotli/blob/master/LICENSE) 2 (https://github.com/python-hyper/brotlicffi/blob/master/LICENSE) * websockets (https://github.com/aaugustin/websockets)* - 用于通过 WebSocket 下载。采用 BSD-3-Clause (https://github.com/aaugustin/websockets/blob/main/LICENSE) 许可 * requests (https://github.com/psf/requests)* - HTTP 库。用于 HTTPS 代理和持久连接支持。采用 Apache-2.0 (https://github.com/psf/requests/blob/main/LICENSE) 许可 #### 模拟浏览器 以下库提供模拟浏览器请求的支持。某些采用 TLS 指纹识别的站点可能需要此功能。 * curl_cffi (https://github.com/lexiforest/curl_cffi)(推荐) - curl-impersonate (https://github.com/lexiforest/curl-impersonate) 的 Python 绑定。提供 Chrome、Edge 和 Safari 的模拟目标。采用 MIT 许可 (https://github.com/lexiforest/curl_cffi/blob/main/LICENSE) * 可通过 curl-cffi 附加组件安装,例如 pip install "yt-dlp[default,curl-cffi]" * 目前包含在大多数构建版本中,除了 yt-dlp(Unix zipimport 二进制文件)和 yt-dlp_x86(Windows 32 位) ### 元数据 * mutagen (https://github.com/quodlibet/mutagen)* - 用于某些格式的 --embed-thumbnail。采用 GPLv2+ (https://github.com/quodlibet/mutagen/blob/master/COPYING) 许可 * AtomicParsley (https://github.com/wez/atomicparsley) - 当 mutagen/ffmpeg 无法处理时,用于 mp4/m4a 文件中的 --embed-thumbnail。采用 GPLv2+ (https://github.com/wez/atomicparsley/blob/master/COPYING) 许可 * xattr (https://github.com/xattr/xattr)、pyxattr (https://github.com/iustin/pyxattr) 或 setfattr (http://savannah.nongnu.org/projects/attr) - 用于在 MacLinux 上写入 xattr 元数据(--xattrs)。许可证因项目而异

相似文章

dayanch96/YTLite

GitHub Trending (daily)

YTLite(原 YouTube Plus)是一款 iOS 端 YouTube 增强插件,提供 100+ 自定义选项,包括下载、界面美化与 SponsorBlock,现已通过 GitHub Actions 构建。

ytr:Emacs 上的 YouTube 电台

Hacker News Top

一款名为 ytr 的新型 Emacs 软件包可将 YouTube 音频流作为电台小部件播放,基于 mpv 和 yt-dlp 驱动,并已在 GitHub 上提供。