Skip to content

Python client implementation for qBittorrent's Web API

License

Notifications You must be signed in to change notification settings

angristan/qbittorrent-api

 
 

Repository files navigation

qBittorrent Web API Client

GitHub Workflow Status (branch) Codecov branch Coverity Scan Codacy grade

PyPI PyPI - Python Version PyPI - Implementation

Python client implementation for qBittorrent Web API. Supports qBittorrent v4.1.0+ (i.e. Web API v2.0+).

Currently supports up to qBittorrent v4.3.3 (Web API v2.7) released on January 18, 2021.

Find the full documentation for this client on RTD.

Features

  • The entire qBittorrent Web API is implemented.
  • qBittorrent version checking for an endpoint's existence/features is automatically handled.
  • All Python versions are supported.
  • If the authentication cookie expires, a new one is automatically requested in line with any API call.

Installation

Install via pip from PyPI

pip install qbittorrent-api

Getting Started

import qbittorrentapi

# instantiate a Client using the appropriate WebUI configuration
qbt_client = qbittorrentapi.Client(host='localhost', port=8080, username='admin', password='adminadmin')

# the Client will automatically acquire/maintain a logged in state in line with any request.
# therefore, this is not necessary; however, you many want to test the provided login credentials.
try:
    qbt_client.auth_log_in()
except qbittorrentapi.LoginFailed as e:
    print(e)

# display qBittorrent info
print(f'qBittorrent: {qbt_client.app.version}')
print(f'qBittorrent Web API: {qbt_client.app.web_api_version}')
for k,v in qbt_client.app.build_info.items(): print(f'{k}: {v}')

# retrieve and show all torrents
for torrent in qbt_client.torrents_info():
    print(f'{torrent.hash[-6:]}: {torrent.name} ({torrent.state})')

# pause all torrents
qbt_client.torrents.pause.all()

About

Python client implementation for qBittorrent's Web API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%