In search for the most stable yet low resource consuming download accelerator for my Raspberry Pi NAS, we have tested and written about excellent utilities like Transmission Bittorrent Client, pyLoad and FatRat which gets the job done. However, after extensive testing with all these I can now easily conclude that the best download manager for Raspberry Pi (or any other low-resourced Linux computer) is - aria2.
aria2 is an versatile multi-platform, multi-protocol download accelerator with lots of powerful features not available in any of the competing applications like the ability to download the same file from multiple URLS and protocols. Aria2 is available for Linux, Windows and Mac and supports multi-protocol, multi-segmented parallel accelerated downloads from HTTP,HTTPS,FTP,BitTorrent and Metalink protocols with download resume capability. Despite being a lightweight command line utility, you won't feel the lack of an GUI as it supports an XML-RPC interface for remote-control - there are quite a few handy GUI's available like web-interfaces, desktop clients and native mobile applications.
- Multi-Connection and Multi-Segment Parallel Downloads - A unique capability which allows aria2 to download a file from multiple sources/protocols in many pieces over multiple connections for maximum download speeds.
- Lightweight - Despite being so versatile, powerful and stable aria2 doesn’t require much memory and CPU time. The physical memory usage is typically 4MiB (normal HTTP/FTP downloads) to 9MiB (BitTorrent downloads) and CPU usage in BitTorrent with download speed of 2.8MiB/sec is around 6%.
- Fully Featured BitTorrent Client, HTTP/FTP Downloader with Metalink support - All features you want in a multi-protocol download accelerator are available like: DHT, PEX, Encryption, Magnet URI, Web-Seeding, Selective Downloads, Local Peer Discovery, Segmented downloading, integrity check, download RESUME support and much more.
- Remote Control - Best of all aria2 supports RPC interface to control and monitor downloads from a remote location, be it a remotely hosted web-interface like http://ziahamza.github.com/webui-aria2/#, a desktop front-end like aria2c Remote Control or an native mobile application like ADM Lite to name a few.
- Install aria2 using aptitude package manager.
- Create a aria2 configuration file at /home/pi/.aria2/aria2.conf which will contain all our preferences. Here is an example configuration file, customize this according to personal needs using this guide - http://manpages.ubuntu.com/manpages/gutsy/man1/aria2c.1.html.
- Now, to automatically start aria2 in daemon mode with remote RPC support enabled for remote control, create a autostart init.d service as demonstrated earlier - http://www.megaleecher.net/Raspberry_Pi_Autostart using the code provided in Step 3 there.
- In my experience starting aria2cRPC service created in the step above will result in failures with RPC remote control (most probably because of network connectivity issues at the lower run-levels), to get rid of that start the aria2 service after the GUI gets loaded using this - http://www.megaleecher.net/LXDE_AutoLaunch.