16 unstable releases (3 breaking)
|new 0.5.5||Sep 27, 2023|
|0.5.4||Sep 27, 2023|
|0.4.4||Sep 23, 2023|
|0.3.5||Sep 21, 2023|
|0.1.2||Sep 17, 2023|
#31 in HTTP server
268 downloads per month
Proxy that allows put.io to be used as a download client for sonarr/radarr/whisparr. The proxy uses the Transmission protocol.
There are a few ways to install putioarr:
Make sure you have a proper rust installation
cargo install putioarr
First, generate a config using
putio generate-config. This will generate a config file in
-c to override the configuration file location.
Edit the configuration file and make sure you configure the username and password, as well as the sonarr/radarr/whisparr details.
- Run the proxy:
- Configure the Transmission download client in sonarr/radarr/whisparr:
- Url Base: /transmission
Docker images are based on linuxserver.io images.
The first time you run your docker container, run it without the
-d option, since you'll need a put.io API key. When no configuration is found, it will present you a link and a code that will generate an API key. After the key is generated, putioarr will write a default config in your config volume (see
docker compose and
docker cli below). Modify the config (like username, password and sonarr/radarr/whisparr configuration) in order to properly use putioarr.
We utilise the docker manifest for multi-platform awareness.
ghcr.io/wouterdebie/putioarr:latest should retrieve the correct image for your arch (amd64 or arm64).
docker-compose (recommended, click here for more info)
--- version: "2.1" services: putioarr: image: ghcr.io/wouterdebie/putioarr:latest container_name: putioarr environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /path/to/putioarr/config:/config - /path/to/your/downloads:/downloads ports: - 9091:9091 restart: unless-stopped
docker cli (click here for more info)
docker run -d \ --name=putioarr \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 9091:9091 \ -v /path/to/deluge/config:/config \ -v /path/to/your/downloads:/downloads \ --restart unless-stopped \ ghcr.io/wouterdebie/putioarr:latest
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate
<external>:<internal> respectively. For example,
-p 8080:80 would expose port
80 from inside the container to be accessible from the host's IP on port
8080 outside the container.
||Port connecting to putioarr|
||for UserID - see below for explanation|
||for GroupID - see below for explanation|
||specify a timezone to use, see this list.|
||torrent download directory|
The proxy will upload torrents or magnet links to put.io. It will then continue to monitor transfers. When a transfer is completed, all files belonging to the transfer will be downloaded to the specified download directory. The proxy will remove the files after sonarr/radarr/whisparr has imported them and put.io is done seeding. The proxy will skip directories named "Sample".
A configuration file can be specified using
-c, but the default configuration file location is:
- Linux: ~/.config/putioarr/config.toml
- MacOS: ~/Library/Application Support/nl.evenflow.putioarr
TOML is used as the configuration format:
username = "myusername" password = "mypassword" download_directory = "/path/to/downloads" bind_address = "0.0.0.0" port = 9091 loglevel = "info" uid = 1000 polling_interval = 10 skip_directories = ["sample", "extras"] orchestration_workers = 10 download_workers = 4 [putio] api_key = "MYPUTIOKEY" [sonarr] url = "http://mysonarrhost:8989/sonarr" api_key = "MYSONARRAPIKEY" [radarr] url = "http://myradarrhost:7878/radarr" api_key = "MYRADARRAPIKEY"
- Better Error handling and retry behavior
- The session ID provided is hard coded. Not sure if it matters.
- (Add option to not delete downloads)
- Figure out a better way to map a transfer to a completed import. Since a transfer can contain multiple files (e.g. a whole season) we currently check if all video files have been imported. Most of the time this is fine, except when there are sample videos. sonarr/radarr/whisparr will not import samples, but will make no mention of the fact that the sample was skipped. Right now we check against the
skip_directorieslist, which works, but might be tedious.
- Automatically pick the right putio proxy based on speed
Thanks to davidchalifoux for borrowed code from kaput-cli.