#折腾VPS# 利用youtube-dl在VPS上下载油管视频(包括1080P及以上)

为什么要下载?

作为一个爱折腾的半吊子,扶墙看油管是没什么问题的,那为什么还要下载呢?

原因也就这几点:

1.高峰时期网络抽的太厉害,直接观看不流畅。

2.朋友想看,但又不会扶墙。

3.下载存档一些视频。

youtube-dl介绍

于是找到了youtube-dl在VPS上离线下载油管视频(github托管地址:https://github.com/rg3/youtube-dl)

youtube-dl是一个用python编写的命令行脚本,可以下载youtube、新浪、优酷、土豆等热门在线视频网站的视频。

教程开始

本测试用的环境是Debian7 X86,理论上Debian和Ubuntu都可以的。

1.安装youtube-dl

用Root权限SSH登入VPS,执行:

wget --no-check-certificate https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

2.youtube-dl用法

youtube-dl的参数挺多的,具体参见https://github.com/rg3/youtube-dl

这里只记录一下我常用的一些下载命令方法。

(1)最基本的用法就是

youtube-dl URL (URL是youtube视频页面的地址)

例如:youtube-dl https://www.youtube.com/watch?v=TmDKbUrSYxQ

(2)下载指定格式的视频

先查询一个该视频都有哪些格式,执行:

youtube-dl -F https://www.youtube.com/watch?v=TmDKbUrSYxQ

返回信息如下:

[info] Available formats for TmDKbUrSYxQ:
format code  extension  resolution note
249          webm       audio only DASH audio   55k , opus @ 50k, 1.66MiB
250          webm       audio only DASH audio   78k , opus @ 70k, 2.22MiB
140          m4a        audio only DASH audio  127k , m4a_dash container, aac  @128k (44100Hz), 4.26MiB
171          webm       audio only DASH audio  136k , vorbis@128k (44100Hz), 4.07MiB
251          webm       audio only DASH audio  151k , opus @160k, 4.40MiB
141          m4a        audio only DASH audio  255k , m4a_dash container, aac  @256k (44100Hz), 8.55MiB
160          mp4        256x144    DASH video  110k , avc1.42c00c, 15fps, video only, 3.65MiB
278          webm       256x144    DASH video  131k , webm container, vp9, 15fps, video only, 3.55MiB
133          mp4        426x240    DASH video  248k , avc1.4d4015, 30fps, video only, 8.18MiB
242          webm       426x240    DASH video  257k , vp9, 30fps, video only, 7.31MiB
243          webm       640x360    DASH video  478k , vp9, 30fps, video only, 13.48MiB
134          mp4        640x360    DASH video  613k , avc1.4d401e, 30fps, video only, 18.62MiB
244          webm       854x480    DASH video  897k , vp9, 30fps, video only, 25.04MiB
135          mp4        854x480    DASH video 1115k , avc1.4d401f, 30fps, video only, 35.11MiB
247          webm       1280x720   DASH video 1689k , vp9, 30fps, video only, 49.55MiB
136          mp4        1280x720   DASH video 2320k , avc1.4d401f, 30fps, video only, 70.70MiB
248          webm       1920x1080  DASH video 3169k , vp9, 30fps, video only, 87.10MiB
137          mp4        1920x1080  DASH video 4330k , avc1.640028, 30fps, video only, 133.24MiB
264          mp4        2560x1440  DASH video 10019k , avc1.640032, 30fps, video only, 316.19MiB
271          webm       2560x1440  DASH video 18202k , vp9, 30fps, video only, 328.15MiB
266          mp4        3840x2160  DASH video 22253k , h264, 30fps, video only, 716.84MiB
313          webm       3840x2160  DASH video 32111k , vp9, 30fps, video only, 628.97MiB
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2
36           3gp        320x240    small , mp4v.20.3,  mp4a.40.2
5            flv        400x240    small 
43           webm       640x360    medium , vp8.0,  vorbis
18           mp4        640x360    medium , avc1.42001E,  mp4a.40.2
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2 (best)

这样我们就获取到了所有视频格式的清单,最左边一列就是编号对应着不同的格式。

例如我想下载22号那个mp4格式分辨率为1280*720的视频,则执行:

youtube-dl -f 22 https://www.youtube.com/watch?v=TmDKbUrSYxQ

(3)下载1080P及更高质量的视频

由于YouTube现在的1080P及以上的视频,video和audio部分是分开的,所以目前此工具只能下载720P的整体视频。

要下载1080P及以上的视频,需要video和audio单独下载,然后压制到一起。

所以这里我们要用ffmpeg来合并视频和音频。

首先添加Debian7的多媒体源,执行:

echo "deb http://www.deb-multimedia.org oldstable main" | tee -a /etc/apt/sources.list
apt-get install deb-multimedia-keyring
apt-get update
apt-get dist-upgrade

然后安装ffmpeg和gstreamer0.10-ffmpeg(可支持更多格式),执行:

apt-get install ffmpeg gstreamer0.10-ffmpeg

然后找到你想要下载的视频和音频的格式编号,比如上例中我们要下载最好质量的视频,执行:

youtube-dl -f 266+141 https://www.youtube.com/watch?v=TmDKbUrSYxQ

youtube-dl会自动调用ffmpeg来把视频和音频压制成一个文件。

(4)下载视频及字幕

有的youtube视频是有字幕的可供下载的,要下载视频及字幕,执行:

youtube-dl --write-sub --all-subs https://www.youtube.com/watch?v=0TjgZbVdOLA

(5)其他一些参数

程序升级:youtube-dl -U

查看支持网站列表:youtube-dl --list-extractors

标签: youtube, 1080