Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mrcruz/autoarr


https://github.com/mrcruz/autoarr

Last synced: 10 days ago
JSON representation

Awesome Lists containing this project

README

        

# autoarr

*Don't look at your torrent client again*

Manages your qBittorrent client automatically.
Designed to be a companion to Arr applications.

A stateless script that is intended to run every day and selects what your are going to seed based on an arbitrary criteria.
It's goal is to keep a maximum "Pool Size" (In GB) of active torrents, pausing less prioritize downloads and possibly deleting them, if desired.
It can also move *idle downloads* to a remote location in order to save space on the seedbox and retrive then once needed.

## Usage

Below, there is an example of config doing some things:

* Prioritize to seed downloads with the least amount of seeders
* Ignores torrent that contain *My_Special_Download* in the name
* Removes downloads with ratio over 20 *AND* with more than 1000 seeders
* Keeps the active pool size under 100 GB and move the Idle downloads to the Idle Pool

```
{
"AllowByCategory": "",
"DoNotChangeFiles": false,
"DoNotChangeDownloadClient": false,
"UseStash": true,
"DownloadCLientUrl": "http://192.168.1.2:8080",
"IgnoreByCategory": "",
"IgnoreByName": "My_Special_Download",
"IgnoreByTag": "",
"PoolSize": 100,
"RcloneRemote": "",
"RemoveConditionInclusive": false,
"RemoveConditions": [
{
"Field": "ratio",
"Value": 20,
"Invert": false
},
{
"Field": "num_complete",
"Value": 1000,
"Invert": false
}
],
"SortField": "num_complete",
"SortInvertOrder": false
}
```

### Docker

This project was design to work mainly as a docker short lived container.
Here is an docker-compose example:

```
version: '3'

services:
autoarr:
build: ./
user: "1000"
volumes:
- ./input.json:/config/input.json
- ./rclone.conf:/home/user/.config/rclone/rclone.conf
- :/idle
- :/active
network_mode: host

```

Then, you would run daily like this:

```
docker-compose run --rm autoarr
```

## Notes

This is a learning exercise tool and my first Go project.
Feel free to make pull requests.

It uses [rclone](https://github.com/rclone/rclone) to move files so you can have any backend that rclone supports as your *Idle pool*.

### Future

- [x] Retrieve downloads from idle storage
- [x] Remove downloads if they meet specific properties
- [x] Move downloads to idle pool
- [x] Remove downloads once they fill up the active pool
- [ ] More complex priority options
- [ ] Support other torrent clients
- [ ] Auto manage idle pool
- [ ] Support more use cases