Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/v1k45/python-qBittorrent
Python wrapper for qBittorrent Web API (for versions above v3.1.x)
https://github.com/v1k45/python-qBittorrent
api-client python qbittorrent torrent torrent-api
Last synced: about 1 month ago
JSON representation
Python wrapper for qBittorrent Web API (for versions above v3.1.x)
- Host: GitHub
- URL: https://github.com/v1k45/python-qBittorrent
- Owner: v1k45
- License: mit
- Created: 2015-12-25T08:22:38.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-06-21T15:34:35.000Z (6 months ago)
- Last Synced: 2024-09-02T01:41:30.479Z (3 months ago)
- Topics: api-client, python, qbittorrent, torrent, torrent-api
- Language: Python
- Size: 97.7 KB
- Stars: 246
- Watchers: 8
- Forks: 41
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - v1k45/python-qBittorrent - Python wrapper for qBittorrent Web API (for versions above v3.1.x) (Python)
README
# python-qBittorrent
[![Documentation Status](https://readthedocs.org/projects/python-qbittorrent/badge/?version=latest)](http://python-qbittorrent.readthedocs.org/en/latest/?badge=latest) [![image](https://badge.fury.io/py/python-qbittorrent.svg)](https://badge.fury.io/py/python-qbittorrent)
Python wrapper for qBittorrent Web API (for versions above 4.1, for
version below and above v3.1.x please use 0.3.1 version).For qBittorrent clients with earlier versions, use *mookfist\'s*
[python-qbittorrent](https://github.com/mookfist/python-qbittorrent).This wrapper is based on the methods described in [qBittorrent\'s
Official Web API
Documentation](https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation)Some methods are only supported in qBittorent\'s latest version (v3.3.1
when writing).It\'ll be best if you upgrade your client to a latest version.
## Installation
The best way is to install a stable release from PyPI:
$ pip install python-qbittorrent
You can also stay on the bleeding edge of the package:
$ git clone https://github.com/v1k45/python-qBittorrent.git
$ cd python-qBittorrent
$ python setup.py install## Prerequisite
qBittorent webUI must be enabled before using this API client. [How to
enable the qBittorrent Web
UI](https://github.com/lgallard/qBittorrent-Controller/wiki/How-to-enable-the-qBittorrent-Web-UI)## Quick usage guide
``` python
from qbittorrent import Clientqb = Client('http://127.0.0.1:8080/')
qb.login('admin', 'your-secret-password')
# not required when 'Bypass from localhost' setting is active.
# defaults to admin:admin.
# to use defaults, just do qb.login()torrents = qb.torrents()
for torrent in torrents:
print(torrent['name'])
```If you have enabled SSL and are using a self-signed certificate, you\'d
probably want to disable SSL verification. This can be done by passing
[verify=False]{.title-ref} while initializing the [Client]{.title-ref}.``` python
from qbittorrent import Clientqb = Client('https://127.0.0.1:8080/', verify=False)
```## API methods
### Getting torrents
- Get all `active` torrents:
qb.torrents()
- Filter torrents:
qb.torrents(filter='downloading', category='my category')
# This will return all torrents which are currently
# downloading and are labeled as ``my category``.qb.torrents(filter='paused', sort='ratio')
# This will return all paused torrents sorted by their Leech:Seed ratio.Refer qBittorents WEB API documentation for all possible filters.
### Downloading torrents
- Download torrents by link:
magnet_link = "magnet:?xt=urn:btih:e334ab9ddd91c10938a7....."
qb.download_from_link(magnet_link)# No matter the link is correct or not,
# method will always return empty JSON object.- Download multipe torrents by list of links:
link_list = [link1, link2, link3]
qb.download_from_link(link_list)- Downloading torrents by file:
torrent_file = open('my-torrent-file.torrent', 'rb')
qb.download_from_file(torrent_file)- Downloading multiple torrents by using files:
torrent_file_list = [open('1.torrent', 'rb'), open('2.torrent', 'rb')]
qb.download_from_file(torrent_file_list)- Specifing save path for downloads:
dl_path = '/home/user/Downloads/special-dir/'
qb.download_from_file(myfile, savepath=dl_path)# same for links.
qb.download_from_link(my_magnet_uri, savepath=dl_path)- Applying labels to downloads:
qb.download_from_file(myfile, label='secret-files ;) ')
# same for links.
qb.download_from_link(my_magnet_uri, category='anime')### Pause / Resume torrents
- Pausing/ Resuming all torrents:
qb.pause_all()
qb.resume_all()- Pausing/ Resuming a speicific torrent:
info_hash = 'e334ab9ddd....infohash....5d7fff526cb4'
qb.pause(info_hash)
qb.resume(info_hash)- Pausing/ Resuming multiple torrents:
info_hash_list = ['e334ab9ddd9......infohash......fff526cb4',
'c9dc36f46d9......infohash......90ebebc46',
'4c859243615......infohash......8b1f20108']qb.pause_multiple(info_hash_list)
qb.resume_multipe(info_hash_list)## Full API method documentation
All API methods of qBittorrent are mentioned @ [Read the
docs](http://python-qbittorrent.readthedocs.org/en/latest/?badge=latest)## 🤝 Maintainer
- [Vikas Yadav (v1k45)](https://www.github.com/v1k45/)
- [Antonio Goncalves (DEADSEC-SECURITY)](https://github.com/DEADSEC-SECURITY)Made with [contrib.rocks](https://contrib.rocks).
## TODO
- Write tests