Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rmartin16/qbittorrent-api
Python client implementation for qBittorrent's Web API
https://github.com/rmartin16/qbittorrent-api
api api-client client python python-client qbittorrent torrents webapi
Last synced: 26 days ago
JSON representation
Python client implementation for qBittorrent's Web API
- Host: GitHub
- URL: https://github.com/rmartin16/qbittorrent-api
- Owner: rmartin16
- License: mit
- Created: 2019-05-03T18:07:02.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-05-13T16:31:57.000Z (6 months ago)
- Last Synced: 2024-05-20T11:10:10.792Z (6 months ago)
- Topics: api, api-client, client, python, python-client, qbittorrent, torrents, webapi
- Language: Python
- Homepage: https://qbittorrent-api.readthedocs.io/
- Size: 3.48 MB
- Stars: 374
- Watchers: 4
- Forks: 67
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
qBittorrent Web API Client
==========================Python client implementation for qBittorrent Web API
[![GitHub Workflow Status (branch)](https://img.shields.io/github/checks-status/rmartin16/qbittorrent-api/main?style=flat-square)](https://github.com/rmartin16/qbittorrent-api/actions?query=branch%3Amain) [![Codecov branch](https://img.shields.io/codecov/c/gh/rmartin16/qbittorrent-api/main?style=flat-square)](https://app.codecov.io/gh/rmartin16/qbittorrent-api) [![PyPI](https://img.shields.io/pypi/v/qbittorrent-api?style=flat-square)](https://pypi.org/project/qbittorrent-api/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/qbittorrent-api?style=flat-square)](https://pypi.org/project/qbittorrent-api/)
Currently supports qBittorrent [v5.0.0](https://github.com/qbittorrent/qBittorrent/releases/tag/release-5.0.0) (Web API v2.11.2) released on Sept 29, 2024.
User Guide and API Reference available on [Read the Docs](https://qbittorrent-api.readthedocs.io/).
Features
------------
* The entire qBittorrent [Web API](https://github.com/qbittorrent/qBittorrent/wiki/WebUI-API-(qBittorrent-4.1)) is implemented.
* qBittorrent version checking for an endpoint's existence/features is automatically handled.
* If the authentication cookie expires, a new one is automatically requested in line with any API call.Installation
------------
Install via pip from [PyPI](https://pypi.org/project/qbittorrent-api/)
```bash
python -m pip install qbittorrent-api
```Getting Started
---------------
```python
import qbittorrentapi# instantiate a Client using the appropriate WebUI configuration
conn_info = dict(
host="localhost",
port=8080,
username="admin",
password="adminadmin",
)
qbt_client = qbittorrentapi.Client(**conn_info)# the Client will automatically acquire/maintain a logged-in state
# in line with any request. therefore, this is not strictly necessary;
# however, you may want to test the provided login credentials.
try:
qbt_client.auth_log_in()
except qbittorrentapi.LoginFailed as e:
print(e)# if the Client will not be long-lived or many Clients may be created
# in a relatively short amount of time, be sure to log out:
qbt_client.auth_log_out()# or use a context manager:
with qbittorrentapi.Client(**conn_info) as qbt_client:
if qbt_client.torrents_add(urls="...") != "Ok.":
raise Exception("Failed to add torrent.")# 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})")# stop all torrents
qbt_client.torrents.stop.all()
```