月下博客

一个很方便的视频/音频等 命令行下载工具 —— You-Get 安装使用教程

本文最后更新于 2018年9月20日 20:04 可能会因为没有更新而失效。如已失效或需要修正,请留言!

You-Get是一个小型的命令行下载工具,用于从Web上下载媒体内容(视频,音频,图像)。

安装和使用都很简单,并且支持数十种国内外视频音频网站,如 YouTube、Tumblr、Instagram、YouKu(优酷)、网易云音乐、bilibili等(点击查看支持的完整网站列表)。

注意:下载国内的视频/音频网站,需要国内服务器,或者国外服务器挂国内代理才能下载,否则会提示版权问题。而VIP视频亲测只能下载前几分钟。

本教程安装方法仅适用于 Debian7 / 8 系统,其他系统安装方法请自行了解。

Github:https://github.com/soimort/you-get

安装步骤

安装依赖

You-Get 安装依赖:

  1. Python3(Python2 不支持)
  2. FFmpeg(用于合并视频与音频,一些1080P以上的视频与音频是分开的)

为了避免安装出错,请确保你是ROOT管理员用户,或拥有ROOT权限,如果你不是ROOT用户,请使用 sudo su 来获取ROOT权限(执行后会让你输入一遍当前用户的密码)。


首先为了确保依赖安装正常、完整,我们需要更换系统 软件包源为最新的稳定源 jessie (本步骤必做)

默认下面的代码是 美国的镜像源,可以更换下面代码 us.sources.list 中的 us ,具体可以看这里

mv /etc/apt/sources.list /etc/apt/sources.list.bak && wget -N --no-check-certificate -O "/etc/apt/sources.list" https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/sources/us.sources.list

然后我们更新软件包列表,并开始安装依赖。

apt-get update
apt-get install python3 python3-setuptools ffmpeg unzip -y

安装后,使用下面的命令查看 python3 和 ffmpeg 是否安装正常。

python3 -V
ffmpeg -version
# 输出版本号属于正常,如果提示命令不存在 -bash: xxx: command not found ,即代表安装失败

确定依赖安装正常后(如果出错请不要继续),我们就可以安装 You-Get 了。

安装 You-Get

wget -N --no-check-certificate https://github.com/soimort/you-get/archive/master.zip
# 下载 You-Get文件
unzip master.zip
# 解压压缩包
cd you-get-master
# 进入解压后的文件夹
python3 setup.py install
# 使用 python3 安装 You-Get,注意安装的时候,正常情况下是没有反应的。

安装后如果没有报错,那么查看一下 You-Get 的版本,确保安装正常。

you-get -V
# 提示类似于:you-get: version 0.x.xxxx, a tiny downloader that scrapes the web.

如果 You-Get 安装正常,那么就可以把安装用的文件删除了。

注意:如果你想要卸载 You-Get ,那么你还需要这些文件用于卸载,那么你就不能执行下面的删除安装文件步骤,如果不在意那么可以删除。
cd ..
rm -rf master.zip && rm -rf you-get-master

使用方法

我们以这个 Youtube视频为例:

https://www.youtube.com/watch?v=TJlwPUo7-T8

使用须知:You-Get 的参数命令格式必须是 you-get [参数] [网址URL] 网址URL 必须放在最后面,各参数 必须放在 网址URL的前面,否则参数会被 You-Get 忽略!

下载视频

下载视频前,我们可以加上 -i 参数,可以显示出视频的所有的格式,示例如下:

you-get -i https://www.youtube.com/watch?v=TJlwPUo7-T8

然后我们可以看到一大串的输出,其中标明了视频名称、下载ID、视频/音频/图像格式、视频分辨率、文件大小等信息。

其中我们可以看到下列示例中有两部分,上面是视频,最下面没有写视频分辨率是音频(默认不用选)。在一些视频网站中通常1080P及以上分辨率的视频为了方便,会把视频和音频分离开,所以我们才需要 ffmpeg来最后合并视频与音频。

在格式列表中 [ DASH ] 指的是质量最高的视频(音频/图像),而 [ DEFAULT ] 则是默认下载的视频(音频/图像),如果不指定要下载的格式ID,那么会下载 [ DEFAULT ] 视频。

注意:经过测试,目前支持HTML5的浏览器,只能播放 webm和mp4格式的视频,但是 ffmpeg只能合并 mp4格式的视频,所以建议下载 mp4格式的视频。

点击展开 查看输出示例

site:                YouTube
title:               [HD] G.E.M. 鄧紫棋 - 紅薔薇白玫瑰 @ 蓋世英雄
streams:             # Available quality and codecs
    [ DASH ] ____________________________________
    - itag:          137
      container:     mp4
      quality:       1920x1080
      size:          129.7 MiB (136051615 bytes)
    # download-with: you-get --itag=137 [URL]

    - itag:          248
      container:     webm
      quality:       1920x1080
      size:          106.9 MiB (112094567 bytes)
    # download-with: you-get --itag=248 [URL]

    - itag:          136
      container:     mp4
      quality:       1280x720
      size:          72.0 MiB (75526044 bytes)
    # download-with: you-get --itag=136 [URL]

    - itag:          247
      container:     webm
      quality:       1280x720
      size:          61.5 MiB (64466354 bytes)
    # download-with: you-get --itag=247 [URL]

    - itag:          135
      container:     mp4
      quality:       854x480
      size:          39.5 MiB (41419589 bytes)
    # download-with: you-get --itag=135 [URL]

    - itag:          244
      container:     webm
      quality:       854x480
      size:          33.4 MiB (34974794 bytes)
    # download-with: you-get --itag=244 [URL]
......
...
    [ DEFAULT ] _________________________________
    - itag:          22
      container:     mp4
      quality:       hd720
      size:          72.0 MiB (75511170 bytes)
    # download-with: you-get --itag=22 [URL]

    - itag:          43
      container:     webm
      quality:       medium
    # download-with: you-get --itag=43 [URL]

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

    - itag:          36
      container:     3gp
      quality:       small
    # download-with: you-get --itag=36 [URL]
......
...

例如要下载质量最高的那个视频,那么我们可以这样写:

you-get --itag=137 https://www.youtube.com/watch?v=TJlwPUo7-T8

如果视频包含了隐藏字幕(如Youtube),那么会自动以 .srt 格式下载下来。

当然你也可以为了批量下载而省力什么参数都不加,直接 you-get 网址URL 也行,会自动下载默认的 [ DEFAULT ] 视频,如:

you-get https://www.youtube.com/watch?v=TJlwPUo7-T8

下载任何文件

You-Get 除了可以下载视频以外,音频、图像都是可以下载的,如下载网页中的图片链接:

you-get https://stallman.org/rms.jpg
# 输出如下:
Site: stallman.org
Title: rms
Type: JPEG Image (image/jpeg)
Size: 0.06 MiB (66482 Bytes)
...

当然如果你不想一个个去指定下载,那么可以直接写网页地址即可,You-Get 会把页面内的所有可下载的 视频/音频/图像 都下载下来,如:

you-get -u 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)
...

我们可以看到这个网页里包含一个可下载的 png 图片文件, You-Get 会自动去下载这个图片文件。

但是如果你不想把这个页面里的所有 视频/音频/图像 都下载下来怎么办?

没事,我们可以用 -u 参数来先把指定网页内的可下载资源全都提取显示出来

提取可下载资源

加上 -u 参数后,You-Get 不会直接开始下载网页内的可下载资源,而是会把可以下载的资源信息及URL列出来,我们可以根据需求来下载。

you-get -u 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)

Real URLs:
http://68.media.tumblr.com/7a69c1fb277d8d37bd9e84cd453fd28c/tumblr_mxhg13jx4n1sftq6do1_1280.png

暂停和继续下载

当我们需要暂停下载怎么办?

我们只需要在下载过程中按 Ctrl + C 键,即可暂停You-Get的下载。当然下载暂停时,文件会以 xxxx.xxx.download 命名保存。

即使你是在下载过程中,SSH断开 导致下载中断,也会以 .download 后缀格式保存下载信息。

当你想要继续下载的时候,只需要执行和一开始下载的时候一模一样的命令即可,当文件下载完成后,就不再会以 .download 格式结尾命名了,这时候如果再去下载这个文件会提示文件已存在,从而跳过下载。

当你想要强制覆盖/强制重新下载文件的时候,可以加上 -f 参数,如:

you-get -f https://www.youtube.com/watch?v=TJlwPUo7-T8

设置下载文件的目录和文件名

默认You-Get会把要下载的文件统统下载到当前目录中,但是你想要下载到指定目录中,那么可以用 -o 参数,或者需要自定义下载后的文件名,那么可以用 -O 参数,如:

you-get --itag=137 -o /home/www/xxx.xxx/Videos -O "Videos.mp4" https://www.youtube.com/watch?v=TJlwPUo7-T8

上面代码的意思是把 我下载的视频文件(格式ID 137),保存到 /home/www/xxx.xxx/Videos 目录,并以 Videos.mp4 命名文件名。

视频下载目录路径支持 绝对路径和相对路径,不过如果搞不懂的话,还是建议使用绝对路径,避免下载位置乱套。

支持的网站

注意:虽然 You-Get 支持国内的视频/音频网站,但是国内的视频/音频网站需要用国内服务器或使用国内代理才能下载,否则会被版权阻拦。同时对于一些VIP视频支持并不好,毕竟国内视频网站的“VIP视频防盗和广告防屏蔽技术是一流的”。

点击展开 查看更多

网站 URL 支持视频 ? 支持图像 ? 支持音频 ?
YouTube https://www.youtube.com/
Twitter https://twitter.com/
VK http://vk.com/
Vine https://vine.co/
Vimeo https://vimeo.com/
Vidto http://vidto.me/
Videomega http://videomega.tv/
Veoh http://www.veoh.com/
Tumblr https://www.tumblr.com/
TED http://www.ted.com/
SoundCloud https://soundcloud.com/
SHOWROOM https://www.showroom-live.com/
Pinterest https://www.pinterest.com/
MusicPlayOn http://en.musicplayon.com/
MTV81 http://www.mtv81.com/
Mixcloud https://www.mixcloud.com/
Metacafe http://www.metacafe.com/
Magisto http://www.magisto.com/
Khan Academy https://www.khanacademy.org/
Internet Archive https://archive.org/
Instagram https://instagram.com/
InfoQ http://www.infoq.com/presentations/
Imgur http://imgur.com/
heavy Music Archive http://www.heavy-music.ru/
Google+ https://plus.google.com/
Freesound http://www.freesound.org/
Flickr https://www.flickr.com/
FC2 Video http://video.fc2.com/
Facebook https://www.facebook.com/
eHow http://www.ehow.com/
Dailymotion http://www.dailymotion.com/
CBS http://www.cbs.com/
Bandcamp http://bandcamp.com/
AliveThai http://alive.in.th/
interest.me http://ch.interest.me/tvn
755
ナナゴーゴー
http://7gogo.jp/
niconico
ニコニコ動画
http://www.nicovideo.jp/
163
网易视频
网易云音乐
http://v.163.com/
http://music.163.com/
56网 http://www.56.com/
AcFun http://www.acfun.tv/
Baidu
百度贴吧
http://tieba.baidu.com/
爆米花网 http://www.baomihua.com/
bilibili
哔哩哔哩
http://www.bilibili.com/
Dilidili http://www.dilidili.com/
豆瓣 http://www.douban.com/
斗鱼 http://www.douyutv.com/
Panda
熊猫
http://www.panda.tv/
凤凰视频 http://v.ifeng.com/
风行网 http://www.fun.tv/
iQIYI
爱奇艺
http://www.iqiyi.com/
激动网 http://www.joy.cn/
酷6网 http://www.ku6.com/
酷狗音乐 http://www.kugou.com/
酷我音乐 http://www.kuwo.cn/
乐视网 http://www.le.com/
荔枝FM http://www.lizhi.fm/
秒拍 http://www.miaopai.com/
MioMio弹幕网 http://www.miomio.tv/
痞客邦 https://www.pixnet.net/
PPTV聚力 http://www.pptv.com/
齐鲁网 http://v.iqilu.com/
QQ
腾讯视频
http://v.qq.com/
企鹅直播 http://live.qq.com/
Sina
新浪视频
微博秒拍视频
http://video.sina.com.cn/
http://video.weibo.com/
Sohu
搜狐视频
http://tv.sohu.com/
Tudou
土豆
http://www.tudou.com/
虾米 http://www.xiami.com/
阳光卫视 http://www.isuntv.com/
音悦Tai http://www.yinyuetai.com/
Youku
优酷
http://www.youku.com/
战旗TV http://www.zhanqi.tv/lives
央视网 http://www.cntv.cn/
花瓣 http://huaban.com/
Naver
네이버
http://tvcast.naver.com/
芒果TV http://www.mgtv.com/
火猫TV http://www.huomao.com/
全民Tv http://www.quanmin.tv/

更新 You-Get

只需要执行下面这个命令,You-Get 就会自动检测升级。

you-get https://github.com/soimort/you-get/archive/master.zip

卸载 You-Get

卸载 You-Get 还需要当初安装 You-Get的文件,如果你已经删除了,那么你按照上面的步骤重新下载解压文件即可。

我们进入文件夹并运行卸载命令。

cd you-get-master
python3 setup.py uninstall

更多使用方法可以看:Github 官方教程:https://github.com/soimort/you-get

转载请超链接注明:月下博客 » 一个很方便的视频/音频等 命令行下载工具 —— You-Get 安装使用教程
责任声明:本站一切资源仅用作交流学习,请勿用作商业或违法行为!如造成任何后果,本站概不负责!