基于Python的下载神器You-Get

You-Get(官网)乃一小小哒命令行程序,通过极其便利的方式来下载网络上的媒体信息(视频,音频,图像)等。只需要在命令行输入you-get+'链接',程序就可以自动解析文件地址,并自动开始下载并保存。比如下面这个例子:

you-get http://www.fsf.org/blogs/rms/20140407-geneva-tedx-talk-free-software-free-society
Site: fsf.org
Title: TEDxGE2014_Stallman05_LQ
Type: WebM video (video/webm)
Size: 27.12 MiB (28435804 Bytes)

Downloading TEDxGE2014_Stallman05_LQ.webm ...
100.0% ( 27.1/27.1 MB) ├████████████████████████████████████████┤[1/1] 12 MB/s

为什么要用You-get

  • 发现喜欢的媒体文件,然而网站却禁止下载
  • 摆脱闭源技术或JavaScript的束缚,并禁止诸如Flash之类的运行
  • 拥护黑客精神和自由软件

You-Get的功能:

  • 下载流行网站的音视频,例如UTube, Youku等。(查看完整支持列表)
  • 下载后可在习惯的播放器中观看在线视频,脱离浏览器与广告
  • 下载喜欢的图片
  • 下载任何非HTML内容,例如二进制文件

心动吗?下面开始学习如何安装和使用。

安装

以下为必要依赖,需要单独预装,除非你已经装好或者知道如何区分。

选项 1: 通过pip安装

you-get官方版本通过PyPI分发, 可从PyPI镜像中通过pip包管理器安装. 必须要使用Python3版本的 pip:

pip3 install you-get

选项 2: 使用预装包(仅供Windows)

exe (单独文件) 或 7z (包括所有依赖) 可从https://github.com/soimort/you-get/releases/latest 下载。

选项 3: 于GitHub下载

您可选择稳定版 (与PyPI最新版等同) 或 开发版 (更多的新但不稳定功能)的you-get. 解压并将含有you-get的目录加入PATH.

或者在指定路径运行,以安装you-get 于指定路径。:

make install

选项 4: Git clone(推荐)

这是最简单、最常用的办法:

git clone git://github.com/soimort/you-get.git

将目录加入 PATH, 或在指定路径运行 make install 以安装you-get 于指定路径。

开始使用

下载视频

发现喜欢的视频,先用you-get -infoyou-get -i,查看所有可下载的画质与格式,例如:

you-get -i 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'
site: Youku
title: Me at the zoo
streams: # Available quality and codecs
[ DEFAULT ] _________________________________
- itag: 43
container: webm
quality: medium
size: 0.5 MiB (564215 bytes)
# download-with: you-get --itag=43 [URL]

- itag: 18
container: mp4
quality: medium
# download-with: you-get --itag=18 [URL]

- itag: 5
container: flv
quality: small
# download-with: you-get --itag=5 [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]

标有DEFAULT 为默认画质。如认同,可通过you-get+'链接'下载:

you-get 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'
site: Youku
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 zoo.webm ...
100.0% ( 0.5/0.5 MB) ├████████████████████████████████████████┤[1/1] 7 MB/s

Saving Me at the zoo.en.srt ...Done.

(如果视频带有字幕,将被一同下载,以SubRip格式保存。)

如果希望下载其他格式(mp4),请使用其他选项命令--itag=,例如:

you-get --itag=18 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

注意:

  • 目前,格式选择没有大规模铺开;默认选项为最高画质
  • 如要下载分块视频(例如,类似Youku), 以及UTube的1080p或更高分辨率,则ffmpeg为必要依赖
  • 如不希望you-get合并视频,使用--no-merge/-n

下载其他内容

对于任意一个链接地址,可以直接使用,例如:

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的大图有效,但是暂时不适用所有网站。

暂停与恢复下载

可以使用Ctrl+C 暂停下载。

临时的.download文件将保存于输出目录。下次使用you-get传入相同参数时,下载将从上次断点继续开始。如果下载已经完成 (临时的.download 扩展名消失), you-get将忽略下载。

--force/-f强行重新下载. (注意: 将覆盖同名文件或临时文件!)

设置输出文件名或路径

使用--output-dir/-o 设定路径, --output-filename/-O 设定输出文件名:

you-get -o ~/Videos -O zoo.webm 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

提示:

  • 如果原视频标题含有与系统不兼容字符,十分有效
  • 也可以帮助使用脚本批量下载到指定目录和文件名

代理设置

使用 --http-proxy/-xyou-get设置HTTP代理:

you-get -x 127.0.0.1:8087 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

使用--no-proxy强行关闭代理。如需科学上网,可以参考另外一篇文章:《利用免费的Google Cloud来部署科学上网神器SS

观看视频

使用 --player/-p 将视频feed给播放器, 例如 mplayer 或者 vlc,这里不是下载,直接在线看:

you-get -p vlc 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

或者在浏览器中观看而不希望看到广告或评论区:

you-get -p chromium 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

提示:

  • 可以使用 -p 开启下载工具,例如:
    you-get -p uget-gtk 'http://v.youku.com/v_show/id_XMzIyMzk0MjYwMA==.html?f=51386181'

如果你使用本软件进行盗版行为,或者非法行径,作者不为你负责。
这里仅提供代码, 如何使用请自行斟酌。

坚持原创分享,您的支持将鼓励我继续创作!