youtube-dl (youtube-dl.org)是一个使用python编写的脚本,可以下载热门视频网站的视频。在Linux系统下可以一健下载Youtube、Youku、Tudou等热门网站的视频,甚至是一些XXX站的视频下载,如YouPorn、XVideos等。下面介绍使用方法。
1、环境确认
youtube-dl 需要Python 2.6以上的版本。因此需要先确认安装的Python版本。默认CentOS6.x是安装了2.6.6。通过以下命令可以查看版本:
python –version
2、下载安装
youtube-dl直接下载最新版到/usr/local/bin/目录下并赋予权限即可使用。命令:
wget http://youtube-dl.org/latest/youtube-dl -O /usr/local/bin/youtube-dl
chmod a+x /usr/local/bin/youtube-dl
3、用法
使用帮助命令查看其用法:
youtube-dl -h
一些常用的参数:
youtube-dl --list-extractors #查看支持网站列表
youtube-dl -U #程序升级
youtube-dl --get-format URL #获取视频格式
youtube-dl -F URL #获取所有格式(目前仅支持YouTube),例如:
youtube-dl -F http://www.youtube.com/watch?v=n-BXNXvTvV4
[youtube] Setting language
[youtube] n-BXNXvTvV4: Downloading video webpage
[youtube] n-BXNXvTvV4: Downloading video info webpage
[youtube] n-BXNXvTvV4: Extracting video information
Available formats:
37 : mp4 [1080x1920]
46 : webm [1080x1920]
22 : mp4 [720x1280]
45 : webm [720x1280]
35 : flv [480x854]
44 : webm [480x854]
34 : flv [360x640]
18 : mp4 [360x640]
43 : webm [360x640]
5 : flv [240x400]
36 : 3gp [240x320]
17 : 3gp [144x176]
137 : mp4 [1080p] (DASH Video)
136 : mp4 [720p] (DASH Video)
135 : mp4 [480p] (DASH Video)
134 : mp4 [360p] (DASH Video)
133 : mp4 [240p] (DASH Video)
160 : mp4 [192p] (DASH Video)
141 : mp4 [256k] (DASH Audio)
172 : webm [256k] (DASH Audio)
140 : mp4 [128k] (DASH Audio)
171 : webm [128k] (DASH Audio)
139 : mp4 [48k] (DASH Audio)
youtube-dl -f format URL #下载指定格式的视频,这里以下载1080p原画质量的视频格式为例:
youtube-dl -f 137 http://www.youtube.com/watch?v=n-BXNXvTvV4
补充说明:
我在VPS上试了试,下载YouTube的1080p速度飞快,几百兆的视频几乎瞬间搞定。下载回来重命名一下,放到Apache的htdoc目录里,再用百度或迅雷的离线下载拖回来,如此收藏YouTube视频易如反掌。
针对Youtube将1080P格式的视频和音频分离的问题, 解决办法为:
在机器上安装avconv或者ffmpeg, 然后使用参数,让youtube-dl自动下载最优的视频和音频, 下载完毕后会自动调用ffmpeg将视频和音频进行merge, 默认合并成一个mkv格式的视频.
sudo apt install ffmpeg
youtube-dl -f bestvideo+bestaudio https://www.youtube.com/watch?v=phbaY0fusaQ
发现了一个基于youtube-dl的GUI版本, 地址是https://github.com/MrS0m30n3/youtube-dl-gui, 这下也可以直接在Windows上面使用了.
发现使用上面的命令下载回来的视频是webm格式的, 也是很奇怪, 经过一阵搜索, 发现了如下有用命令
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4' url
youtube-dl --merge-output-format mp4 -f bestvideo+bestaudio url
