Skip to main content

Simple Deluge Client

Project description

A lightweight pure-python rpc client for deluge. Note, does not support events and any additional replies from deluge will mess up the datastream.


  • Deluge 1.3.x, 2.0 beta
  • Python 2.7, 3.5, 3.6, 3.7


From GitHub (develop):

pip install git+

From PyPi (stable):

pip install deluge-client


>>> from deluge_client import DelugeRPCClient

>>> client = DelugeRPCClient('', 12345, 'username', 'password')
>>> client.connect()
>>> client.connected
>>>'core.get_torrents_status', {}, ['name'])
{'79816060ea56d56f2a2148cd45705511079f9bca': {'name': 'TPB.AFK.2013.720p.h264-SimonKlose'}}
>>> client.core.get_torrents_status({}, ['name'])
{'79816060ea56d56f2a2148cd45705511079f9bca': {'name': 'TPB.AFK.2013.720p.h264-SimonKlose'}}

It is also usable as a context manager.

>>> from deluge_client import DelugeRPCClient

>>> with DelugeRPCClient('', 12345, 'username', 'password') as client:
...'core.get_torrents_status', {}, ['name'])
{'79816060ea56d56f2a2148cd45705511079f9bca': {'name': 'TPB.AFK.2013.720p.h264-SimonKlose'}}

Idiom to use for automatic reconnect where the daemon might be offline at call time.

import time

from deluge_client import DelugeRPCClient, FailedToReconnectException

def call_retry(client, method, *args, **kwargs):
    # We will only try the command 10 times
    for _ in range(10):
            return, *args, **kwargs)
        except FailedToReconnectException:
            # 5 second delay between calls

Idiom usage

client = DelugeRPCClient('', 58846, 'username', 'password', automatic_reconnect=True)
# The client has to be online when you start the process,
# otherwise you must handle that yourself.
call_retry(client, 'core.get_torrents_status', {}, ['name'])
# or if you have local Deluge instance, you can use the local client
# LocalDelugeRPCClient accepts the same parameters, but username and password can be omitted
from deluge_client import LocalDelugeRPCClient
localclient = LocalDelugeRPCClient()

List of Deluge RPC commands

Sadly, this part isn’t well documented. Your best bet is to check out the source code and try to figure out what you need. The commands are namespaced so the commands you mostly need, core commands, are prefixed with a core. - Check out this search for all commands and for core commands.

The exported commands are decorated with @export.

You can also get a list of exported commands by calling the daemon.get_method_list method:'daemon.get_method_list')
# or



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 deluge-client, version 1.9.0
Filename, size File type Python version Upload date Hashes
Filename, size deluge_client-1.9.0-py2.py3-none-any.whl (12.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size deluge-client-1.9.0.tar.gz (11.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page