First steps

After creating a client object, communicating with Transmission is a breeze:

>>> response = client('torrent-get', ids=[1,2,3], fields=['name'])
>>> response['torrents']
[{u'name': u'torrent 1'}, {u'name': u'torrent 2'}, {u'name': u'torrent 3'}]

This calls the torrent-get method along with the ids and fields request arguments.

No matter what RPC method you’re calling, the syntax will always be the same:

client(method_name[, **request_arguments])
Parameters:
  • method_name (string) – A method name as described in RPC specification sections 3.1 to 4.6 (e.g., torrent-start, torrent-add, session-get, etc.)
  • request_arguments – Keyword arguments as explained in the specification
Return type:

A dictionary of the “arguments” object returned from Transmission

Dashes in request arguments

Some request arguments contain dashes in their name. As this is invalid in Python, replace any dashes with underscores:

>>> client('torrent-set', ids=1, peer_limit=30) # instead of 'peer-limit'

Timestamp handling

The only area where transmission-fluid deviates from the RPC specification is when dealing with timestamps.

The RPC specification returns all date and time information as Unix timestamps. To make life easier for developers, transmission-fluid transparently converts these timestamps to UTC datetime objects:

>>> response = client('torrent-get', ids=1, fields=['addedDate'])
>>> response['torrents']
[{u'addedDate': datetime.datetime(2011, 10, 31, 20, 1, 23)}]

Similarly, you can pass datetime objects as request arguments and they’ll be converted to Unix timestamps before being transmitted to Transmission.

New in version 0.3.