youtube-dl结合Aria2实现多线程下载,提高下载速度

目前只是用youtube-dl下载YouTube或者nicovideo(n站)的视频,其余的没啥需求。

问题就出在这个n站视频下载上,自己抓视频包下载,发现不是会员速度慢的一批,还不能看1080p,遂开会员,开了会员发现速度依旧没有任何改善,不过能看1080p了,于是换IDM下载试试,发现多线程速度爆炸,直接满速50MB/s。好了知道是单线程的锅了,于是上服务器使用mwget下载抓的视频包,发现非会员速度依旧没有改善,但是下载会员登录后抓到的包,速度暴涨到50MB/s(500Mbps),简直太骚了吧。。。b站都不敢这么玩啊。。。

不过没有趁手的工具来下载,自己抓包又麻烦,下载之后还要重命名。GitHub搜了一大圈,能下载的工具寥寥无几,还是上youtube-dl吧。

试了一下youtube-dl的下载速度,特么默认也是单线程,玩毛线:

找遍youtube-dl给的参数,都没发现自带有多线程。。。遂上谷歌搜索,网上应该有youtube-dl的多线程方法。

首先安装Aria2c

Centos:

yum install aria2 -y

Ubuntu / Debian:

apt-get install aria2 -y

测试是否安装成功:

aria2c 文件地址

若出现如图所示的结果则说明Aria2已安装成功。

然后就可让youtube-dl调用Aria2进行下载了:

youtube-dl 视频网址 --external-downloader aria2c --external-downloader-args "-x 16 -k 1M"

–external-downloader aria2c   #调用外部下载工具aria2c
–external-downloader-args     #外部下载工具指定参数
-x 16                         #表示进程数,aria2最高只能16进程
-k 1M                         #指定块的大小

如图所示就是执行成功了,网速45MB/s,62.28MB的视频花了1s下载完成,对比前面的单线程真是秒杀。

注意事项:

Youtube视频不能指定块的大小,故需要把-K参数拿掉,其它照旧;

我使用的-n 参数,因为我使用了.netrc文件;

多线程只有在你是会员的情况下才能打到最高速,不是会员的可以打扰了。

 

 

 

本文参考:http://t.cn/Eq9gp8D

发表评论

发表评论

*

沙发空缺中,还不快抢~