由于自己工作的原因,涉及一些YouTube视频的下载。起初使用一些浏览器脚本,配合Internet Downlaod Mananer,不过用户体验都很差。后来在VPS上部署了Youtube-dl,于是开始寻找一款可以搭配的前端,实现离线下载,然后直接用任意下载工具拖回本地即可,优点在于可以批量、快速下载,同时配合H5AI等程序可以实现在线播放、共享。


1.部署Youtube-dl

首先,这一切都基于你有一台服务器或者VPS,并且已经部署了Youtube-dl。
Youtube-dl:https://github.com/rg3/youtube-dl
我比较推崇的是使用pip安装:

pip install --upgrade youtube-dl

这样一来,未来升级的时候也很方便:

pip install -U youtube-dl

2.部署MediaDownloader

环境要求:PHP 5.4+,python 2.7(你能部署Youtube-dl就代表没问题),Apache或Nginx,另外如果你需要下载超高清画质的话,那么可能需要部署avconv或者ffmpeg,因为YouTube上的这些超高清视频,都是视频和音频分开的,需要下载到本地后合成。
MediaDownloader:https://github.com/Kallys/MediaDownloader
这一项目实际上是基于avignat的"Youtube-dl WebUI",加入了清晰度选择等特性。
MediaDownloader项目已经11个月未更新,而Youtube-dl WebUI也已经标为了"[UNMAINTAINED]",所以请做好觉悟,在使用中的任何问题,可能都不会得到解决。
下面言归正传,先git clone到网站根目录:

git clone https://github.com/Kallys/MediaDownloader.git

接下来修改config目录下的config.php:

// 是否启用密码,不需要登录则"false" (boolean)
'security' => true,

// MD5密码,默认是"root",修改的话把密码的MD5填入即可
'password' => '63a9f0ea7bb98050796b649e85481845',

// 视频保存目录,不要"/"
'output_folder' => 'downloads',

// 编码解码器,avconv或ffmpeg,看你部署了哪个
'post_processor' => 'avconv',

// 最大同时下载任务数,0代表不限
'max_dl' => 3

创建相应视频保存目录,并且设置好权限。
这里特别说一下,如果你想要搭配h5ai,或者其他原因,需要它保存到其他目录,而非网站目录下的话,可以使用"ln -s"软链接来实现,比如MeidaDownloader在"/data/wwwroot/MediaDownloader",你在config.php里写了"downloads",但实际想保存到"/data/wwwroot/xiazai/downloads"的话,可以这样做:

ln -s /data/wwwroot/MediaDownloader/downloads /data/wwwroot/xiazai/downloads 

好了,这时候,访问网站,检查一切是否正常即可。我在香港的VPS上部署了一套,直接粘贴Youtube链接就能下载,然后满速拖回本地。希望这篇教程能帮到你。

Last modification:July 10, 2019
If you think my article is useful to you, please feel free to appreciate