{"id":24731,"library":"transmission-rpc","title":"transmission-rpc","description":"Python module that implements the Transmission BitTorrent client JSON-RPC protocol. Current stable version is 7.0.11, requires Python ~=3.8. Pre-release version 8.0.0a4 is available with breaking changes. Maintained by Trim21. Active development.","status":"active","version":"7.0.11","language":"python","source_language":"en","source_url":"https://github.com/Trim21/transmission-rpc","tags":["transmission","bittorrent","rpc","json-rpc","torrent"],"install":[{"cmd":"pip install transmission-rpc","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Old package name 'transmissionrpc' is deprecated; use 'transmission_rpc'","wrong":"from transmissionrpc import Client","symbol":"Client","correct":"from transmission_rpc import Client"},{"note":"","wrong":null,"symbol":"Torrent","correct":"from transmission_rpc import Torrent"}],"quickstart":{"code":"from transmission_rpc import Client\n\nc = Client(host='localhost', port=9091, username=os.environ.get('TR_USER', ''), password=os.environ.get('TR_PASS', ''))\ntorrents = c.get_torrents()\nfor t in torrents:\n    print(t.name, t.percent_done)","lang":"python","description":"Connect to Transmission and list torrents. Auth via environment variables."},"warnings":[{"fix":"Use 'bytes(pieces)' or access BitMap methods. See changelog for migration path.","message":"Version 8.0.0a0+ removed the 'requests' library dependency and changed '.pieces' from base64 string to BitMap object. Code relying on old .pieces format will break.","severity":"breaking","affected_versions":">=8.0.0a0"},{"fix":"Replace 'import transmissionrpc' with 'import transmission_rpc'.","message":"The old import 'import transmissionrpc' (no underscore) is deprecated and will be removed. Always use 'transmission_rpc'.","severity":"deprecated","affected_versions":">=7.0.0"},{"fix":"Use a list of lists: [[tracker1, tracker2], [tracker3]] for two tiers.","message":"When calling change_torrent(tracker_list=...), setting tiers correctly requires a specific list format. Passing a flat list may not preserve tiers.","severity":"gotcha","affected_versions":">=7.0.0"},{"fix":"Update type annotations and attribute access accordingly.","message":"In version 8.0.0a3, return types for 'peers' and 'peers_from' changed. Code expecting old types may break.","severity":"breaking","affected_versions":">=8.0.0a3"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install transmission-rpc and use 'from transmission_rpc import Client'.","cause":"Using old deprecated package name with underscore missing.","error":"ModuleNotFoundError: No module named 'transmissionrpc'"},{"fix":"Verify Transmission settings: enable 'rpc-whitelist' and set 'rpc-port'. Check host, port, username, password.","cause":"Incorrect host, port, or authentication credentials, or Transmission RPC not enabled.","error":"transmission_rpc.error.TransmissionError: Couldn't connect to server"},{"fix":"If on v8+, use 'bytes(t.pieces)' or check for 'bitfield' attribute. Use older v7 if compatibility needed.","cause":"Using v8.0.0a0+ where .pieces returns a BitMap instead of base64 string; property name may have changed.","error":"AttributeError: 'Torrent' object has no attribute 'pieces'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}