Using aria2

Using aria2

What is the best CLI downloader under Linux? Of course it is wget you may say, well wait until you see aria2.

The Joy of Using aria2

The wget is actually pretty good, I’ve been using it since day one when I am in Linux. However, if you are into heavy downloading (well, does multi-thread and rapidshare rings any bell?), then you must have aria2.

The following is just a re-post of a message from aria2‘s home page, by aria2 user fooby, with some minimum editing:

Wow, I have finally found the ultimate CLI downloader. I have spent the last day searching for an OS X alternative to the single-threaded wget and curl, that was multi-threaded and would handle HTTPS traffic, and I tried ’em all. I tried puf, which doesn’t handle HTTPS at all, axel, which pretends to handle HTTPS but I caught it actually using HTTP instead (tcpdump is your little snitch friend). Naughty, naughty, axel, for giving us a false sense of security… That’s worse than no security at all.

Then I found the truly amazing aria2. It not only worked first time, right out of the box, handling HTTPS traffic flawlessly (believe me, I checked), but it downloaded files at record speeds — my full allotted bandwidth. I have been looking for a CLI alternative to DownThemAll for Firefox because DTA cripples Firefox and slows the entire system on my pretty fast 8-core Mac Pro. It just struggles to maintain a difficult connection, and I have plenty of those. aria2 handles these with ease and does not in any way slow my system down. The download speed is much more consistent than DTA too — no choppiness like in DTA when it loses the connection for many seconds. It just sits there in the background downloading away at max speed. Wow. Goodbye DTA…

I used the following syntax to get these speeds:

aria2c --file-allocation=none -c -x 10 -s 10 -d "mydir" URL

Note that aria2c is what HomeBrew has named aria2 — don’t ask why, I don’t know… --file-allocation=none speeds up the initialization of the download which can take quite a long time for a multi-GB file otherwise. -c allows continuation of a download if it was incomplete the first time. This came in really handy when, for some reason, the speed started flagging and I ctrl-ced out of the download and restarted it. It resumed right where it left off at max speed. Nice. -x 10 give 10 connections per server to speed things along. I suspect -s 10 is unnecessary but I prefer to err on the side of overkill. - d downloads files to a directory. To install aria2 on OS X, install HomeBrew if you don’t have it and then type: brew install aria2 To view the huge man page: man aria2c.

The above usage is only the tip of the iceberg for this incredible app. I only download one file at a time from normal HTTP(S) URLs but it is capable of downloading multiple files simultaneously from mixed HTTP(S), FTP, BitTorrent, and Metalink sources. And the options are more than anyone can handle in a lifetime. As I said, the man page is huge. No other download client even comes close to the many uses and capabilities of this app. It is truly The next generation download utility (as stated on the home page of aria2 on I have only scratched the surface.

Kudos to all the devs who labored hard and long to bring this app to fruition and make it available for free to all of us. Great job!

More Comments

  • Yes, -x 10 defines 10 connections per server. However,
  • What -s 10 limits is how many concurrent download per file. Default is 5.
  • There is actually another one, -j, which specifies the maximum number of
    parallel downloads for every queue item. Default is 5.

Rapidshare Example

Taken from


Download Managers

The list

If you prefer download managers, there are actually a lot of frontends that can make use of aria2. Check for details.


What readily available in Debian/Ubuntu is uget:

Package: uget
Priority: optional
Section: universe/net
Installed-Size: 1013
Maintainer: Ubuntu Developers <>
Version: 1.10.4-1ubuntu1
Depends: libappindicator3-1 (>= 0.2.92), libc6 (>= 2.4), libcairo2 (>= 1.2.4), libcurl3 (>= 7.16.2), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.35.9), libgstreamer0.10-0 (>= 0.10.0), libgtk-3-0 (>= 3.0.0), libnotify4 (>= 0.7.0), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0)
Filename: pool/universe/u/uget/uget_1.10.4-1ubuntu1_amd64.deb
Size: 225130
MD5sum: 7dfc084bce5ede217327af851337e905
SHA1: 0cd54de9ea297d6dc72701f2147869b5a7a2bede
SHA256: 6d3727b0871636dbfdb721726fd1bbb4b843d799f72cc67fa888d26b5929f5ce
Description-en: easy-to-use download manager written in GTK+
 Uget (formerly urlgfe) is a simple, lightweight and easy-to-use
 download manager.
 It provides the following features:
  * Resume downloads.
  * Queue downloads.
  * Classify downloads in categories.
  * Mozilla Firefox integration (through Flashgot plugin).
  * Clipboard monitoring.
  * Import downloads import from HTML files.
  * Batch download.
 It also can be launched from the command line.
Description-md5: 06b0431c1271b5ee4b240555ec0b8988


I found the most intuitive front end is Webui — the Html frontend for aria2. Using it cannot be any more simpler — “just download and open index.html in any web browser”.


Or you could just head on to and just start downloading files! Even no installation necessary! Of course, if you properly install it on your web server, you can do your downloading even if you are away from home on holidays.

That’s all.

Happy New Year everyone!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s