This tool will help manage tedious tasks in qBittorrent and automate them. Tag, categorize, remove Orphaned data, remove unregistered torrents and much much more.
Go to file
bakerboy448 87ffdda8c6
Release 4.1.8 (#645)
* 4.1.8-develop1

* Bump humanize from 4.9.0 to 4.10.0 (#603)

Bumps [humanize](https://github.com/python-humanize/humanize) from 4.9.0 to 4.10.0.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.9.0...4.10.0)

---
updated-dependencies:
- dependency-name: humanize
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Print the schedule and delay before starting the sleep (#606)

* Bump croniter from 2.0.5 to 2.0.7 (#607)

Bumps [croniter](https://github.com/kiorky/croniter) from 2.0.5 to 2.0.7.
- [Changelog](https://github.com/kiorky/croniter/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/kiorky/croniter/compare/2.0.5...2.0.7)

---
updated-dependencies:
- dependency-name: croniter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump qbittorrent-api from 2024.5.63 to 2024.7.64 (#611)

Bumps [qbittorrent-api](https://github.com/rmartin16/qbittorrent-api) from 2024.5.63 to 2024.7.64.
- [Release notes](https://github.com/rmartin16/qbittorrent-api/releases)
- [Changelog](https://github.com/rmartin16/qbittorrent-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rmartin16/qbittorrent-api/compare/v2024.5.63...v2024.7.64)

---
updated-dependencies:
- dependency-name: qbittorrent-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Check for symlinks prior to counting file as a hardlink (#609)

* Bump croniter from 2.0.7 to 3.0.1 (#617)

* Update SUPPORTED_VERSIONS.json (#618)

* Update SUPPORTED_VERSIONS.json (#612)

Co-authored-by: bobokun <12660469+bobokun@users.noreply.github.com>

* Bump croniter from 3.0.1 to 3.0.3 (#621)

Bumps [croniter](https://github.com/kiorky/croniter) from 3.0.1 to 3.0.3.
- [Changelog](https://github.com/kiorky/croniter/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/kiorky/croniter/compare/3.0.1...3.0.3)

---
updated-dependencies:
- dependency-name: croniter
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pre-commit from 3.7.1 to 3.8.0 (#620)

Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.7.1 to 3.8.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: bump required python version to 3.9.0+ (#623)

* Typo fix in `  docs/Config-Setup.md` (#627)

* Typo fix in `config.yml.sample` (#626)

* Bump flake8 from 7.1.0 to 7.1.1 (#628)

Bumps [flake8](https://github.com/pycqa/flake8) from 7.1.0 to 7.1.1.
- [Commits](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)

---
updated-dependencies:
- dependency-name: flake8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(docs): Sync wiki to docs [skip-cd]

* Bump qbittorrent-api from 2024.7.64 to 2024.8.65 (#637)

Bumps [qbittorrent-api](https://github.com/rmartin16/qbittorrent-api) from 2024.7.64 to 2024.8.65.
- [Release notes](https://github.com/rmartin16/qbittorrent-api/releases)
- [Changelog](https://github.com/rmartin16/qbittorrent-api/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rmartin16/qbittorrent-api/compare/v2024.7.64...v2024.8.65)

---
updated-dependencies:
- dependency-name: qbittorrent-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update SUPPORTED_VERSIONS.json (#639)

* Extend logging to explain why torrent files were not deleted. (#640)

* Extend logging to explain why torrent files were not deleted.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* update tox

* Add force_auto_tmm_ignore_tags feature (#634)

* Add force_auto_tmm_ignore_tags feature to qbittorrent module
This commit introduces a new configuration option 'force_auto_tmm_ignore_tags' that allows users to specify tags which will prevent the force_auto_tmm feature from being applied to that torrent.

Changes:

qbittorrent.py:
Modified the get_torrent_info method in the Qbt class
Added a check for matching tags to ignore when applying force_auto_tmm

config.py:
Added 'force_auto_tmm_ignore_tags' to the settings dictionary
Implemented check_for_attribute method call to load the new setting from config.yml

config.yml:
Added 'force_auto_tmm_ignore_tags' to the settings section
Included example tags 'cross-seed' and 'Upload' as default values to ignore

* remove extra spacing between lines.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fix line length to adhere to flake8

* change log output for force_auto_tmm to multiline comment to adhere to flake8

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add comment explaining logic for ignoring force_auto_tmm using tags.

* Add force_auto_tmm_ignore_tags feature to qbittorrent module
This commit introduces a new configuration option 'force_auto_tmm_ignore_tags' that allows users to specify tags which will prevent the force_auto_tmm feature from being applied to that torrent.

Changes:

qbittorrent.py:
Modified the get_torrent_info method in the Qbt class
Added a check for matching tags to ignore when applying force_auto_tmm

config.py:
Added 'force_auto_tmm_ignore_tags' to the settings dictionary
Implemented check_for_attribute method call to load the new setting from config.yml

config.yml:
Added 'force_auto_tmm_ignore_tags' to the settings section
Included example tags 'cross-seed' and 'Upload' as default values to ignore

remove extra spacing between lines.

fix line length to adhere to flake8

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

change log output for force_auto_tmm to multiline comment to adhere to flake8

[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Add comment explaining logic for ignoring force_auto_tmm using tags.

* fixed text formatting so its displayed properly when script is run

* remove f-string

---------

Co-authored-by: TJZine <tzine@student.bridgew.edu>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: bobokun <12660469+bobokun@users.noreply.github.com>

* Bump peter-evans/create-pull-request from 6 to 7 (#642)

Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 6 to 7.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v6...v7)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 4.1.8

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: bobokun <jon.cy.lee98@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ineednewpajamas <73252768+ineednewpajamas@users.noreply.github.com>
Co-authored-by: Nicholas Sereni <glicholas@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: bobokun <12660469+bobokun@users.noreply.github.com>
Co-authored-by: James Tufarelli <8152401+Minituff@users.noreply.github.com>
Co-authored-by: Actionbot <actions@github.com>
Co-authored-by: darkeclipse <5069005+Dark3clipse@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tristan Zine <72631199+TJZine@users.noreply.github.com>
Co-authored-by: TJZine <tzine@student.bridgew.edu>
2024-09-05 20:08:15 -04:00
.github Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
config Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
docs Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
modules Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
scripts 4.1.7 (#602) 2024-07-05 16:55:11 -04:00
.dockerignore more pre-commits and makefile 2022-11-01 11:24:13 -04:00
.flake8 pre-commit updates 2022-12-03 09:06:01 -05:00
.gitignore more pre-commits and makefile 2022-11-01 11:24:13 -04:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#630) 2024-08-27 19:48:00 -04:00
activate.sh more pre-commits and makefile 2022-11-01 11:24:13 -04:00
CHANGELOG Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
deactivate.sh more pre-commits and makefile 2022-11-01 11:24:13 -04:00
Dockerfile Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
LICENSE tox and pre-commit formatting 2022-10-29 11:19:09 -04:00
Makefile black formatting + precommit updates 2023-06-11 15:54:52 -04:00
qbit_manage.py Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
qbm_logo.png Add new logo 2021-11-30 15:02:48 -05:00
README.md Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
requirements-dev.txt Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
requirements.txt Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
setup.py fix pre-commit and update requirements 2024-02-10 11:15:41 -05:00
SUPPORTED_VERSIONS.json Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
tox.ini Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00
VERSION Release 4.1.8 (#645) 2024-09-05 20:08:15 -04:00

qBit Manage

GitHub release (latest by date) GitHub commits since latest release (by SemVer) Docker Image Version (latest semver) Github Workflow Status pre-commit.ci status Ghcr packages Docker Pulls Sponsor or Donate

This is a program used to manage your qBittorrent instance such as:

  • Tag torrents based on tracker URLs
  • Apply category based on save_path to uncategorized torrents in category's save_path
  • Change categories based on current category (cat_change)
  • Remove unregistered torrents (delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent)
  • Automatically add cross-seed torrents in paused state. *Note: cross-seed now allows for torrent injections directly to qBit, making this feature rarely needed/used.*
  • Recheck paused torrents sorted by lowest size and resume if completed
  • Remove orphaned files from your root directory that are not referenced by qBittorrent
  • Tag any torrents that have no hard links outside the root folder (for multi-file torrents the largest file is used)
  • Apply share limits based on groups filtered by tags/categories and allows optional cleanup to delete these torrents and contents based on maximum ratio and/or time seeded. Additionally allows for a minimum seed time to ensure tracker rules are respected and minimum number of seeders to keep torrents alive.
  • RecycleBin function to move files into a RecycleBin folder instead of deleting the data directly when deleting a torrent
  • Built-in scheduler to run the script every x minutes. (Can use --run command to run without the scheduler)
  • Webhook notifications with Notifiarr and Apprise API integration

Supported Qbittorrent Versions

We rely on qbittorrent-api to interact with Qbittorrent.

Generally expect new releases of Qbittorrent to not immediately be supported. Support CANNOT be added until qbittorrent-api adds support gor the version. Any material changed and impact must then be assessed prior to Qbit Manage supporting it.

Master

master - qBittorrent version

master - qbittorrent-api version

Develop

develop - qBittorrent version

develop - qbittorrent-api version

Getting Started

Check out the wiki for installation help

  1. Install qbit_manage either by installing Python 3.9.0+ on the localhost and following the Local Installation Guide or by installing Docker and following the Docker Installation Guide or the unRAID Installation Guide.
  2. Once installed, you have to set up your Configuration by create a Configuration File filled with all your values to connect to your qBittorrent instance.
  3. Please refer to the list of Commands that can be used with this tool.

Usage

To run the script in an interactive terminal with a list of possible commands run:

python qbit_manage.py -h

Support

  • If you have any questions or require support please join the Notifiarr Discord and post your question under the qbit-manage channel.
  • If you're getting an Error or have an Enhancement post in the Issues.
  • If you have a configuration question post in the Discussions.
  • Pull Request are welcome but please submit them to the develop branch.