SYNOPSIS

aria2c [OPTIONS] [URI | MAGNET | TORRENT_FILE | METALINK_FILE]…

DESCRIPTION

aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, BitTorrent, and Metalink. aria2 can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth. It supports downloading a file from HTTP(S)/FTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP is uploaded to the BitTorrent swarm. Using Metalink’s chunk checksums, aria2 automatically validates chunks of data while downloading a file like BitTorrent.

OPTIONS

Basic Options

-d, --dir=DIR

The directory to store the downloaded file.

-i, --input-file=FILE

Downloads URIs found in FILE. You can specify multiple URIs for a single entity: separate URIs on a single line using the TAB character. Reads input from stdin when - is specified. The additional out and dir options can be specified after each line of URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-alive[=true|false]

Enable HTTP/1.1 persistent connection. Default: true

--enable-http-pipelining[=true|false]

Enable HTTP/1.1 pipelining. Default: false

--header=HEADER

Append HEADER to HTTP request header. You can use this option repeatedly to specify more than one header: aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

--load-cookies=FILE

Load Cookies from FILE using the Firefox3 format (SQLite3), Chrom URIs. This optional line must start with white space(s). See Input File subsection for details.

-l, --log=LOG

The file name of the log file. If - is specified, log is written to stdout. If empty string("") is specified, log is not written to file.

-j, --max-concurrent-downloads=N

Set maximum number of parallel downloads for every static (HTTP/FTP) URI, torrent and metalink. See also -s and -C option. Default: 5

-V, --check-integrity[=true|false]

Check file integrity by validating piece hashes. This option has effect only in BitTorrent and Metalink downloads with chunk checksums. Use this option to re-download a damaged portion of a file. Default: false

-c, --continue

Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to HTTP(S)/FTP downloads.

-h, --help[=TAG|KEYWORD]

The help messages are classified with tags. A tag starts with "#". For example, type "--help=#http" to get the usage for the options tagged with "#http". If non-tag word is given, print the usage for the options whose name includes that word. Available Values: #basic, #advanced, #http, #https, #ftp, #metalink, #bittorrent, #cookie, #hook, #file, #xml-rpc, #experimental, #all Default: #basic

HTTP/FTP Options

--all-proxy=PROXY

Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using --http-proxy, --https-proxy and --ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

Note
If user and password are embedded in proxy URI and they are also specified by --{http,https,ftp,all}-proxy-{user,passwd} options, those appeared later have precedence. For example, you have http-proxy-user="myname", http-proxy-passwd="mypass" in aria2.conf and you specify --http-proxy="http://proxy" in command-line, then you get HTTP proxy "http://proxy" with user "myname" and password "mypass". Another example: if you specified in command-line --http-proxy="http://user:pass@proxy" --http-proxy-user="myname" --http-proxy-passwd="mypass", then you will get HTTP proxy "http://proxy" with user "myname" and password "mypass". One more example: if you specified in command-line --http-proxy-user="myname" --http-proxy-passwd="mypass" --http-proxy="http://user:pass@proxy", then you get HTTP proxy "http://proxy" with user "user" and password "pass".
--all-proxy-passwd=PASSWD

Set password for --all-proxy option.

--all-proxy-user=USER

Set user for --all-proxy option.

--connect-timeout=SEC

Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server. After the connection is established, this option makes no effect and --timeout option is used instead. Default: 60

--dry-run[=true|false]

If true is given, aria2 just checks whether the remote file is available and doesn’t download data. This option has effect on HTTP/FTP download. BitTorrent downloads are canceled if true is specified. Default: false

--lowest-speed-limit=SPEED

Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0

--max-file-not-found=NUM

If aria2 receives ‘file not found’ status from the remote HTTP/FTP servers NUM times without getting a single byte, then force the download to fail. Specify 0 to disable this option. This options is effective only when using HTTP/FTP servers. Default: 0

-m, --max-tries=N

Set number of tries. 0 means unlimited. Default: 5

-n, --no-netrc

Disables netrc support. netrc support is enabled by default.

--no-proxy=DOMAINS

Specify comma separated hostnames, domains and network address with or without CIDR block where proxy should not be used.

Note
For network address with CIDR block, only IPv4 address works. Current implementation does not resolve hostname in URI to compare network address specified in --no-proxy. So it is only effecive if URI has numeric IP addresses.
-o, --out=FILE

The file name of the downloaded file. When -Z option is used, this option is ignored.

Note
In Metalink or BitTorrent download you cannot specify file name. The file name specified here is only used when the URIs fed to aria2 are done by command line without -i, -Z option. For example: aria2c -o myfile.zip "http://mirror1/file.zip" "http://mirror2/file.zip"
--proxy-method=METHOD

Set the method to use in proxy request. METHOD is either get or tunnel. HTTPS downloads always use tunnel regardless of this option. Default: get

-R, --remote-time[=true|false]

Retrieve timestamp of the remote file from the remote HTTP/FTP server and if it is available, apply it to the local file. Default: false

*--reuse-uri[=true|false]

Reuse already used URIs if no unused URIs are left. Default: true

--server-stat-of=FILE

Specify the filename to which performance profile of the servers is saved. You can load saved data using --server-stat-if option. See Server Performance Profile subsection below for file format.

--server-stat-if=FILE

Specify the filename to load performance profile of the servers. The loaded data will be used in some URI selector such as feedback. See also --uri-selector option. See Server Performance Profile subsection below for file format.

--server-stat-timeout=SEC

Specifies timeout in seconds to invalidate performance profile of the servers since the last contact to them. Default: 86400 (24hours)

-s, --split=N

Download a file using N connections. If more than N URIs are given, first N URIs are used and remaining URIs are used for backup. If less than N URIs are given, those URIs are used more than once so that N connections total are made simultaneously. The number of connections to the same host is restricted by --max-connection-per-server option. Please see -j and --min-split-size option too. Please note that in Metalink download, this option has no effect and use -C option instead. Default: 5

-t, --timeout=SEC

Set timeout in seconds. Default: 60

--uri-selector=SELECTOR

Specify URI selection algorithm. The possible values are inorder, feedback and adaptive. If inorder is given, URI is tried in the order appeared in the URI list. If feedback is given, aria2 uses download speed observed in the previous downloads and choose fastest server in the URI list. This also effectively skips dead mirrors. The observed download speed is a part of performance profile of servers mentioned in --server-stat-of and --server-stat-if options. If adaptive is given, selects one of the best mirrors for the first and reserved connections. For supplementary ones, it returns mirrors which has not been tested yet, and if each of them has already been tested, returns mirrors which has to be tested again. Otherwise, it doesn’t select anymore mirrors. Like feedback, it uses a performance profile of servers. Default: feedback

HTTP Specific Options

--ca-certificate=FILE

Use the certificate authorities in FILE to verify the peers. The certificate file must be in PEM format and can contain multiple CA certificates. Use --check-certificate option to enable verification.

--certificate=FILE

Use the client certificate in FILE. The certificate must be in PEM format. You may use --private-key option to specify the private key.

--check-certificate[=true|false]

Verify the peer using certificates specified in --ca-certificate option. Default: true

--http-accept-gzip[=true|false]

Send "Accept: deflate, gzip" request header and inflate response if remote server responds with "Content-Encoding: gzip" or "Content-Encoding: deflate". Default: false

Note
Some server responds with "Content-Encoding: gzip" for files which itself is gzipped file. aria2 inflates them anyway because of the response header.
--http-auth-challenge[=true|false]

Send HTTP authorization header only when it is requested by the server. If false is set, then authorization header is always sent to the server. There is an exception: if username and password are embedded in URI, authorization header is always sent to the server regardless of this option. Default: false

--http-no-cache[=true|false]

Send Cache-Control: no-cache and Pragma: no-cache header to avoid cached content. If false is given, these headers are not sent and you can add Cache-Control header with a directive you like using --header option. Default: true

--http-user=USER

Set HTTP user. This affects all URIs.

--http-passwd=PASSWD

Set HTTP password. This affects all URIs.

--http-proxy=PROXY

Use this proxy server for HTTP. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--http-proxy-passwd=PASSWD

Set password for --http-proxy option.

--http-proxy-user=USER:

Set user for *--http-proxy* option.
--https-proxy=PROXY

Use this proxy server for HTTPS. To erase previously defined proxy, use "". See also --all-proxy option. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT]

--https-proxy-passwd=PASSWD

Set password for --https-proxy option.

--https-proxy-user=USER

Set user for --https-proxy option.

--private-key=FILE

Use the private key in FILE. The private key must be decrypted and in PEM format. The behavior when encrypted one is given is undefined. See also --certificate option.

--referer=REFERER

Set Referer. This affects all URIs.

--enable-http-keep-al