Skip to main content

Tool to maintain transmission (bittorrent) settings, add items from feeds and redis queues

Project description

# trMaid

[![Can I Use Python 3?](](

Looks after your transmission settings, keeps torrents under check and adds them
from feed or redis queue/list.

## About configuration (*~/.trmaid.yaml* file)

### Sections:

username: transmission
password: transmission

Well that seems self explanatory...

redis: redis://localhost:6379
verify: False
verbose: True

redis is the url to redis, verify is to whether the SSL verification is done and
verbose is for displaying the messages or not ('-v' in arguments overrides it to

alt-speed-enabled: False
blocklist-enabled: True
blocklist-update-interval: 168
download-dir: /home/path/Downloads
incomplete-dir: /home/path/Downloads/incomplete

Here you can define transmissions session-set parameters - every time script
runs, it checks if they match the given parameters here and if they don't,
script will update them with session-set call. Magic variable here is
"blocklist-update-interval". If blocklist-url has been configured and enabled
script will execute the *blocklist-update* request every X hour (168 hours / a
week in examples case).

seedRatioLimit = 1.5
seedRatioMode = 1
seedRatioLimited = True
ratio: 0.2
status: stopped
done-time: 18h
with-data: True

This section might include all *torrent-set* parameters + 'remove-if' part. If
there is remove-if present, torrent is removed if it matches the present
conditions: ratio (>=), status and done-time (eg. 1h or 1d for time since
torrent was finished).

location: /home/path/Downloads/private-tracker

location: /home/path/Downloads/random
peer-limit: 10
seedRatioLimit: 5.0
seedRatioMode: 1
seedRatioLimited: True

This is same as *general-tracker*, but is used if announce urls hostname matches it.
Once match is found *general-tracker* and *location:...* sections are skipped. Use
it to set special values to eg. private trackers.

peer-limit: 15
uploadLimit: 20
uploadLimited: True
seedRatioLimit: 1.0
seedRatioMode: 1
seedRatioLimited: True

This special section is identical to *general-tracker* but its parameters here
are only set if torrents download location matches one in the section name. Once
match is found *general-tracker* is skipped.

download-dir: /home/path/Downloads/tv-shows
peer-limit: 15
downloadLimit: 1024
downloadLimited: False
uploadLimit: 50
uploadLimited: True
seedRatioLimit: 5.0
seedRatioMode: 1
seedRatioLimited: True
- udp://
- udp://
- udp://
- ^some\.regex\.here
- ^and(\-|\s|\.)here

Parameters here are either torrent-add or torrent-set parameters. Previous
example adds torrents from ezrss "FakeShow" feed, adding them to 'tv-shows'
directory and sets peer/download/upload limits. *matches* is a list of regular
expressions - if exists, title has to match one of them.

peer-limit: 20
uploadLimit: 5
uploadLimited: True

Here torrent urls or magent links are popped (lpop) out of the list "list-4-lpop"
mentioned in section name. Otherwise its the same as *rss:....* section

peer-limit: 30
uploadLimit: 150
uploadLimited: True
seedRatioLimit: 11.0
seedRatioMode: 1
seedRatioLimited: True
- udp://

If you have "watch-folders" section in your configuration file and that folder
really exists, files with "torrent" extensions are added just as from rss or redis.
After added, they are renamed from "*.torrent" file to "*.torrent.added" file.

You can read more about *session-set*, *torrent-add* and *torrent-set* requests from here:
[transmssion rpc spec ](

NB! things break, use at your own risk and only download legal stuff! ;)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for trmaid, version 0.6.8
Filename, size File type Python version Upload date Hashes
Filename, size trmaid-0.6.8-py2.py3-none-any.whl (14.0 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size trmaid-0.6.8.tar.gz (12.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page