Python | 开源项目you-get的下载和使用
安装
前提条件
建议使用以下依赖项:
$ python
Python 3.9.11 (tags/v3.9.11:2de452f, Mar 16 2022, 14:33:45) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
通过 pip 安装
正式版本you-get
分布在PyPI上,可以通过pip包管理器从 PyPI 镜像轻松安装。请注意,您必须使用 Python 3 版本pip
:
$ pip install you-get
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Requirement already satisfied: you-get in d:\software\development\python\python39\lib\site-packages (0.4.1620)
升级
根据您选择安装的选项you-get
,您可以通过以下方式对其进行升级:
$ pip3 install --upgrade you-get
入门
常用选项命令
选项 | 说明 |
---|---|
-i | 显示资源信息,比如说格式、清晰度、大小等 |
-u | 指定下载或查看的url,有时候可以省略-u直接加上url |
-o | 设置输出文件夹,即保存路径,若不指定,则保存在当前工作目录 |
-O | 设置文件名,可采用默认文件名 |
-f | 强制覆盖已存在的文件 |
-l | 优先下载整个列表 |
-P | 使用密码(若访问视频需要密码) |
-t | 设置超时时间,单位是秒 |
-c | 使用cookie,加载cookies.txt 或者cookies.sqlite |
下载视频
当您获得感兴趣的视频时,您可能希望使用--info
/-i
选项查看所有可用的质量和格式:
$ you-get -i https://www.bilibili.com/video/BV1yT411L7dZ
site: Bilibili
title: 李白:你这蜀道太假了!超级蜀道,如何改变四川?【星球4K】《超级风景 超级工程》S02E04
streams: # Available quality and codecs
[ DASH ] ____________________________________
- format: dash-flv
container: mp4
quality: 高清 1080P
size: 224.2 MiB (235098681 bytes)
# download-with: you-get --format=dash-flv [URL]
- format: dash-flv720
container: mp4
quality: 高清 720P
size: 120.2 MiB (126057779 bytes)
# download-with: you-get --format=dash-flv720 [URL]
- format: dash-flv480
container: mp4
quality: 清晰 480P
size: 79.7 MiB (83553841 bytes)
# download-with: you-get --format=dash-flv480 [URL]
- format: dash-flv360
container: mp4
quality: 流畅 360P
size: 43.0 MiB (45039584 bytes)
# download-with: you-get --format=dash-flv360 [URL]
[ DEFAULT ] _________________________________
- format: flv
container: flv
quality: 高清 1080P
size: 301.9 MiB (316600250 bytes)
# download-with: you-get --format=flv [URL]
- format: flv720
container: flv
quality: 高清 720P
size: 212.1 MiB (222401583 bytes)
# download-with: you-get --format=flv720 [URL]
- format: flv480
container: flv
quality: 清晰 480P
size: 95.0 MiB (99594194 bytes)
# download-with: you-get --format=flv480 [URL]
- format: flv360
container: flv
quality: 流畅 360P
size: 43.2 MiB (45315454 bytes)
# download-with: you-get --format=flv360 [URL]
在未指定格式的情况下,下载的默认格式是质量最高的格式。
(如果 BliBli视频有任何隐藏字幕,它们将与视频文件一起以 xml字幕格式下载。)
或者,如果您更喜欢其他格式 (mp4),只需使用选项you-get
显示给您的任何内容:
$ you-get --format=dash-flv https://www.bilibili.com/video/BV1yT411L7dZ
site: Bilibili
title: 李白:你这蜀道太假了!超级蜀道,如何改变四川?【星球4K】《超级风景 超级工程》S02E04
stream:
- format: dash-flv
container: mp4
quality: 高清 1080P
size: 224.2 MiB (235098681 bytes)
# download-with: you-get --format=dash-flv [URL]
Downloading 李白:你这蜀道太假了!超级蜀道,如何改变四川?【星球4K】《超级风景 超级工程》S02E04.mp4 ...
100% (224.2/224.2MB) ├████████████████████████████████████████┤[2/2] 7 MB/s
Downloading 李白:你这蜀道太假了!超级蜀道,如何改变四川?【星球4K】《超级风景 超级工程》S02E04.cmt.xml ...
MP4格式,音频和视频会被分成两个单独文件,而flv格式就只有一个音视混合的文件。其它网站可自行测试
笔记:
- 目前,支持的大多数站点还没有普遍实现格式选择;在这种情况下,要下载的默认格式是质量最高的格式。
ffmpeg
是一个必需的依赖项,用于下载和加入多部分流式传输的视频(例如在优酷等网站上),以及 1080p 或高分辨率的 YouTube 视频。- 如果您不想
you-get
在下载后加入视频部分,请使用--no-merge
/-n
选项。
下载歌曲
例如:网易云音乐的歌曲
$ you-get -O 满眼繁华 https://music.163.com/#/song?id=1889103238
Site: 163.com
Title: 0. 满眼繁华
Type: Unknown type (None)
Size: 3.92 MiB (4110381 Bytes)
Downloading 满眼繁华.mp3 ...
100% ( 3.9/ 3.9MB) ├████████████████████████████████████████┤[1/1] 5 MB/s
Saving 0. 满眼繁华.lrc ...Done.
一个是音频文件,一个是歌词文件
下载其他任何东西
如果你已经有了你想要的确切资源的 URL,你可以直接下载它:
$ you-get https://w.wallhaven.cc/full/y8/wallhaven-y8622k.jpg
Site: wallhaven.cc
Title: wallhaven-y8622k
Type: JPEG Image (image/jpeg)
Size: 1.18 MiB (1232268 Bytes)
Downloading wallhaven-y8622k.jpg ...
100% ( 1.2/ 1.2MB) ├████████████████████████████████████████┤[1/1] 539 kB/s
否则,you-get
将抓取网页并尝试找出您是否感兴趣
笔记:
- 此功能是一项实验性功能,远非完美。它最适合从 Tumblr 和 Blogger 等流行网站上抓取大尺寸图片,但实际上没有通用模式可以应用于 Internet 上的任何网站。
暂停和恢复下载
您可以使用Ctrl+C来中断下载。
临时.download
文件保存在输出目录中。下次您you-get
使用相同的参数运行时,下载进度将从上次会话恢复。如果文件完全下载(临时.download
扩展名消失),you-get
将跳过下载。
要强制重新下载,请使用--force
/-f
选项。(警告:这样做会覆盖任何现有文件或同名临时文件!)
设置下载文件的路径和名称
使用--output-dir
/-o
选项设置路径,使用--output-filename
/-O
设置下载文件的名称:
$ you-get -o ~/Videos -O 超级蜀道,如何改变四川? 'you-get --format=dash-flv https://www.bilibili.com/video/BV1yT411L7dZ'
提示:
- 如果您遇到与默认视频标题有关的问题,这些选项会很有帮助,因为默认视频标题可能包含与您当前的外壳/操作系统/文件系统无法正常播放的特殊字符。
- 如果您编写脚本以批量下载文件并将它们放入具有指定名称的指定文件夹中,这些选项也很有帮助。
代理设置
you-get
您可以通过--http-proxy
/-x
选项指定要使用的 HTTP 代理:
$ you-get -x 127.0.0.1:8087 'https://www.bilibili.com/video/BV1yT411L7dZ'
http_proxy
但是,默认情况下会应用系统代理设置(即环境变量)。要禁用任何代理,请使用该--no-proxy
选项。
提示:
- 如果您需要大量使用代理(以防您的网络阻止某些站点),您可能希望使用
you-get
代理链并设置alias you-get="proxychains -q you-get"
(在 Bash 中)。 - 对于某些网站(如优酷),如果您需要访问某些仅在中国大陆地区可用的视频,可以选择使用特定代理从网站中提取视频信息:
--extractor-proxy
/-y
加载 cookie
并非所有视频都对任何人公开。如果您需要登录您的帐户来访问某些内容(例如,私人视频),则不可避免地you-get
通过--cookies
/-c
选项将浏览器 cookie 提供给浏览器。
笔记:
- 截至目前,我们支持两种格式的浏览器 cookie:Mozilla
cookies.sqlite
和 Netscapecookies.txt
。
重用提取的数据
使用--url
/-u
获取从页面中提取的可下载资源 URL 列表。用于--json
以 JSON 格式获取提取数据的摘要。
警告:
- 目前,此功能尚未稳定,JSON 模式将来可能会发生重大变化。
支持的站点
对于不在列表中的所有其他站点,通用提取器将负责从页面中查找和下载有趣的资源。