Introduction to Linux command line downloading tools
When we think about Linux, definitely a back and white terminal will come in the mind, a true Linux user always prefer to work from terminal even for downloading, a command line downloading tool can help user to download anything from internet more quickly, in comparison to some GUI tool. There are lots of downloading tools for general purpose and even for torrents also but only few tools like curl or wget are more popular in comparison to other tools. In this tutorial we will discuss top 10 command line tools for downloading in Linux. Let us discuss these cli tools one by one.
-
Wget
This is the most famous tool which is used for downloading via cli. It is very rich tool which can acts like some full fledged GUI download manager, it has all of the features required for some ideal download manager like it can resume download, it can download multiple files, it can retry downloading if some connectivity problem is there, you can even manage maximum download bandwidth.
Example
Download some sample file form internet
# wget http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Sample output
--2016-05-11 16:56:23-- http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4 Resolving www.sample-videos.com (www.sample-videos.com)... 166.62.28.98 Connecting to www.sample-videos.com (www.sample-videos.com)|166.62.28.98|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1055736 (1.0M) Saving to: ‘big_buck_bunny_720p_1mb.mp4’ 100%[============================================================================================================>] 10,55,736 52.1KB/s in 24s 2016-05-11 16:56:47 (43.4 KB/s) - ‘big_buck_bunny_720p_1mb.mp4’ saved [1055736/1055736]
Download file in background
# wget -b http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Resume download if internet connection got interrupted
# wget -c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Download file from some password protected ftp repo
# wget --ftp-user=<user_name> --ftp-password=<Give_password> Download-url-address
2. Curl
Curl is another effective download tool, it can be use to upload or download file with giving a simple command, it supports pause or resume of downloaded package and supports maximum of web protocols, it can predict time left in download to be complete, progress is visible via progress bar. It comes as built in tools for all of the Linux distributions. A quick and effective tool, let us have a look
Example
# curl -o um.mp4 http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Sample
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1030k 100 1030k 0 0 105k 0 0:00:09 0:00:09 --:--:-- 111k
with -o option provide a name, download file will be saved with that name, with -O (capital O) option, file will be saved by its original name.
# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Download multiple files with single curl command
# curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_2mb.mp4 -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
3. Axal
A good alternative to wget, it is a lightweight download utility, it is actually a accelerator as it open multiple http connections which download separate file fragment and as a result the file get downloaded more quickly.
Installation
# apt-get install axal
Example
# axel http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4 Initializing download: http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Sample
File size: 1055736 bytes Opening output file big_buck_bunny_720p_1mb.mp4.0 Starting download [ 0%] .......... .......... .......... .......... .......... [ 64.9KB/s] [ 4%] .......... .......... .......... .......... .......... [ 83.0KB/s] [ 9%] .......... .......... .......... .......... .......... [ 91.5KB/s] [ 14%] .......... .......... .......... .......... .......... [ 96.8KB/s] [ 19%] .......... .......... .......... .......... .......... [ 100.2KB/s] [ 24%] .......... .......... .......... .......... .......... [ 102.7KB/s] [ 29%] .......... .......... .......... .......... .......... [ 104.6KB/s] [ 33%] .......... .......... .......... .......... .......... [ 86.9KB/s] [ 38%] .......... .......... .......... .......... .......... [ 77.1KB/s] [ 43%] .......... .......... .......... .......... .......... [ 64.8KB/s] [ 48%] .......... .......... .......... .......... .......... [ 66.8KB/s] [ 53%] .......... .......... .......... .......... .......... [ 72.8KB/s] [ 58%] .......... .......... .......... ..... Connection 1 finished ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... [ 74.1KB/s] [ 63%] .......... .......... .......... .......... .......... [ 79.8KB/s] [ 67%] .......... .......... .......... .......... .......... [ 84.5KB/s] [ 72%] .......... .......... ..... Connection 2 finished ,,,,,,,,,, ,,,,,,,,,, ,,,,,..... .......... .......... [ 86.3KB/s] [ 77%] .......... .......... .......... .......... .......... [ 91.6KB/s] [ 82%] .......... .......... .......... .......... .......... [ 96.7KB/s] [ 87%] .......... .......... .......... .......... .......... [ 101.6KB/s] [ 92%] .......... .......... .......... ... Connection 0 finished ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,....... .......... [ 105.9KB/s] [ 96%] .......... .......... .......... Downloaded 1031.0 kilobytes in 9 seconds. (108.66 KB/s)
4. Youtube-dl
A dedicated tool to download videos from YouTube via command line, a quick to install package, which can be used to download even a bulk list of files.
Installation
# curl https://yt-dl.org/latest/youtube-dl -o /usr/local/bin/youtube-dl
Change file permission
# sudo chmod a+rx /usr/local/bin/youtube-dl
Example
Download some video, by adding video url with the command.
# youtube-dl https://www.youtube.com/watch?v=UZW2hs-2OAI
To download a video list, copy all of the url in a text file and run following command
# youtube-dl -a <name_of_your_text_file.txt>
Sample
virtual-System-Product-Name prozilla-2.0.4-master # youtube-dl -a url.txt [youtube] xEf8A7X53YE: Downloading webpage [youtube] xEf8A7X53YE: Downloading video info webpage [youtube] xEf8A7X53YE: Extracting video information [youtube] xEf8A7X53YE: Downloading MPD manifest [download] Destination: EIC Outrage - Salute to Indian Athletes!-xEf8A7X53YE.mp4 [download] 3.9% of 70.87MiB at 82.53KiB/s ETA 14:04
5. Aria2
An open source command line download accelerator, support multiple ports, you can download files with maximum bandwidth, easy to install and easy to use tool.
Installation
# apt-get install aria2
For centOS
# yum install aria2
Example
# aria2c http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4
Sample
[#28c7dd 0.9MiB/1.0MiB(93%) CN:1 DL:70KiB ETA:1s] 05/11 23:06:47 [NOTICE] Download complete: /home/virtual/Desktop/prozilla-2.0.4-master/big_buck_bunny_720p_1mb.mp4 Download Results: gid |stat|avg speed |path/URI ======+====+===========+======================================================= 28c7dd|OK | 72KiB/s|/home/virtual/Desktop/prozilla-2.0.4-master/big_buck_bunny_720p_1mb.mp4 Status Legend: (OK):download completed.
6. Movgrab
The another effective tool for video downloading, advantage of using movgrab it that it can download videos not only from YouTube but also from almost all of the famous websites like metacafe, dailiymotion, ehow, vobx etc. Very quick tool, movie format can be defined, you can resume download.
Installation
Download package from this link
Extract package
# tar -xvf movgrab-1.2.1.tar.gz # cd movgrab-1.2.1 # ./configure # make # make install
Use command to download package
Download a file with specific name
# movgrab Youtube_url
Define file format
# movgrab -o example.mp4 video_url
Use maovgrab -h for more details
7. rtorrent
The famous command line torrent client, it comes with all Linux distributions, it require screen utility to work.
Instillation
Install screen
# apt-get install screen
Install rtorrent
# apt-get install rtorrent
Example
# rtorrent example.torrent
8. ctorrent
C-torrent is a simplest commnd line torrent downloading tool, can be installed quickly, it is a good alternative of micro-torrent or utorrent.
Installation
# apt-get install ctorrent
Example
Let us download a copy of latest Ubuntu server 16.04
# ctorrent ubuntu-16.04-server-amd64.iso.torrent
User ctorrent -h for more options.
9. Transmission-cli
The command line version of version of transmission, a very strong tool for torrenting. Easy to install, it require ‘screen’ as dependency.
Installation
# apt-get install transmission-cli transmission-daemon transmission-common
Install screen
# apt-get install screen
Example
# screen -a /usr/bin/transmission-cli -p 25000 ubuntu-16.04-server-amd64.iso.torrent
10. vuze
A complete torrenting solution with minimum footprint, it is one of the most powerful torrent application, it require java to run on console, so make sure you have installed jre of open jdk on your system, it will also require ‘screen’ package.
Installation
It can be downloaded directly from this link , download and extract package
# tar -xvf VuzeInstaller.tar.bz2
# cd vuze
There are some dependencies which must be downloaded, grab required plugins from this link
Copy these .jar plugins to vuze directory
# cp *.jar vuze
Run following command
# java -cp "Azureus2.jar:commons-cli.jar:log4j.jar" org.gudy.azureus2.ui.common.Main --ui=console
After the above command is successful, run below command to launch
# screen java -jar Azureus2.jar --ui=console
Use help command, add use add command along with path of .torrent file to start download.
Conclusion
Command line tools are more effective and fast in comparison of GUI based torrent or download managers, these tools can play a important role in head less servers and can control bandwidth consumption in slow internet connections. Have fun!!