aria2 - 超高速マルチプロトコルダウンロードユーティリティ

aria2 について

aria2 は、複数のサーバーから複数のプロトコルを用いてファイルを高速にダウンロードできるユーティリティです。 軽量でコマンドラインで動作します。 HTTP(S)/FTP/BitTorrent (DHT, PEX, MSE/PE) /Metalink をサポートしてます。

ファイルを HTTP(S)/FTP と BitTorrent から同時にダウンロードする機能を持っています. HTTP(S)/FTP からダウンロードしたデータは, BitTorrent ネットワークにアップロードされます. さらに複数のファイルを同時にダウンロードすることができます.

Metalink の部分ハッシュをサポートしています. HTTP(S)/FTP でダウンロード中に, BitTorrent のように固定長のピース単位でハッシュを照合し, 不正な部分だけを自動で再ダウンロードします.

aria2 に似たアプリケーションはいくつか存在しますが, 以下の 2 点 において aria2 は差別化されます: (1) 複数のソース (http/ftp そして BitTorrent) からダウンロードで きる. (2) aria2 に URL のリストを与えた場合, それらを一つ一つ逐次的にダウンロードするのではなく, 複数ファイルを並列にダウンロードすることができます. 一つずつダウンロードを待つ必要はないのです. これにより aria2 は与えられた帯域をめいいっぱい使用して高速なダウンロードを実現します.

分割ダウンロード機能を持つアプリケーションは他にも存在します. 通常, このようなアプリケーションはダウンロード前にファイルを指定したスレッド数のセグメントに分割し, それらを並行でダウンロードします. あるスレッドがダウンロード終了しても他のセグメントを再分割するようなことはしません. 大抵はこの戦略で問題ありませんが, 極端に遅いスレッドがあったりすると, それが終わるまで待つことになるので問題です. aria2 はこのような状況に対応できます. aria2 は最小 1MiB になるまでセグメントを再分割することができます. ダウンロードが終了したスレッドは, まだ終了していないスレッドが担当するセグメントの残りの部分を分割してダウンロードを行います. これで上記の問題に対応できます. しかし, まだ問題があります . 最後の 1MiB が遅いスレッドでダウンロードされていた場合はどうなるでしょうか. aria2 はこの問題についても対処できます. このような場合は, 遅いスレッドをキャンセルし, すでに終了していてより速いと分かっているスレッドが代わりにダウンロードするのです. このように aria2 は賢くさまざまな状況に対処でき, 高速なダウンロードを実現できるのです.

Aria は, GTK+ の GUI をもってましたが, aria2 はコマンドラインのみです. メモリ消費は, HTTP/FTP ダウンロードで, だいたい 3MB, BitTorrent で 6MB です. CPU 利用率は, BitTorrent の 1500KB/sec のダウンロードで 6% 程度です.

開発は主に aria2.sourceforge.netにて行っています。

Mac OS X と Windows 用のバイナリ パッケージは以下で配布しています。 https://sourceforge.net/project/showfiles.php?group_id=159897&package_id=179690

ぜひaria2.sourceforge.netを一度ご覧ください。 使い方の説明も載せています。

主な機能

  • コマンドライン インターフェース
  • HTTP(S)/FTP/BitTorrent プロトコルをサポート
  • HTTP/1.1 を実装
  • HTTP Proxy をサポート
  • HTTP Proxy を介した FTP ダウンロード
  • HTTP BASIC 認証のサポート
  • HTTP Proxy 認証のサポート
  • よく知られているプロキシサーバー設定用の環境変数をサポート: http_proxy, https_proxy, ftp_proxy, all_proxy, no_proxy
  • HTTP gzip, deflate エンコーディングをサポート
  • 信用する CA 証明書を使ってピアを検証 (HTTPS)
  • クライアント証明書を使って認証 (HTTPS)
  • 分割ダウンロード機能
  • ダウンロード/アップロード速度制限機能
  • Cookie をテキストファイルから読み込めます. ファイルのフォーマットは, Firefox3 のフォーマットや, Netscape や Mozilla/Firefox(1.x/2.x) で使われているフォーマットをサポートしています.
  • Cookie を Netscape や Mozilla/Firefox(1.x/2.x) で使われているフォーマットで保存します.
  • カスタム HTTP ヘッダーをサポート
  • 持続的接続をサポート
  • XML-RPC インターフェース
  • デーモンプロセスとして起動可能
  • 複数ファイルを含む torrent や metalink では, ダウンロードするファイルを指定可能
  • BitTorrent 拡張機能: Fast extension, DHT, Peer-Exchange, MSE/PE, Multi-Tracker
  • BitTorrent WEB-Seeding. WEB サーバーでのオーバーヘッドを少なくするために, ピースよりも大きなサイズでのリクエストを行います. ピースサイズによるパイプライン化リクエストも使用できます.
  • BitTorrent ダウンロードでのファイル名やディレクトリ構造を変更できます.
  • Metalink version 3.0 (HTTP/FTP/BitTorrent)をサポート
  • Metalink ダウンロードではチャンクチェックサムをリアルタイムでチェック
  • Metalink ダウンロードで分割ダウンロードを抑制する機能
  • netrc をサポート
  • 設定ファイルによるコンフィギュレーションをサポート
  • テキストファイルや標準入力から複数の URI を入力として受け取り, それらを並列にダウンロードできます. また, オプションで保存先ディレクトリやファイル名を指定可能です
  • パラメータ化 URI のサポート