命令行界面 (CLI) 是用户与 youtube-dl 交互的主要方式。本页解释了 CLI 如何处理用户输入、处理选项以及与核心组件交互以下载视频。有关配置细节和可用选项,请参阅配置和选项。
youtube-dl CLI 接受 URL 和大量选项来定制下载过程。它将这些输入转换为核心下载系统的参数,管理配置文件,并向用户提供适当的反馈。
来源: youtube_dl/__init__.py49-453 youtube_dl/options.py1-418 youtube_dl/YoutubeDL.py148-376
CLI 遵循从初始调用到视频下载的特定执行路径
来源: youtube_dl/__init__.py49-125 youtube_dl/YoutubeDL.py377-453
CLI 从命令行和配置文件解析选项。选项解析系统处理
/etc/youtube-dl.conf)~/.config/youtube-dl/config)系统按以下顺序检查配置文件
| 平台 | 配置文件位置 |
|---|---|
| 带 XDG 的类 Unix 系统 | $XDG_CONFIG_HOME/youtube-dl/config 或 $XDG_CONFIG_HOME/youtube-dl.conf |
| 不带 XDG 的类 Unix 系统 | ~/.config/youtube-dl/config 或 ~/.config/youtube-dl.conf |
| Windows | %APPDATA%/youtube-dl/config 或 %APPDATA%/youtube-dl/config.txt |
| 备用(所有系统) | ~/youtube-dl.conf 或 ~/youtube-dl.conf.txt |
来源: youtube_dl/options.py42-90
命令行选项分为逻辑组
来源: youtube_dl/options.py129-388 README.md99-354
CLI 实现跨越多个关键文件
来源: youtube_dl/__init__.py1-48 youtube_dl/options.py1-41 youtube_dl/YoutubeDL.py148-165 youtube_dl/utils.py1-110
__init__.py 文件中的核心函数 _real_main 是 CLI 的主入口点
来源: youtube_dl/__init__.py49-125 youtube_dl/__init__.py350-453
CLI 验证用户选项的一致性并解决冲突
系统会为无效的选项组合生成清晰的错误消息。
来源: youtube_dl/__init__.py126-246 youtube_dl/options.py120-418
选项解析器是使用 Python 的optparse库并进行了定制
SUPPRESS_HELP 隐藏选项来源: youtube_dl/options.py92-129 youtube_dl/__init__.py247-319
CLI 将命令行选项转换为 YoutubeDL 类的参数字典
此参数字典控制下载行为的所有方面。
来源: youtube_dl/__init__.py319-403 youtube_dl/YoutubeDL.py377-415
CLI 提供多级错误处理
--ignore-errors 可忽略下载错误--retries 可重试网络错误来源: youtube_dl/__init__.py126-143 youtube_dl/YoutubeDL.py3347-3396
CLI 管理不同类型的输出
| 输出类型 | 目的地 | 控制选项 |
|---|---|---|
| 普通输出 | stdout | --quiet |
| 错误消息 | stderr | --no-warnings |
| 调试信息 | stderr | --verbose |
| JSON 输出 | stdout | --dump-json, --print-json |
| 格式列表 | stdout | --list-formats |
| 提取器信息 | stdout | --list-extractors, --extractor-descriptions |
来源: youtube_dl/YoutubeDL.py384-389 youtube_dl/__init__.py73-124
CLI 支持从多个来源接收 URL
-a 或 --batch-file 指定)-a -)除非启用了并行下载,否则每个 URL 都会被顺序处理。
来源: youtube_dl/__init__.py82-99 youtube_dl/__init__.py403-424
CLI 根据操作系统调整其行为