[download_code]
You-Get是一个很小的命令行实用程序,可以从Web下载媒体内容(视频,音频,图像)。
这是you-get
从YouTube下载视频的方法:
$ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw' site: YouTube title: Me at the zoo stream: - itag: 43 container: webm quality: medium size: 0.5 MiB (564215 bytes) # download-with: you-get --itag=43 [URL] Downloading Me at the zoo.webm ... 100% ( 0.5/ 0.5MB) ├██████████████████████████████████┤[1/1] 6 MB/s Saving Me at the zoo.en.srt ... Done.
支持的网站:
这就是您可能要使用它的原因:
- 您在Internet上享受了一些东西,只是想自己下载就可以了。
- 您可以从计算机上在线观看喜欢的视频,但禁止保存它们。您感觉自己无法控制自己的计算机。(这不是开放网络应该如何工作的。)
- 您想摆脱任何封闭源技术或专有JavaScript代码,并禁止在计算机上运行Flash之类的东西。
- 您是黑客文化和免费软件的拥护者。
you-get
可以为您服务:
- 从YouTube,Youku,Niconico等流行网站下载视频/音频,等等。(请参阅上方支持的网站的完整列表)
- 在媒体播放器中流式传输在线视频。没有网络浏览器,没有更多广告。
- 通过抓取网页下载(感兴趣的)图像。
- 下载任意非HTML内容,即二进制文件。
1.安装
1.1先决条件
需要以下依赖项:
- Python 3.2或以上
- FFmpeg 1.0或以上
- (可选)RTMPDump
Python安装可见:Python 教程 0 安装Python (windows, macOS)
FFmpeg安装:
安装Pydub前需要先安装ffmpeg:
Mac (打开终端(Terminal), 用 homebrew 安装):
brew install ffmpeg —with–libvorbis —with–sdl2 —with–theora
Linux:
apt–get install ffmpeg libavcodec–extra
Windows:
1. 进入 http://ffmpeg.org/download.html#build-windows,点击 windows 对应的图标,进入下载界面点击 download 下载按钮,
2. 解压下载好的zip文件到指定目录
3. 将解压后的文件目录中 bin 目录(包含 ffmpeg.exe )添加进 path 环境变量中
选项1:通过pip安装
请注意,您必须使用Python 3版本pip
:
$ pip3 install you-get
选项2:从本站下载
下载本站提供的you-get.zip
。解压缩它,然后将包含you-get
脚本的目录放入您的中PATH
。
或者,运行
$ [sudo] python3 setup.py install
或者
$ python3 setup.py install --user
安装you-get
到永久路径。
2.升级
根据您选择安装的选项you-get
,可以通过以下方式进行升级:
$ pip3 install --upgrade you-get
或通过以下方式下载最新版本:
$ you-get https://github.com/soimort/you-get/archive/master.zip
为了在develop
不弄乱PIP的情况下获得最新的分支,可以尝试:
$ pip3 install --upgrade git+https://github.com/soimort/you-get@develop
3.入门
3.1下载影片
收到感兴趣的视频后,您可能需要使用--info
/-i
选项查看所有可用的质量和格式:
$ you-get -i 'https://www.youtube.com/watch?v=jNQXAC9IVRw' site: YouTube title: Me at the zoo streams: # Available quality and codecs [ DASH ] ____________________________________ - itag: 242 container: webm quality: 320x240 size: 0.6 MiB (618358 bytes) # download-with: you-get --itag=242 [URL] - itag: 395 container: mp4 quality: 320x240 size: 0.5 MiB (550743 bytes) # download-with: you-get --itag=395 [URL] - itag: 133 container: mp4 quality: 320x240 size: 0.5 MiB (498558 bytes) # download-with: you-get --itag=133 [URL] - itag: 278 container: webm quality: 192x144 size: 0.4 MiB (392857 bytes) # download-with: you-get --itag=278 [URL] - itag: 160 container: mp4 quality: 192x144 size: 0.4 MiB (370882 bytes) # download-with: you-get --itag=160 [URL] - itag: 394 container: mp4 quality: 192x144 size: 0.4 MiB (367261 bytes) # download-with: you-get --itag=394 [URL] [ DEFAULT ] _________________________________ - itag: 43 container: webm quality: medium size: 0.5 MiB (568748 bytes) # download-with: you-get --itag=43 [URL] - itag: 18 container: mp4 quality: small # download-with: you-get --itag=18 [URL] - itag: 36 container: 3gp quality: small # download-with: you-get --itag=36 [URL] - itag: 17 container: 3gp quality: small # download-with: you-get --itag=17 [URL]
默认情况下,顶部的是您将获得的一个。如果这对您来说很酷,请下载:
$ you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw' site: YouTube title: Me at the zoo stream: - itag: 242 container: webm quality: 320x240 size: 0.6 MiB (618358 bytes) # download-with: you-get --itag=242 [URL] Downloading Me at the zoo.webm ... 100% ( 0.6/ 0.6MB) ├██████████████████████████████████████████████████████████████████████████████┤[2/2] 2 MB/s Merging video parts... Merged into Me at the zoo.webm Saving Me at the zoo.en.srt ... Done.
或者,如果您喜欢其他格式(mp4),则只需使用you-get
显示的选项即可:
$ you-get --itag=18 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
注意:
- 目前,我们大多数受支持的网站尚未实现格式选择;在这种情况下,默认的下载格式是质量最高的格式。
ffmpeg
是必需的依赖项,用于下载和加入分多个部分(例如,在优酷等某些网站上)流式传输的视频以及1080p或高分辨率的YouTube视频。- 如果您不想
you-get
在下载后加入视频部分,请使用--no-merge
/-n
选项。
4.下载其他内容
如果您已经有了想要的确切资源的URL,则可以使用以下方法直接下载它:
$ you-get https://stallman.org/rms.jpg
Site: stallman.org
Title: rms
Type: JPEG Image (image/jpeg)
Size: 0.06 MiB (66482 Bytes)
Downloading rms.jpg ...
100.0% ( 0.1/0.1 MB) ├████████████████████████████████████████┤[1/1] 127 kB/s
否则,you-get
将抓取网页并尝试找出是否有您感兴趣的东西:
$ you-get http://kopasas.tumblr.com/post/69361932517
Site: Tumblr.com
Title: kopasas
Type: Unknown type (None)
Size: 0.51 MiB (536583 Bytes)
Site: Tumblr.com
Title: tumblr_mxhg13jx4n1sftq6do1_1280
Type: Portable Network Graphics (image/png)
Size: 0.51 MiB (536583 Bytes)
Downloading tumblr_mxhg13jx4n1sftq6do1_1280.png ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[1/1] 22 MB/s
注意:
- 此功能是实验性功能,远非完美。它最适合从Tumblr和Blogger等受欢迎的网站上抓取大尺寸图像,但是实际上没有通用模式可应用于Internet上的任何网站。
5.在Google视频中搜索并下载
您可以将任何内容传递给you-get
。如果该网址无效,you-get
将进行Google搜索并为您下载最相关的视频。(这可能不完全是您希望看到的东西,但仍然很有可能。)
$ you-get "Richard Stallman eats"
6.暂停并继续下载
您可以使用Ctrl+C中断下载。
临时.download
文件保留在输出目录中。下次you-get
使用相同的参数运行时,下载进度将从上一个会话恢复。如果文件已完全下载(临时.download
扩展名已消失),you-get
则将跳过下载。
要强制重新下载,请使用--force
/-f
选项。(警告:这样做会覆盖任何同名的现有文件或临时文件!)
7.设置下载文件的路径和名称
使用--output-dir
/-o
选项设置路径,并使用--output-filename
/-O
设置下载文件的名称:
$ you-get -o ~/Videos -O zoo.webm 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
提示:
- 如果您遇到默认视频标题的问题,这些选项会很有用,默认视频标题可能包含特殊字符,这些特殊字符在当前的shell /操作系统/文件系统中无法很好地播放。
- 如果编写脚本来批量下载文件并将其放入具有指定名称的指定文件夹中,这些选项也很有用。
8.代理设定
您可以you-get
通过--http-proxy
/-x
选项指定要使用的HTTP代理:
$ you-get -x 127.0.0.1:8087 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
但是,http_proxy
默认情况下将应用系统代理设置(即环境变量)。要禁用任何代理,请使用该--no-proxy
选项。
提示:
- 如果你需要使用代理了很多(如果您的网络阻止某些网站),你可能希望使用
you-get
与proxychains和集alias you-get="proxychains -q you-get"
(Bash中)。 - 对于某些网站(例如,优酷网),如果您需要访问某些仅在中国大陆可用的视频,则可以选择使用特定的代理从站点中提取视频信息:
--extractor-proxy
/-y
。
9.观看影片
使用--player
/-p
选项将视频输入到您选择的媒体播放器中,例如mpv
或vlc
,而不是下载它:
$ you-get -p vlc 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
或者,如果您希望在浏览器中观看视频,而没有广告或评论部分:
$ you-get -p chromium 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
提示:
- 可以使用该
-p
选项启动另一个下载管理器,例如you-get -p uget-gtk 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
,尽管它们可能无法很好地配合使用。
并非所有人都可以公开获得所有视频。如果您需要登录帐户以访问某些内容(例如私人视频),则不可避免地需要you-get
通过--cookies
/-c
选项将浏览器Cookie馈入。
注意:
- 到目前为止,我们支持两种浏览器cookie格式:Mozilla
cookies.sqlite
和Netscapecookies.txt
。
11.重用提取的数据
使用--url
/-u
获取从页面提取的可下载资源URL的列表。使用--json
得到一个抽象提取数据的JSON格式。
警告:
- 暂且,这个功能已经不被稳定和JSON模式可能在未来的重大更改。