首页 > 其他分享 >yt-dlp 使用指南 (中文版)

yt-dlp 使用指南 (中文版)

时间:2024-06-02 12:54:42浏览次数:24  
标签:视频 -- dlp 使用 使用指南 yt 下载

yt-dlp 使用指南 (中文版)

yt-dlp 是一款功能丰富的命令行音视频下载器,支持数千个网站。该项目是基于已停止维护的 youtube-dlc 项目的 youtube-dl 的分支。

安装

Windows Unix MacOS PyPi 源代码压缩包 其他变体 所有版本

您可以使用二进制文件、pip 或第三方包管理器安装 yt-dlp。有关详细说明,请参阅 wiki。

发布文件

推荐

文件 描述
yt-dlp 平台无关的 zipimport 二进制文件。需要 Python(推荐用于 Linux/BSD)
yt-dlp.exe Windows (Win7 SP1+) 独立 x64 二进制文件(推荐用于 Windows)
yt-dlp_macos 通用 MacOS (10.15+) 独立可执行文件(推荐用于 MacOS)

替代方案

文件 描述
yt-dlp_x86.exe Windows (Win7 SP1+) 独立 x86 (32 位) 二进制文件
yt-dlp_min.exe 使用 py2exe 构建的 Windows (Win7 SP1+) 独立 x64 二进制文件

(不推荐)

文件 描述
yt-dlp_linux Linux 独立 x64 二进制文件
yt-dlp_linux_armv7l Linux 独立 armv7l (32 位) 二进制文件
yt-dlp_linux_aarch64 Linux 独立 aarch64 (64 位) 二进制文件
yt-dlp_win.zip 未打包的 Windows 可执行文件(无自动更新)
yt-dlp_macos.zip 未打包的 MacOS (10.15+) 可执行文件(无自动更新)
yt-dlp_macos_legacy MacOS (10.9+) 独立 x64 可执行文件

其他

文件 描述
yt-dlp.tar.gz 源代码压缩包
SHA2-512SUMS GNU 风格的 SHA512 校验和
SHA2-512SUMS.sig SHA512 校验和的 GPG 签名文件
SHA2-256SUMS GNU 风格的 SHA256 校验和
SHA2-256SUMS.sig SHA256 校验和的 GPG 签名文件

可用于验证 GPG 签名的公钥可在此处获取。示例用法:

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

注意:联机帮助页、shell 补全(自动完成)文件等可在源代码压缩包中找到。

更新

如果您使用的是发布的二进制文件,可以使用 yt-dlp -U​ 更新。

如果您使用 pip 安装,只需重新运行用于安装程序的相同命令。

对于其他第三方包管理器,请参阅 wiki 或参考其文档。

二进制文件目前有三个发布渠道:稳定版、夜间版和主线版。

  • stable​ 是默认渠道,其许多更改已由 nightly​ 和 master​ 渠道的用户测试过。
  • nightly​ 渠道每天大约在 UTC 午夜构建发布,以获取项目的最新补丁和更改的快照。这是推荐给 yt-dlp 常规用户的渠道。夜间版可从 yt-dlp/yt-dlp-nightly-builds 或作为 yt-dlp PyPI 包的开发版获取(可以使用 pip 的 --pre​ 标志安装)。
  • master​ 渠道的功能是在每次推送到 master 分支后构建的版本,这些版本将包含最新的修复和添加,但也更容易出现回归。它们可从 yt-dlp/yt-dlp-master-builds 获取。

使用 --update/-U​ 时,发布的二进制文件只会更新到其当前渠道。当有更新版本可用时,可以使用 --update-to CHANNEL​ 切换到不同的渠道。--update-to [CHANNEL@]TAG​ 也可用于从渠道升级或降级到特定标签。

您还可以使用 --update-to <repository> (<owner>/<repository>)​ 更新到完全不同的存储库上的渠道。不过,请注意您要更新到的存储库,因为不同存储库的二进制文件不会进行验证。

示例用法:

  • yt-dlp --update-to master​ 切换到 master 渠道并更新到其最新版本
  • yt-dlp --update-to [email protected]​ 升级/降级到稳定版渠道标签 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

重要提示:任何遇到稳定版问题的用户应在提交错误报告之前安装或更新到夜间版:

# 从稳定版可执行文件/二进制文件更新到夜间版:
yt-dlp --update-to nightly

# 使用 pip 安装夜间版:
python3 -m pip install -U --pre "yt-dlp[default]"

依赖项

支持 Python 版本 3.8+(CPython 和 PyPy)。其他版本和实现可能无法正常工作。

虽然所有其他依赖项都是可选的,但强烈建议使用 ffmpeg 和 ffprobe。

强烈推荐

  • ffmpeg 和 ffprobe - 合并单独的视频和音频文件以及各种后期处理任务所需。许可证取决于构建。

ffmpeg 中存在一些错误,与 yt-dlp 一起使用时会导致各种问题。由于 ffmpeg 是如此重要的依赖项,我们在 yt-dlp/FFmpeg-Builds 中提供了针对其中一些问题的补丁的自定义构建。有关这些构建解决的特定问题的详细信息,请参阅自述文件。

重要提示:您需要的是 ffmpeg 二进制文件,而不是同名的 Python 包。

网络

  • certifi* - 提供 Mozilla 的根证书包。根据 MPLv2 授权。
  • brotli* 或 brotlicffi - Brotli 内容编码支持。两者均根据 MIT 1 2 授权。
  • websockets* - 用于通过 websocket 下载。根据 BSD-3-Clause 授权。
  • requests* - HTTP 库。用于 HTTPS 代理和持久连接支持。根据 Apache-2.0 授权。

模拟

以下内容提供对模拟浏览器请求的支持。这对于某些使用 TLS 指纹识别的网站可能是必需的。

  • curl_cffi(推荐) - 用于 curl-impersonate 的 Python 绑定。提供 Chrome、Edge 和 Safari 的模拟目标。根据 MIT 授权。 可以使用 curl-cffi 组安装,例如 pip install "yt-dlp[default,curl-cffi]"​ 目前仅包含在 yt-dlp.exe 和 yt-dlp_macos 构建中

元数据

  • mutagen* - 用于某些格式的 --embed-thumbnail​。根据 GPLv2+ 授权。
  • AtomicParsley - 当 mutagen/ffmpeg 无法使用时,用于 mp4/m4a 文件中的 --embed-thumbnail​。根据 GPLv2+ 授权。
  • xattrpyxattrsetfattr - 用于在 Mac 和 BSD 上写入 xattr 元数据 (--xattr​)。分别根据 MIT、LGPL2.1 和 GPLv2+ 授权。

其他

  • pycryptodomex* - 用于解密 AES-128 HLS 流和各种其他数据。根据 BSD-2-Clause 授权。
  • phantomjs - 用于需要运行 javascript 的提取器。根据 BSD-3-Clause 授权。
  • secretstorage* - 用于 --cookies-from-browser​ 在 Linux 上解密基于 Chromium 的浏览器的 cookie 时访问 Gnome 密钥环。根据 BSD-3-Clause 授权。
  • 任何您想与 --downloader​ 一起使用的外部下载器

已弃用

  • avconv 和 avprobe - 现在已弃用,替代 ffmpeg。许可证取决于构建。
  • sponskrub - 用于使用现已弃用的 sponskrub 选项。根据 GPLv3+ 授权。
  • rtmpdump - 用于下载 rtmp 流。可以使用 ffmpeg 代替,并使用 --downloader ffmpeg​。根据 GPLv2+ 授权。
  • mplayer 或 mpv - 用于下载 rstp/mms 流。可以使用 ffmpeg 代替,并使用 --downloader ffmpeg​。根据 GPLv2+ 授权。

要使用或重新分发依赖项,您必须同意其各自的许可条款。

独立的发布二进制文件是用 Python 解释器和包含*标记的包构建的。

如果您没有执行任务所需的必要依赖项,yt-dlp 将会警告您。所有当前可用的依赖项都显示在 --verbose​ 输出的顶部。

编译

独立的 PyInstaller 构建

要构建独立的可执行文件,您必须拥有 Python 和 pyinstaller(如果需要,还需要 yt-dlp 的任何可选依赖项)。可执行文件将针对与所使用的 Python 相同的 CPU 架构构建。

您可以运行以下命令:

python3 devscripts/install_deps.py --include pyinstaller
python3 devscripts/make_lazy_extractors.py
python3 -m bundle.pyinstaller

在某些系统上,您可能需要使用 py​ 或 python​ 代替 python3​。

python -m bundle.pyinstaller​ 接受可以传递给 pyinstaller 的任何参数,例如 --onefile/-F​ 或 --onedir/-D​,这些参数在此处有详细说明。

注意:低于 4.4 的 Pyinstaller 版本不支持从 Windows 商店安装的 Python,除非使用虚拟环境。

重要提示:直接运行 pyinstaller 而不是使用 python -m bundle.pyinstaller​ 不受官方支持。这可能无法正常工作。

平台无关的二进制文件 (UNIX)

您将需要构建工具 python (3.8+)、zip、make (GNU)、pandoc* 和 pytest*。

安装这些工具后,只需运行 make​。

您还可以运行 make yt-dlp​ 来仅编译二进制文件,而不更新任何其他文件。(这不需要*标记的构建工具)

独立的 Py2Exe 构建 (Windows)

虽然我们提供了使用 py2exe 构建的选项,但建议使用 PyInstaller 构建,因为 py2exe 构建不能包含 pycryptodomex/certifi,并且需要目标计算机上的 VC++14 才能运行。

如果您仍然希望构建它,请安装 Python(如果尚未安装),然后您可以运行以下命令:

py devscripts/install_deps.py --include py2exe
py devscripts/make_lazy_extractors.py
py -m bundle.py2exe

相关脚本

  • devscripts/install_deps.py​ - 安装 yt-dlp 的依赖项。
  • devscripts/update-version.py​ - 根据当前日期更新版本号。
  • devscripts/set-variant.py​ - 设置可执行文件的构建变体。
  • devscripts/make_changelog.py​ - 使用简短的提交消息创建 markdown 更改日志并更新 CONTRIBUTORS 文件。
  • devscripts/make_lazy_extractors.py​ - 创建延迟加载的提取器。在构建二进制文件(任何变体)之前运行此脚本将提高其启动性能。如果您希望强制禁用延迟加载的提取器,请设置环境变量 YTDLP_NO_LAZY_EXTRACTORS=1​。

注意:有关更多信息,请参阅它们的 --help​。

Fork 项目

如果您在 GitHub 上 fork 项目,可以运行 fork 的构建工作流以自动构建所选版本作为工件。或者,您可以运行发布工作流或启用夜间工作流来创建完整的(预)发布版本。

使用和选项

yt-dlp [选项] [--] 网址 [网址...]

Ctrl+F 是您的朋友

标签:视频,--,dlp,使用,使用指南,yt,下载
From: https://www.cnblogs.com/woden3702/p/18227001/ytdlp-guide-chinese-version-1awurp

相关文章

  • 什么!你还在学列表和元组?!这一篇文章就够了!之Python基础篇-列表与元组
    列表定义列表的格式:列表名=[元素1,元素2,元素3,......]空列表的定义:my_list=[](常用)  或  my_list=list()列表中的元素不需要具有相同的类型。#定义列表list1,且列表中的元素不具有相同的类型>>>list1=['xiaoming','m',201,54,'13458714']>>>type(list......
  • Anaconda安装Python的seaborn库
      本文介绍在Anaconda的环境中,安装Python语言中,常用的一个绘图库seaborn模块的方法。  seaborn模块是基于Matplotlib的数据可视化库,它提供了一种更简单、更漂亮的界面来创建各种统计图形。seaborn模块主要用于数据探索、数据分析和数据可视化,使得我们在Python中创建各种统计......
  • 使用Python连接到SQLite3数据库进行数据更新和删除
    SQLite3是一种轻量级的嵌入式关系型数据库管理系统,广泛应用于移动应用、嵌入式设备以及小型Web应用等场景。Python内置了对SQLite3数据库的支持,通过sqlite3模块,可以方便地连接、操作SQLite3数据库。在本文中,我们将学习如何使用Python连接到SQLite3数据库,并进行数据更新和删......
  • 【python008】excel表格转markdown文档表格
    1.写文过程中,针对梳理出来的execl知识表格矩阵,想要处理成markdown表格,便于研发等过程中的复用,所以参考了类似需求的代码。后续可以扩展开发功能,增加多种文件格式转换工具(有时间再慢慢补充)。2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!3.欢迎点赞、关注、批评、指正......
  • Python实现ARW到JPG图片转换
    input_path 替换为ARW所在目录output_path替换为JPG保存位置点击查看代码importosimportsubprocessimportrawpyimportimageioinput_path=r'C:\Users\chen\Pictures\ARW'output_path=rf'C:\Users\chen\Pictures\JPG'arw_files=[fforfinos.lis......
  • 【PyTorch】(三)----搭建卷积神经网络
    该系列笔记主要参考了小土堆的视频教程,传送门:P1.PyTorch环境的配置及安装(ConfigurationandInstallationofPyTorch)【PyTorch教程】_哔哩哔哩_bilibili涉及到的文件/数据集网盘:链接:https://pan.baidu.com/s/1aZmXokdpbA97qQ2kHvx_JQ?pwd=1023提取码:1023在前面的两篇......
  • Pyinstaller打包exe的反编译——LitCTF 2024(公开赛道)ezpython!!!!!
    这个工具折磨了我很久,搭配题目记录一下...题目Die打包工具:PyInstaller建议下载GitHub的:GitHub-extremecoders-re/pyinstxtractor:PyInstallerExtractor单独的一个 pyInstaller.py 会很麻烦步骤:将exe拖到pyinstxtractor-master文件夹下面,打开cmdpythonpyinstx......
  • 力扣 2642. 设计可以求最短路径的图类 python AC
    朴素dijkstraclassGraph:def__init__(self,n,edges):self.n=nself.INF=float('inf')self.matrix=[[self.INF]*nfor_inrange(n)]foru,v,winedges:self.matrix[u][v]=wdefaddEdg......
  • 【Python】解决Python报错:AttributeError: ‘str‘ object has no attribute ‘xxx‘
    ......
  • Python 潮流周刊#53:我辈楷模,一个约见诺奖得主,一个成为核心开发者
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。本期周刊分享了12篇文章,12个开源项目,赠书5本《程序是怎样跑起来的(第3版)......