本页介绍了 you-get 的命令行选项和使用模式。有关核心架构和下载系统的更多信息,请参阅 核心架构 和 下载系统。
You-Get 主要通过其命令行界面进行操作,该界面提供了广泛的选项,用于从网络下载、播放和管理媒体内容。CLI 是所有 you-get 操作的主要入口点,负责处理参数解析、站点检测和协调下载过程。
来源: src/you_get/__main__.py17-22 src/you_get/common.py986-1045
使用 you-get 的基本语法是
you-get [OPTIONS] URL
其中 URL 是您想下载的媒体的地址,OPTIONS 是下面描述的任何命令行标志。
从 YouTube 下载视频
$ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将以默认格式将视频下载到当前目录。
来源: README.md17-32
You-get 提供了许多控制其行为的命令行选项。这些选项可分为几类
来源: src/you_get/common.py129-141 README.md162-376
| 选项 | 描述 |
|---|---|
--version, -V | 显示 you-get 的版本并退出 |
--help, -h | 显示帮助信息并退出 |
--debug | 显示回溯和其他调试信息 |
来源: src/you_get/__main__.py10-17 src/you_get/__main__.py53-63
| 选项 | 描述 |
|---|---|
--info, -i | 显示流信息而非下载 |
--json | 以 JSON 格式显示信息 |
--url, -u | 显示资源 URL 而非下载 |
示例
$ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将显示所有可用的质量选项和格式,而无需下载视频。
来源: README.md166-184 README.md369-376
| 选项 | 描述 |
|---|---|
--force, -f | 强制覆盖现有文件 |
--no-merge, -n | 下载后不合并视频片段 |
--cookies, -c | 从浏览器 cookie 文件加载 cookie |
示例
$ you-get --force 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将下载视频,即使它已存在于目标目录中,并覆盖现有文件。
来源: README.md307-314 README.md362-368 src/you_get/common.py132
| 选项 | 描述 |
|---|---|
--itag=ITAG | 指定 YouTube 视频的流格式代码 |
示例
$ you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将下载 itag 代码为 18 的 MP4 格式(通常是 360p)。
来源: README.md255-265
| 选项 | 描述 |
|---|---|
--http-proxy, -x PROXY | 为 HTTP(S) 连接使用代理 |
--extractor-proxy, -y PROXY | 专门为提取器使用代理 |
--no-proxy | 禁用任何代理的使用 |
示例
$ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将通过 127.0.0.1:8087 的代理路由所有 HTTP 请求。
来源: README.md329-342 src/you_get/common.py134
| 选项 | 描述 |
|---|---|
--output-dir, -o DIR | 设置输出目录 |
--output-filename, -O FILENAME | 设置输出文件名 |
--auto-rename | 如果输出文件已存在,则自动重命名 |
示例
$ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将把下载的视频保存为“zoo.webm”,位于 ~/Videos 目录中。
来源: README.md316-327 src/you_get/common.py137-141
| 选项 | 描述 |
|---|---|
--player, -p PLAYER | 流式传输到指定的媒体播放器而不是下载 |
示例
$ you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
这将直接将视频流式传输到 VLC,而不是下载它。
来源: README.md343-360 src/you_get/common.py273-290
下图说明了命令如何通过 you-get 系统进行处理
来源: src/you_get/__main__.py87-92 src/you_get/common.py986-1124
You-get 使用域名字典将 URL 路由到相应的提取器模块
SITES 字典将域名映射到提取器模块名称。例如,‘youtube’ 映射到 YouTube 提取器模块。
来源: src/you_get/common.py25-127 src/you_get/extractors/__init__.py1-86
在下载媒体时,you-get 提供了一个显示下载速度和完成百分比的进度条
Downloading Me at the zoo.webm ...
100% ( 0.5/ 0.5MB) ├██████████████████████████████████┤[1/1] 6 MB/s
进度条实现在 SimpleProgressBar 和 PiecesProgressBar 类中,它们会随着下载的进行而实时更新。
来源: src/you_get/common.py836-945 README.md28-31
以下是一些 you-get 的常用用例示例
$ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
$ you-get --force 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
来源: README.md162-342
you-get 在下载过程中会自动创建一个临时的 .download 文件。如果下载中断,您可以再次运行相同的命令来继续下载。you-get 会检测到部分下载的文件并从中断处继续。
来源: README.md307-314
you-get 为 Bash、Fish 和 Zsh 提供了 shell 补全脚本。这些脚本可以在仓库的 contrib/completion 目录中找到。
来源: README.md138-140
当 you-get 遇到错误时,它会提供信息性的错误消息来帮助诊断问题。为了调试目的,您可以使用 --debug 选项来获取更详细的信息。
在网络错误的情况下,you-get 会自动重试几次下载,然后放弃。
来源: src/you_get/common.py428-448
you-get 的命令行界面提供了一种强大而灵活的方式来下载和交互网络上的媒体内容。凭借其各种选项和功能,它可以处理各种用例,从简单的下载到涉及代理、格式选择和媒体播放的更复杂场景。