wiki:Plugins/transmission
Last modified 7 days ago Last modified on 04/16/14 23:11:56

Transmission

Passes the url of an entry to Transmission bittorrent client. Can also pass magnet links to Transmission.

This plugin requires the transmissionrpc library. To install it, run:

easy_install transmissionrpc
or
pip install  transmissionrpc

You may be required to upgrade transmissionrpc after upgrading transmission, for that just add --upgrade to the previous command. Newer versions of flexget now depend on transmissionrpc 0.11 or higher.

Example:

transmission:
  host: localhost
  port: 9091
  username: myusername
  password: mypassword

If you're having authentication issues, see ticket ticket:1066#comment:1 if it helps (feel free to improve this wiki page). The username and password can be set from the GUI, but if you're using the headless version you must change it in /home/<user>/.config/transmission-daemon/settings.json. First stop transmissiond, edit settings.json and enter a password in clear text; it will be overwritten with its hash once transmissiond is started again.

Also make sure that rpc-whitelist isn't preventing flexget from connecting to localhost or whatever IP address it's using. The settings below will permit clients connecting from localhost and 192.168.*.*, assuming they also provide the correct credentials, it will also deny all other IP ranges:

    ...
    "rpc-whitelist": "127.0.0.1,192.168.*.*",
    "rpc-whitelist-enabled": true,
    ...

Transmission-GTK

If you are running Ubuntu, or most any modern distribution, chances are great that you have transmission-gtk instead of transmission-daemon. In this case: Open transmission-gtk, go to Edit > Preferences, and navigate to the Remote tab. Check "Allow remote access" and set your username and password. If "Only allow these IP addresses" is checked, be sure to have your IP included. Test the connection by clicking on "Open web client" button. If you can authenticate from the web client, you should have no problems authenticating with your flexget configuration file as follows:

transmission:
  host: localhost
  port: 9091
  username: myusername
  password: mypassword

Options

NameInfoDescription
hostTextWhere transmission is listening (default: localhost)
portNumberConnected port (default: 9091)
netrcFile
usernameText
passwordText
pathDirectoryDestination for downloaded file(s). Supports jinja replacement.
addpaused[Yes|No]
bandwidthpriority[-1,0,1]
honourlimits[Yes|No]
maxconnectionsNumber
maxupspeedNumber
maxdownspeedNumber
ratioDecimalThe ratio to stop seeding at (-1 means infinite)
enabled[Yes|No]Plugin enabled (Default: Yes)

To use all default values use this config form:

transmission: yes

Advanced

Transmission plugin will also utilize options from entry fields. This allows more refined configuration per entry field selection.

Here is an example task using the series plugin:

series:
  settings:
    720p:
      set:
        path: /media/diska/incomplete/
        label: 720p
    hdtv:
      set:
        path: /media/diskb/incomplete/
        label: tv
  720p:
    - name 1
    - name 2
  hdtv:
    - name 3
    - name 4:
        set:
          ratio: 5.0
          addpaused: yes
transmission:
  host: localhost
  port: 9091
  username: myusername
  password: mypassword

Transmission Tips

After 1.2.34 the removewhendone option does not exists anymore, you can now clean the Transmission queue using the clean_transmission plugin

After r1277 you can simply use the removewhendone option

Transmission annoyingly does not have any way to easily remove completed torrents from it's UI. Luckily if you have transmission-remote installed you can script it.

Create an executable script named: transmission-cleanup.sh:

transmission-remote -l  | grep 100% | grep Done | awk '{print $1}' | xargs -n 1 -J % ./transmission-remote -t % -r

Note: if your transmission is username/password protected add a --auth <user>:<password> to the above calls to transmission-remote.

Add this script to your crontab.