---
name: "bittorrent-downloader.bittornado"
section: "1"
platform: "linux"
package: "bittornado"
version: "0.3.18-10.3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/bittorrent-downloader.bittornado"
---

# bittorrent-downloader.bittornado(1)

download files using a scatter-gather network

## NAME

bittorrent-downloader — download files using a scatter-gather network

## SYNOPSIS

**btdownloadheadless** \[**options** ...\]  *URL*

**btdownloadheadless** \[**options** ...\]  *filename*

**btdownloadcurses** \[**options** ...\]  *URL*

**btdownloadcurses** \[**options** ...\]  *filename*

**btdownloadgui** \[**options** ...\]  *URL*

**btdownloadgui** \[**options** ...\]  *filename*

**btlaunchmany** \[**options** ...\]  *directory*

**btlaunchmanycurses** \[**options** ...\]  *directory*

## DESCRIPTION

This manual page documents briefly the options available to the bittorrent-downloader commands.

This manual page was written for the **Debian** distribution  because the original program does not have a manual page.

**btdownloadheadless**, **btdownloadcurses**, **btdownloadgui**,  **btlaunchmany**, and **btlaunchmanycurses** are all programs that allow a user to download files using  bittorrent, a peer to peer, scatter-gather network protocol. They all share a common set of options, shown below. For  more information on how to run them, and their program-specific options, see their individual man pages.

## OPTIONS

These programs follow the usual GNU command line syntax,  with long options starting with two dashes (\`--').  A summary of  options is included below.

- **--max\_uploads** *number*

  the maximum *number* of uploads to allow at once (defaults to 7)

- **--keepalive\_interval** *seconds*

  the number of *seconds* to pause between sending keepalives (defaults to 120.0)

- **--download\_slice\_size** *bytes*

  the number of *bytes* to query for per request (defaults to 16384)

- **--upload\_unit\_size** *bytes*

  when limiting the upload rate, the number of *bytes* to send at a time (defaults to 1460)

- **--request\_backlog** *number*

  the maximum *number* of requests to keep in a single pipe at once (defaults to 10)

- **--max\_message\_length** *length*

  the maximum *length* prefix encoding you'll accept over the wire.  Larger values will get the connection dropped. (defaults to 8388608)

- **--ip** *ip*

  the *ip* to report you have to the tracker (defaults to '')

- **--minport** *port*

  the minimum *port* to listen on (defaults to 10000)

- **--maxport** *port*

  the maximum *port* to listen on (defaults to 60000)

- **--random\_port** 0\|1

  whether to choose randomly inside the port range (instead of counting up linearly from min to max) (defaults to 1)

- **--responsefile** *file*

  the *file* the server response was stored in, as an alternative to --url. If this option is used,  no filename or URL should be present on the command line. (defaults to '')

- **--url** *URL*

  the *URL* to get the torrent file from, as an alternative to --responsefile. If this option is used,  no filename or URL should be present on the command line. (defaults to '')

- **--crypto\_allowed** 0\|1

  whether to allow the client to accept encrypted connections.  (defaults to 1 if python-crypto is installed, 0 otherwise)

- **--crypto\_only** 0\|1

  whether to only create or allow encrypted connections. (defaults to 0)

- **--crypto\_stealth** 0\|1

  whether to prevent all non-encrypted connection attempts; will result  in an effectively firewalled state on older trackers. (defaults to 0)

- **--selector\_enabled** 0\|1

  whether to enable the file selector and fast resume function (defaults to 1)

- **--expire\_cache\_data** *days*

  the number of *days* after which you wish to expire old cache data (0 = disabled) (defaults to 10)

- **--priority** -1\|0\|1\|2\[,-1\|0\|1\|2 ...\]

  a list of file priorities, separated by commas. There must be one per file. 0 = highest,  1 = normal, 2 = lowest, -1 = download disabled. Order is based  on the file/torrent order as shown by btshowmetainfo. For example, to download only  the third of four files use: --priority -1,-1,2,-1 (defaults to '')

- **--saveas** *filename*

  the local *filename* to save the file as, null indicates query user (defaults to '')

- **--timeout** *seconds*

  the number of *seconds* to wait between closing sockets which nothing has been received on  (defaults to 300.0)

- **--timeout\_check\_interval** *seconds*

  the number of *seconds* to wait between checking if any connections have timed out (defaults to 60.0)

- **--max\_slice\_length** *length*

  the maximum *length* slice to send to peers, larger requests are ignored (defaults to 131072)

- **--max\_rate\_period** *seconds*

  the maximum number of *seconds* to use in guessing what the current rate estimate represents (defaults to 20.0)

- **--bind** *ip*\|*hostname*\[,*ip*\|*hostname* ...\]

  a comma-separated list of *ips* and *hostnames* to bind to locally (defaults to '')

- **--ipv6\_enabled** 0\|1

  whether to allow the client to connect to peers via IPv6 (defaults to 0)

- **--ipv6\_binds\_v4** 0\|1

  set if an IPv6 server socket won't also field IPv4 connections (defaults to 0)

- **--upload\_rate\_fudge** *seconds*

  the time equivalent in *seconds* of writing to kernel-level TCP buffer, for rate adjustment (defaults to  5.0)

- **--tcp\_ack\_fudge** *overhead*

  how much TCP ACK download *overhead* to add to upload rate calculations (0 = disabled)  (defaults to 0.029999999999999999)

- **--display\_interval** *seconds*

  the number of *seconds* between updates of displayed information (defaults to 0.5)

- **--rerequest\_interval** *seconds*

  the number of *seconds* between requesting more peers (defaults to 300)

- **--min\_peers** *number*

  make tracker requests every --rerequest\_interval until this *number* has been reached, then switch to the standard longer interval (defaults to 20)

- **--http\_timeout** *seconds*

  the number of *seconds* to wait before assuming that an http connection  has timed out (defaults to 60)

- **--max\_initiate** *number*

  the *number* of peers at which to stop initiating new connections (defaults to 40)

- **--check\_hashes** 0\|1

  whether to check hashes on disk (defaults to 1)

- **--max\_upload\_rate** *kB/s*

  the maximum *kB/s* to upload at (0 = no limit, -1 = automatic) (defaults to 0)

- **--max\_download\_rate** *kB/s*

  the maximum *kB/s* to download at (0 = no limit) (defaults to 0)

- **--alloc\_type** normal\|background\|pre-allocate\|sparse

  the allocation type (may be 'normal', 'background', 'pre-allocate' or 'sparse') (defaults to 'normal')

- **--alloc\_rate** *MiB/s*

  the rate (in *MiB/s*) to allocate space at using background allocation (defaults to 2.0)

- **--buffer\_reads** 0\|1

  whether to buffer disk reads (defaults to 1)

- **--write\_buffer\_size** *space*

  the maximum amount of *space* to use for buffering disk writes (in megabytes, 0 = disabled)  (defaults to 4)

- **--breakup\_seed\_bitfield** 0\|1

  whether to send an incomplete bitfield and then 'have' messages, in  order to get around stupid ISP manipulation (defaults to 1)

- **--snub\_time** *seconds*

  the number of *seconds* to wait for data to come in over a connection before assuming it's  semi-permanently choked (defaults to 30.0)

- **--spew** 0\|1

  whether to display diagnostic info to stdout. This option is not very useful when using the curses or gui interfaces. (defaults to 0)

- **--rarest\_first\_cutoff** *number*

  the *number* of downloads at which to switch from random to rarest first (defaults to 2)

- **--rarest\_first\_priority\_cutoff** *number*

  the *number* of peers which need to have a piece before other partials take priority over  rarest first (defaults to 5)

- **--min\_uploads** *number*

  the *number* of uploads to fill out to with extra optimistic unchokes (defaults to 4)

- **--max\_files\_open** *number*

  the maximum *number* of files to keep open at a time, 0 means no limit (defaults to 50)

- **--round\_robin\_period** *seconds*

  the number of *seconds* between the client switching upload targets (defaults to 30)

- **--super\_seeder** 0\|1

  whether to use special upload-efficiency-maximizing routines (only for dedicated seeds)  (defaults to 0)

- **--security** 0\|1

  whether to enable extra security features intended to prevent abuse (defaults to 1)

- **--max\_connections** *number*

  the absolute maximum *number* of peers to connect with (0 = no limit) (defaults to 0)

- **--auto\_kick** 0\|1

  whether to allow the client to automatically kick/ban peers that send bad data (defaults to 1)

- **--double\_check** 0\|1

  whether to double-check data being written to the disk for errors (may increase CPU load)  (defaults to 1)

- **--triple\_check** 0\|1

  whether to thoroughly check data being written to the disk (may slow disk access)  (defaults to 0)

- **--lock\_files** 0\|1

  whether to lock files the client is working with (defaults to 1)

- **--lock\_while\_reading** 0\|1

  whether to lock access to files being read (defaults to 0)

- **--auto\_flush** *minutes*

  the number of *minutes* between automatic flushes to disk (0 = disabled) (defaults to 0)

- **--dedicated\_seed\_id** *code*

  the *code* to send to a tracker, identifying as a dedicated seed (defaults to '')

- **--save\_options** 0\|1

  whether to save the current options as the new default configuration  for the current program (defaults to 0)

## SEE ALSO

The single torrent downloaders:  **btdownloadheadless(1)**,  **btdownloadcurses(1)**,  **btdownloadgui(1)**.

The multiple torrent downloaders:  **bittorrent-multi-downloader(1)**,  **btlaunchmany(1)**,  **btlaunchmanycurses(1)**.

The bittorrent tracker:  **bttrack(1)**.

The torrent file creators:   **btmakemetafile(1)**,  **[btmaketorrentgui(1)](/btmaketorrentgui/1.md)**,  **btcompletedir(1)**,  **btcompletedirgui(1)**.

The torrent file modifiers:  **[btcopyannounce(1)](/btcopyannounce/1.md)**,  **btreannounce(1)**,  **btrename(1)**,  **[btsethttpseeds(1)](/btsethttpseeds/1.md)**.

The torrent file displayer:  **btshowmetainfo(1)**.

## AUTHOR

This manual page was written by Cameron Dale \<camrdale@gmail.com\> (based on the original man pages written by Micah Anderson \<micah@debian.org\>) for  the **Debian** system (but may be used by others).  Permission is  granted to copy, distribute and/or modify this document under  the terms of the GNU General Public License, Version 2 or any  later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public  License can be found in /usr/share/common-licenses/GPL.
