Download Clients#

Download clients are entirely optional in Prowlarr, but are available so you can manually perform grabs entirely within Prowlarr.

In Buildarr, download clients for Prowlarr are configured in much the same way as they are for Sonarr, although some attributes are different.

The main differences are:

  • All instances of the recent_priority attribute are renamed to client_priority.
  • The older_priority attribute has been removed.
  • Any attribute relating to post-import management has been removed.

Download clients that use Usenet or BitTorrent can be configured.

prowlarr:
  settings:
    download_clients:
      definitions:
        Transmission:
          type: "transmission"
          host: "transmission"
          port: 9091
          ...

Some download clients support mapping categories within a download client to Prowlarr categories, to automatically classify downloads by content type.

This can be defined in Buildarr using the category_mappings attribute.

prowlarr:
  settings:
    download_clients:
      definitions:
        qBittorrent:
          type: "qbittorrent"
          ...
          category_mappings:
            "movies":
              - "Movies/HD"
              - "Movies/SD"
              ...
delete_unmanaged: bool = False class-attribute instance-attribute #

Automatically delete download clients not defined in Buildarr.

definitions: Dict[str, Annotated[DownloadClientType, Field(discriminator='type')]] = {} class-attribute instance-attribute #

Define download clients under this attribute.

Configuring download clients#

Download clients are defined using the following format. Here is an example of a Transmission download client being configured.

---

prowlarr:
  settings:
    download_clients:
      definitions:
        Transmission: # Name of the download client
          type: "transmission" # Type of download client
          enable: true # Enable the download client in Prowlarr
          host: "transmission"
          port: 9091
          category: "prowlarr"
          # Define any other type-specific or global
          # download client attributes as needed.

Every download client definition must have the correct type value defined, to tell Buildarr what type of download client to configure. The name of the download client definition is just a name, and has no meaning.

enable can be set to False to keep the download client configured on Prowlarr, but disabled so that it is inactive.

The below attributes can be defined on any type of download client.

enable: bool = True class-attribute instance-attribute #

When True, this download client is active and Prowlarr is able to send requests to it.

priority: PositiveInt = 1 class-attribute instance-attribute #

Download client priority.

Clients with a lower value are prioritised. Round-robin is used for clients with the same priority.

tags: Set[NonEmptyStr] = set() class-attribute instance-attribute #

Prowlarr tags to assign to the download clients. Only media under those tags will be assigned to this client.

If no tags are assigned, all media can use the client.

Usenet download clients#

These download clients retrieve media using the Usenet discussion and content delivery system.

Download Station (Usenet)#

Download client which uses Usenet via Download Station.

type: Literal['downloadstation-usenet'] = 'downloadstation-usenet' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Download Station host name.

port: Port = 5000 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category. Creates a [category] subdirectory in the output directory.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

directory: Optional[str] = None class-attribute instance-attribute #

Optional shared folder to put downloads into.

Leave blank, set to null or undefined to use the default download client location.

NZBGet#

NZBGet download client.

type: Literal['nzbget'] = 'nzbget' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

NZBGet host name.

port: Port = 5000 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the NZBGet url, e.g. http://[host]:[port]/[url_base]/jsonrpc.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: NzbgetPriority = NzbgetPriority.normal class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • verylow
  • low
  • normal
  • high
  • veryhigh
  • force
add_paused: bool = False class-attribute instance-attribute #

Add media to the download client in the paused state.

This option requires NZBGet version 16.0 or later.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

NZBVortex#

NZBVortex download client.

type: Literal['nzbvortex'] = 'nzbvortex' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

NZBVortex host name.

port: Port = 4321 class-attribute instance-attribute #

Download client access port.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the NZBVortex url, e.g. http://[host]:[port]/[url_base]/api.

api_key: Password instance-attribute #

API key to use to authenticate with the download client.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: NzbvortexPriority = NzbvortexPriority.normal class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • low
  • normal
  • high
category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Pneumatic#

Download client for the Pneumatic NZB add-on for Kodi/XMBC.

type: Literal['pneumatic'] = 'pneumatic' class-attribute instance-attribute #

Type value associated with this kind of download client.

nzb_folder: NonEmptyStr instance-attribute #

Folder in which Prowlarr will store .nzb files.

This folder will need to be reachable from Kodi/XMBC.

SABnzbd#

SABnzbd download client.

type: Literal['sabnzbd'] = 'sabnzbd' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

SABnzbd host name.

port: Port = 4321 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the SABnzbd URL, e.g. http://[host]:[port]/[url_base]/api/.

api_key: Optional[SecretStr] = None class-attribute instance-attribute #

API key to use to authenticate with SABnzbd, if required.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: SabnzbdPriority = SabnzbdPriority.default class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • default
  • paused
  • low
  • normal
  • high
  • force
category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Usenet Blackhole#

Usenet Blackhole download client.

type: Literal['usenet-blackhole'] = 'usenet-blackhole' class-attribute instance-attribute #

Type value associated with this kind of download client.

nzb_folder: NonEmptyStr instance-attribute #

Folder in which Prowlarr will store .nzb files.

Torrent download clients#

These download clients use the BitTorrent peer-to-peer file sharing protocol to retrieve media files.

Aria2#

Aria2 download client.

type: Literal['aria2'] = 'aria2' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Aria2 host name.

port: Port = 6800 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

rpc_path: NonEmptyStr = '/rpc' class-attribute instance-attribute #

XML RPC path in the Aria2 client URL.

secret_token: Password instance-attribute #

Secret token to use to authenticate with the download client.

Deluge#

Deluge download client.

type: Literal['deluge'] = 'deluge' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Deluge host name.

port: Port = 8112 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the Deluge JSON URL, e.g. http://[host]:[port]/[url_base]/json.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = 'prowlarr' class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: DelugePriority = DelugePriority.last class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • last
  • first
category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Download Station (Torrent)#

Download client which uses torrents via Download Station.

type: Literal['downloadstation-torrent'] = 'downloadstation-torrent' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Download Station host name.

port: Port = 5000 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category. Creates a [category] subdirectory in the output directory.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

directory: Optional[str] = None class-attribute instance-attribute #

Optional shared folder to put downloads into.

Leave blank, set to null or undefined to use the default download client location.

Flood#

Flood download client.

type: Literal['flood'] = 'flood' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Flood host name.

port: Port = 3000 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Optionally adds a prefix to Flood API, such as [protocol]://[host]:[port]/[url_base]api.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

destination: Optional[str] = None class-attribute instance-attribute #

Manually specified download destination.

flood_tags: Set[NonEmptyStr] = {'prowlarr'} class-attribute instance-attribute #

Initial tags of a download within Flood.

To be recognized, a download must have all initial tags. This avoids conflicts with unrelated downloads.

additional_tags: Set[FloodMediaTag] = set() class-attribute instance-attribute #

Adds properties of media as tags within Flood.

add_paused: bool = False class-attribute instance-attribute #

Add media to the download client in the Paused state.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Freebox#

Download client for connecting to a Freebox instance.

type: Literal['freebox'] = 'freebox' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr = 'mafreebox.freebox.fr' class-attribute instance-attribute #

Hostname or host IP address of the Freebox.

The default of mafreebox.freebox.fr will only work if on the same network.

port: Port = 443 class-attribute instance-attribute #

Freebox access port.

Set to the HTTPS default port as Freebox uses HTTPS by default.

use_ssl: bool = True class-attribute instance-attribute #

Use a secure connection when connecting to the Freebox API.

api_url: NonEmptyStr = '/api/v1' class-attribute instance-attribute #

Define Freebox API base URL with API version, e.g. http[s]://<host>:<port>/<api_url>/.

app_id: NonEmptyStr instance-attribute #

App ID used to authenticate with the Freebox.

app_token: Password instance-attribute #

Unique token used to authenticate with the Freebox.

destination_directory: Optional[str] = None class-attribute instance-attribute #

Optional location to put downloads in, on the Freebox node.

Leave blank, undefined or set to null to use the default Freebox download location.

category: Optional[str] = None class-attribute instance-attribute #

Default category to classify downloads under if no category mappings apply to it.

This will create a [category] subdirectory in the output directory. Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads.

client_priority: FreeboxPriority = FreeboxPriority.last class-attribute instance-attribute #

Priority to use when adding a download to the client.

add_paused: bool = False class-attribute instance-attribute #

Add media to the download client in the Paused state.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Hadouken#

Hadouken download client.

type: Literal['hadouken'] = 'hadouken' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

Hadouken host name.

port: Port = 7070 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the Hadouken url, e.g. http://[host]:[port]/[url_base]/api.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: NonEmptyStr = 'prowlarr' class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

qBittorrent#

qBittorrent download client.

type: Literal['qbittorrent'] = 'qbittorrent' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

qBittorrent host name.

port: Port = 8080 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the qBittorrent URL, e.g. http://[host]:[port]/[url_base]/api.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = 'prowlarr' class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: QbittorrentPriority = QbittorrentPriority.last class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • last
  • first
initial_state: QbittorrentState = QbittorrentState.start class-attribute instance-attribute #

Initial state for torrents added to qBittorrent.

Note that forced torrents do not abide by seed restrictions.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

RTorrent (ruTorrent)#

RTorrent (ruTorrent) download client.

type: Literal['rtorrent', 'rutorrent'] = 'rtorrent' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

RTorrent host name.

port: Port = 8080 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: NonEmptyStr = 'RPC2' class-attribute instance-attribute #

Path to the XMLRPC endpoint, e.g. http(s)://[host]:[port]/[url_base].

When using RTorrent this usually is RPC2 or plugins/rpc/rpc.php.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = 'prowlarr' class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: RtorrentPriority = RtorrentPriority.normal class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • verylow
  • low
  • normal
  • high
add_stopped: bool = False class-attribute instance-attribute #

Enabling will add torrents and magnets to RTorrent in a stopped state.

This may break magnet files.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.

Torrent Blackhole#

Torrent Blackhole download client.

type: Literal['torrent-blackhole'] = 'torrent-blackhole' class-attribute instance-attribute #

Type value associated with this kind of download client.

torrent_folder: NonEmptyStr instance-attribute #

Folder in which Prowlarr will store .torrent files.

save_magnet_files: bool = False class-attribute instance-attribute #

Save the magnet link if no .torrent file is available.

Only useful if the download client supports magnets saved to a file.

magnet_file_extension: NonEmptyStr = '.magnet' class-attribute instance-attribute #

Extension to use for magnet links.

Transmission/Vuze#

Transmission and Vuze use the same configuration parameters.

To use Transmission, set the type attribute in the download client to transmission.

To use Vuze, set the type attribute in the download client to vuze.

Configuration options common to both Transmission and Vuze download clients:

host: NonEmptyStr instance-attribute #

Transmission/Vuze host name.

port: Port = 9091 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: NonEmptyStr = '/transmission/' class-attribute instance-attribute #

Adds a prefix to the Transmission/Vuze RPC url, e.g.http://[host]:[port][url_base]rpc.

This is set by default in most clients to /transmission/.

username: Optional[str] = None class-attribute instance-attribute #

User name to use when authenticating with the download client, if required.

password: Optional[SecretStr] = None class-attribute instance-attribute #

Password to use to authenticate the download client user, if required.

category: Optional[str] = None class-attribute instance-attribute #

Associate media from Prowlarr with a category. Creates a [category] subdirectory in the output directory.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

directory: Optional[str] = None class-attribute instance-attribute #

Optional shared folder to put downloads into.

Leave blank, set to null or undefined to use the default download client location.

client_priority: TransmissionPriority = TransmissionPriority.last class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • last
  • first
add_paused: bool = False class-attribute instance-attribute #

Add media to the download client in the Paused state.

uTorrent#

uTorrent download client.

type: Literal['utorrent'] = 'utorrent' class-attribute instance-attribute #

Type value associated with this kind of download client.

host: NonEmptyStr instance-attribute #

uTorrent host name.

port: Port = 8080 class-attribute instance-attribute #

Download client access port.

use_ssl: bool = False class-attribute instance-attribute #

Use a secure connection when connecting to the download client.

url_base: Optional[str] = None class-attribute instance-attribute #

Adds a prefix to the uTorrent URL, e.g. http://[host]:[port]/[url_base]/api.

username: NonEmptyStr instance-attribute #

User name to use when authenticating with the download client.

password: Password instance-attribute #

Password to use to authenticate the download client user.

category: Optional[str] = 'prowlarr' class-attribute instance-attribute #

Associate media from Prowlarr with a category.

Adding a category specific to Prowlarr avoids conflicts with unrelated non-Prowlarr downloads. Using a category is optional, but strongly recommended.

client_priority: UtorrentPriority = UtorrentPriority.last class-attribute instance-attribute #

Priority to use when grabbing releases.

Values:

  • last
  • first
initial_state: UtorrentState = UtorrentState.start class-attribute instance-attribute #

Initial state for torrents added to uTorrent.

category_mappings: Dict[NonEmptyStr, Set[LowerCaseNonEmptyStr]] = {} class-attribute instance-attribute #

Category mappings for associating a category on the download client with the selected Prowlarr categories.