This program can help you to remove your torrents. Now you don't need to worry about your disk space - according to your strategies, the program will check each torrent if it satisfies the remove condition; If so, delete it automatically.
This program supports qBittorrent/Transmission/μTorrent. If you like, star it ✨ :)
Readme version in other languages: 简体中文.
- Python 2.7 or Python 3
That's all. It's a simple but smart program.
pip install autoremove-torrents
or
git clone https://github.com/jerrymakesjelly/autoremove-torrents.git cd autoremove-torrents python3 setup.py install
In order to satisfactory your needs, you have to learn how to write a configuration file.
You can put the configuration file anywhere on your disk. The autoremove-torrents looks for config.yml
in the Shell's current working directory:
vim ./config.yml
The grammar is quite easy, for example:
my_task: client: qbittorrent host: http://127.0.0.1 username: admin password: adminadmin strategies: my_strategy: categories: - IPT remove: seeding_time > 1209600 or ratio > 1 delete_data: true
The program will delete those torrents whose categories are IPT
, seeding time is above 1209600 seconds or ratio is greater than 1. Visit Wiki to learn more.
autoremove-torrents
If you just want to see which torrents can be removed but don't want to really remove them, use --view
command line argument.
If you want to check whether there is any torrent can be removed every 15 minutes, the crontab can help you. Look at the example:
crontab -e
And then, add a line at the end of the file (please confirm the path of the autoremove-torrents and your program):
*/15 * * * * /usr/bin/autoremove-torrents --conf=/home/jerrymakesjelly/autoremove-torrents/config.yml --log=/home/jerrymakesjelly/autoremove-torrents/logs
The --conf
indicates the path to the configuration file.
The --log
argument specifies the path to store the log files (Must be existed).
Tue, 17 Sep 2019: Version 1.4.6.
- Fix problem that the tracker filter needs to specific ports when the tracker URL includes port number. (#38)
Thu, 6 Jun 2019: Version 1.4.5.
- Added status StalledUpload and StalledDownload. (#34)
Wed, 22 May 2019: Version 1.4.4.
- Fixed a bug that when condition seed_size / maximum_number is used together with condtion ratio / create_time / seeding_time, the task will fail. (#33)
- New feature: if the content of filter has only one line, now it is allowed to write down directly without using list.
Sun, 19 May 2019: Version 1.4.3.
- Supported Python 2.7. (#29)
- Stopped supporting Python 3.4. (kennethreitz/requests#5092)
Mon, 13 May 2019: Version 1.4.2.
- Fixed missing parser files. (#32)
- Fixed association of operators. (#32) Now the operator and and or are guaranteed to be left-associative.
Mon, 6 May 2019: Version 1.4.1.
- Fixed missing dependency: ply.
- Fixed the warning of duplicate definition in condition remove.
Mon, 6 May 2019: Updated Wiki.
- Added the description of remove condition into Simplified-Chinese Wiki.
Wed, 1 May 2019: Version 1.4.0.
- Removed torrent status restriction in
seeding_time
andratio
condition (#19). - Before this version,
seeding_time
andratio
condition will only remove those torrents whose status are seeding. We set this restriction to provide a method for users to avoid a torrent being removed by changing its status (e.g. pause seeding). - But now we have a
status
filter, this restriction becomes unnecessary, and its behavior may be different from users expectation.
- Before this version,
- Removed torrent status restriction in
- Supported custom remove expressions (#15).
- Now we can write the condition that we want directly and clearly, e.g.
remove: ratio > 1
. - Composite condition expressions are also supported, e.g.
remove: (seeding_time < 86400 and ratio > 1) or (seeding_time > 86400 and ratio > 3)
. Visit Wiki to learn more. - The old remove conditions are still available.
- Now we can write the condition that we want directly and clearly, e.g.
Wed, 17 Apr 2019: Version 1.3.0.
- Fixed bug: Program gets stuck when there are a lot of torrents in qBittorrent client (Issue #22).
- Fixed bug: Duplicated logging in status filter.
- Log system was updated:
- Log path can be specified (Use
--log
argument, e.g.--log=/home/jerrymakesjelly/logs
) (Issue #23). - Logs are stored in different files by day (Format:
autoremove.%Y-%m-%d.log
).
- Log path can be specified (Use
- Changed the word
seed
totorrent
(Issue #25). - Removed uncessary debug messages.
Mon, 10 Jan 2019: Version 1.2.5.
- Fixed bug: Incorrect number of torrents in multiple strategies (Issue #10, thanks to @momokoo for the report and PR).
- Fixed bug: Incorrect number of torrents in qBittorrent (Issue #13).
Thu, 31 May 2018: Version 1.2.4.
- Fixed startup failure.
Wed, 30 May 2018: Version 1.2.3. Added new features.
- Allowed to use environment variables to specify host, username and password.
- Allowed username and password to be empty (or one of them is empty) to log in a WebUI without username and/or password.
- Now the program won't quit directly when a task goes failed.
Sun, 27 May 2018: Version 1.2.2. Added new features 😄
- Added new filter: Torrent Status
- Added new condition: Maximum number of torrents
Sat, 26 May 2018: Version 1.2.1. Fixed issue in setup.py.
Sat, 26 May 2018: Version 1.2.0. Refactoring was completed, and was published to PyPI.
- New features will be added soon.
- Now we can install it via pip.
Mon, 14 May 2018: Version 1.1.0. Created setup.py.
You can now use the autoremove-torrents command directly instead of python3 main.py.
Wed, 28 Mar 2018: (Correct document) The delete_data field shouldn't be indented.
Thu, 22 Mar 2018: First version
Depend on users' feedback.
- Support Deluge and rtorrent in the future
- Add remove condition: Disk free space
- Add remove condition: Max/Min average UL/DL speed
If you have any problem, please submit issues.