qBittorrent Tracker 批量修改教程
categories: 技术 tags: NASqBittorrent Tracker 批量修改教程
不同于 rTorrent,μTorrent,Deluge,Transmission 等 PT 客户端,Qbittorrent 无法批量修改种子的 tracker,这样如果重置了自己的 passkey 或者想更改 tracker 和修改 torrent 来实现直接大批量辅种就比较繁琐了。因此这里给大家带来一个 qbittorrent tracker 批量修改教程。
一.qbittorrent 数据文件分析
其数据文件一般位于:
Windows:%localappdata%\qBittorrent
类 Unix:~/.local/share/qBittorrent
其中的子文件夹 BT_backup 就是 qBittorrent 的关键数据文件,BT_backup 文件夹里包括 .torrent 和 .fastresume 文件,并且一一对应,torrent 和.fastresume 文件的命名都根据 torrent 的 info.hash 计算出来的。比如 1e515db6d6e4759bcdb45b13d2b4f6c4389ba066.torrent 和 1e515db6d6e4759bcdb45b13d2b4f6c4389ba066.fastresume,这俩个文件对应,名字名字来源于他们的 info.hash 值 1e515db6d6e4759bcdb45b13d2b4f6c4389ba066。
.torrent
.torrent 文件结构等分析不再细说,之前有说过,编码格式为 BEncode,想具体了解请参考【高级辅种教程】教你编辑修改 torrent 文件](https://github.com/ylxb2016/PT-help)
.fastresume
.fastresume 包含着绝大部分的重要配置信息,比如添加任务时间,活跃时间,DHT 是否关闭,限速,保存文件夹位置,tracker 服务器地址等等。
通过修改.fastresume 可以实现很多功能,比如更换 passkey,比如修改文件位置等等。
我们可以用 BEncode Editor 和 torrent-file-editor 打开这个文件,如下图所示,就是 tracker 的地址,修改这里就可以更换你的 passkey。

PS:关于 BEncode
- PHP 中 sandfoxme/bencode,
- Python 的有 utdemir/bencoder、jcul/bencode、fuzeman/bencode.py
- utdemir/bencoder,其github页面https://github.com/utdemir/bencoder
- BEncode 编码方式以及 torrent 文件的一些内容 - Leo Chin - 博客园 https://www.cnblogs.com/hnrainll/archive/2011/07/21/2112793.html
- Bencode 编码 - 简书 https://www.jianshu.com/p/c26de7a04c38
- Bencode 编码解析之流程图 - Lixlee 的专栏 - CSDN 博客 https://blog.csdn.net/lixeb/article/details/45178033
https://en.wikipedia.org/wiki/Bencode
二。修改 tracker 的方法。
不算 qBittorrent 在界面里直接修改单个 tracker 的话,方法有以下 5 种,原理其实都一样。
- 文本编辑器
- sed 等文本编辑命令行工具
- tracker_replace.py 脚本
- BEncode Editor 和 torrent-file-editor 工具
- qbittorrent webui api
注意:以下所有操作前,请先备份好文件,复制出来后再进行修改,以防自己操作不慎,酿成大错。 另外,在各个操作系统下,这些文件是一样的,你完全可以从 linux 下复制出来,然后在 Windows 下处理好了,再还原回去;或者相反的操作。
方法一。文本编辑器——单个修改
.fastresume 也可以使用普通的记事本打开,比如我们打开 25ea1b4c79dc599233333a10852746fa93d734e2.fastresume 文件,如下所示,因为其包含了一些特殊的编码,所以文本文档并不能全部显示出来,给人一种乱码的感觉,这个和上图打开是一一对应的,只不过这是原始数据,没有软件替你解析各个含义了,想知道每一个的含义,请仔细阅读说明文档。我们这里只简单说出我们要修改的内容的位置和注意事项。
很容易看到trackersll15:http://test.com就是我们需要修改的地方,不过注意的是我们修改的时候务必小心,不要把这里的文件结构给弄坏了,这里的每一个字符都是有特色含义和定义的,我们不可以丢掉:trackers 表示 trackers 服务器地址,ll 表示还是双层 list 结构,15 表示http://test.com是 15 个字符,这里的:必不可少,这里http://test.com就是我们的 tracker,一般来说 PT 的 tracker 会包含你的 passkey 的,这里我去掉了。
所以如果我们要修改 passkey 的话,需要同时修改 2 个地方,一个是这里的 15,另外才是我们真正想修改的 tracker 地址http://test.com。如果我们要修改为https://please.passthepopcorn.me/1234567898765432123456789/announce这个包含 67 个字符的 tracker,我们就要把trackersll15:http://test.com修改为trackersll67:https://please.passthepopcorn.me/1234567898765432123456789/announce

方法二.sed 等文本编辑命令行工具——批量修改
方法其实就是后边的原理所在,其他的方法也都是基于此进行的修改。
想批量修改 tracker 甚至修改保种路径,就可以使用命令行工具来批量修改,
比如可以使用 sed 命令行工具,不论是 linux 还是 Windows 下,我们都可以使用这款神器进行修改,
我们使用如下的命令就可以实现 tracker 由 15 字符http://test\.com向 16 字符http://tjupt.org的修改。
sed -i 's!15:http://test\.com!16:http://tjupt.org!g' *.fastresume
注意这里的http://test\.com,因为这个.会和正则表达式里.冲突,所以要进行转义\
sed -i 's!d7zdghu......014ka9!cf24gg7b......e842f!g' *.fastresume
只替换 passkey 可以像这样
方法三.tracker_replace.py 脚本——批量修改
thanks https://github.com/Stat1cV01D/bt_trackers_replacer and golf7@Orpheus 这是一个基于 python 的脚本,请按照 python 3.5 以上版本。
将我上传的文件解压后,把 BT_backup 文件夹放与其中,路径中最好不要包含中文,请勿包含空格。
目录结构如下:
QBITTORRENT
│ libcurl.dll
│ libeay32.dll
│ ssleay32.dll
│ tracker_replace.py
│ transmission-edit.exe
│ zlib.dll│
├─BT_backup
用法:
python tracker_replace.py "old_tracker_url" "new_tracker_url"
比如我们要把http://test.com修改为http://tjupt.org,那么在 cmd 或者 Poweshell 中输入
python tracker_replace.py http://test.com http://tjupt.org
这样就会把 BT_backup 文件夹中的.torrent 和.fastresume 文件的 tracker 全部修改。
默认情况下change_torrent = 1,
表示同时修改 torrent,如果你不准备修改.torrent 的 tracker 或者是在非 Windows 环境下使用此脚本,请修改为change_torrent = 0 。
方法四.BEncode Editor 和 torrent-file-editor 工具——单个修改
我们使用 BEncode Editor 和 torrent-file-editor 工具直接打开.torrent 和.fastresume 文件,然后把 tracker 直接打开修改为你想修改的即可。

方法五。通过 qbittorrent webui api 来实现。
qbittorrent webui api 功能很强大,qbittorrent webui 能实现的功能他都可以通过命令行来实现, qbittorrent webui api 的说明文档较为详细, 具体可见: https://github.com/qbittorrent/qBittorrent/wiki/Web-API-Documentation
需要注意的是,通过 qbittorrent webui api 操作前,务必先获得登录用的 cookies,然后批量使用 Edit trackers 函数就可以了。 举例案例可参考 rachpt 大佬写的一个 AutoSeed 脚本里的 qbittorrent 设置,这里我暂时不准备展开了。 https://github.com/rachpt/AutoSeed/blob/master/qbittorrent.sh
综上,可以实现批量修改 tracker 的办法有:sed、tracker_replace.py 脚本、qbittorrent webui api。