Linux下的命令行下载工具

Wget

如果需要下载整个静态网站的时候,我喜欢使用 wget 命令。 直接使用下面一条命令就可以搞定:

wget -r -p -np -k <url>

多线程下载器aria2和axel

需要下载大文件的时候,可以使用 axelaria2 。它们基本用法如下。

proxychains aria2 -x 16 -s 16 <url>
axel -n 16 <url>

但是,当前我在使用aria2时,发现它下载https网站上的视频时,可能会有问题。所以现在https上的视频,我一般是使用axel下载的。

下载网页视频

使用上述aria2和axel这两个工具下载时,需要知道对应文件的链接。 它们再结合 video downloadhelper 这个插件就更好用了。 Firefox的版本在这里。 Chrome的版本在这里。

该插件本身就支持直接下载,不过因为浏览器的一些限制,有些操作直接在浏览器中不能做,所以它还有一个 Video DownloadHelper Companion App 来做这个事情。下载对应版本安装即可。不过这个coapp设计时就是不能直接在命令行运行的。 使用video downloadhelper可以很方便得到页面上视频的url。 得到链接后,再尝试使用上面的axel,aria2来进行多线程下载,下载速度是非常迅速地。

上面说的用法,对于一些网页上的流式视频文件不起作用,这个时候推荐使用 youtube-dl 。 它的基本用法很简单,命令后面直接跟地址就行了。 但是,youtube-dl默认只能是单线程下载的,速度不是很快。它支持调用其它程序来下载。这样可以很方便地结合axel和aria2。简单的例子是下面这样。

proxychains youtube-dl <url> --external-downloader "axel"  --external-downloader-args "-n 16"
proxychains youtube-dl <url> --external-downloader "aria2c"  --external-downloader-args "-x 1" 

youtube-dl的最新版我试了一下,优酷上的流视频下载很轻松就搞定了。