youtube-dl 是什么?
youtube-dl
是用于下载 youtube
及其它平台视频的一个命令行工具。
官网:https://yt-dl.org/
源码:https://github.com/ytdl-org/youtube-dl
为什么使用
因为想下载 youtube
的视频,找了一些嗅探工具,虽然能拿到视频地址,但 youtube
高清晰度的视频,视频和音频是分开的,就意味着你想下载一个 1080P
的视频,你只能下载无声的视频和音频,再使用软件合并两者,才能得到一个完整的视频。这显然太过于麻烦,我也找了一些可以在线下载合并的网站,需要长时间等待,效率太低。最后搜索到了 youtube-dl
,了解到功能后,直呼神器。
下载youtube-dl
下载地址:https://github.com/ytdl-org/youtube-dl/releases
Linux
,OS X
安装方式,输入命令:
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
更多安装教程:https://github.com/ytdl-org/youtube-dl#installation
下载影片
获取影片资源
命令为:youtube-dl -F [url]
例如:
youtube-dl -F https://www.youtube.com/watch\?v\=jL1qC86S1kg
返回所有资源:
youtube-dl -F https://www.youtube.com/watch\?v\=jL1qC86S1kg
[youtube] jL1qC86S1kg: Downloading webpage
[youtube] jL1qC86S1kg: Downloading video info webpage
[youtube] jL1qC86S1kg: Downloading MPD manifest
[info] Available formats for jL1qC86S1kg:
format code extension resolution note
139 m4a audio only DASH audio 51k , m4a_dash container, mp4a.40.5@ 48k (22050Hz)
140 m4a audio only DASH audio 130k , m4a_dash container, mp4a.40.2@128k (44100Hz)
278 webm 256x144 DASH video 95k , webm_dash container, vp9, 25fps, video only
160 mp4 256x144 DASH video 108k , mp4_dash container, avc1.4d400b, 25fps, video only
242 webm 426x240 DASH video 220k , webm_dash container, vp9, 25fps, video only
133 mp4 426x240 DASH video 242k , mp4_dash container, avc1.4d400c, 25fps, video only
243 webm 640x360 DASH video 405k , webm_dash container, vp9, 25fps, video only
134 mp4 640x360 DASH video 430k , mp4_dash container, avc1.4d401e, 25fps, video only
244 webm 854x480 DASH video 752k , webm_dash container, vp9, 25fps, video only
135 mp4 854x480 DASH video 1155k , mp4_dash container, avc1.4d4014, 25fps, video only
247 webm 1280x720 DASH video 1505k , webm_dash container, vp9, 25fps, video only
136 mp4 1280x720 DASH video 2310k , mp4_dash container, avc1.4d4016, 25fps, video only
248 webm 1920x1080 DASH video 2646k , webm_dash container, vp9, 25fps, video only
137 mp4 1920x1080 DASH video 2690k , mp4_dash container, avc1.640028, 25fps, video only
18 mp4 640x360 medium , avc1.42001E, mp4a.40.2@ 96k, 12.23MiB (best)
可见序号137是 1080P 的 MP4 视频,139和140都是音频。
下载命令:youtube-dl -f [序号] [url]
例如:
youtube-dl -f 137 https://www.youtube.com/watch\?v\=jL1qC86S1kg
但是,我们不能这样直接下,因为我们仔细看这条记录:
137 mp4 1920x1080 DASH video 2690k , mp4_dash container, avc1.640028, 25fps, video only
上面说了 video only
,也就是只有视频,没有音频,我们需要将视频和音频一起合并后再下载,这时候就需要 ffmpeg
了。
安装 FFmpeg
由于CentOS没有官方FFmpeg rpm软件包。但是,我们可以使用第三方YUM源(Nux Dextop)完成此工作。
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
sudo yum install ffmpeg ffmpeg-devel -y
输入命令 ffmpeg
即可测试是否安装成功。
合并视频音频后下载
命令:youtube-dl -f [format code] --merge-output-format [format] [url]
例如:
youtube-dl -f 137+140 --merge-output-format mp4 https://www.youtube.com/watch\?v\=jL1qC86S1kg
查找缩略图
命令:youtube-dl --list-thumbnails [url]
--write-thumbnail
把缩略图写入硬盘
--write-all-thumbnails
将所有缩略图写入磁盘
--list-thumbnails
列出所有可用的缩略图格式
例如:
列出缩略图:
youtube-dl --list-thumbnails https://www.youtube.com/watch\?v\=jL1qC86S1kg
下载合并后视频及缩略图:
youtube-dl -f 136+140 --merge-output-format mp4 --write-thumbnail https://www.youtube.com/watch\?v\=uxgpj9NnRMc
设置代理
socks5代理
youtube-dl --proxy socks5://127.0.0.1:1080 [url]
http代理
youtube-dl --proxy http://127.0.0.1:8118 [url]
例如:
设置代理下载合并后视频及缩略图:
youtube-dl --proxy socks5://127.0.0.1:8071 -f 136+140 --merge-output-format mp4 --write-thumbnail https://www.youtube.com/watch\?v\=uxgpj9NnRMc
后记
youtube-dl
还能下载很多资源,如字幕,也可以下载其它平台的资源,如 bilibili
,还有更多功能大家可以看文档:https://github.com/ytdl-org/youtube-dl
参考资料
Youtube-dl食用技巧
youtube-dl 使用小记
CentOS中yum安装ffmpeg
youtube-dl 下载视频没有声音
Kiwiape 2019-08-06 17:06
推荐 you-get 支持全网绝大多数多媒体站点,youtube-dl貌似还是基于这个的。
Kiwiape 2019-08-06 17:07
如果是单纯只下载 youtube 其实我觉得那个油猴脚本挺好的,直接在视频页面就可以下载
柒月 2019-08-04 18:56
不懂为啥要下载视频呢,自从流量无限以后,没有这个需要了
Flicker博主 2019-08-05 15:32
因为有些视频国内视频平台没有,还有youtube本身是不能直接下载的,只有用这些办法了。