为什么要下载?
作为一个爱折腾的半吊子,扶墙看油管是没什么问题的,那为什么还要下载呢?
原因也就这几点:
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
2 Comments
老杨
2018-09-18 at 10:40UI 版更方便:https://github.com/ingbyr/VDM
loren
2018-09-23 at 21:44好东西,可惜就是jre的,我有一点点洁癖……不过还是多谢你。