菜单

命令行界面

相关源文件

本页介绍了 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

站点检测和 URL 路由

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

进度条实现在 SimpleProgressBarPiecesProgressBar 类中,它们会随着下载的进行而实时更新。

来源: 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

Shell 补全

you-get 为 Bash、Fish 和 Zsh 提供了 shell 补全脚本。这些脚本可以在仓库的 contrib/completion 目录中找到。

来源: README.md138-140

错误处理

当 you-get 遇到错误时,它会提供信息性的错误消息来帮助诊断问题。为了调试目的,您可以使用 --debug 选项来获取更详细的信息。

在网络错误的情况下,you-get 会自动重试几次下载,然后放弃。

来源: src/you_get/common.py428-448

结论

you-get 的命令行界面提供了一种强大而灵活的方式来下载和交互网络上的媒体内容。凭借其各种选项和功能,它可以处理各种用例,从简单的下载到涉及代理、格式选择和媒体播放的更复杂场景。