Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

2025-05-06 15:27:00 3点赞 33收藏 0评论

嘿,这里是「青柠炸机店」!各位代码大拿、技术大牛们,今天咱们来聊点高阶的、酷炫的!如果你已经掌握了编程的奥秘,那么恭喜你👏,你将解锁一个更NB的玩法——利用你的代码能力,轻松获取PT资源(对于编程高手来说,这简直是小菜一碟!),再结合Qbittorrent强大的API接口,你将能够自主控制资源的下载、管理,实现一系列自动化操作,让你的下载体验飞升到另一个层次!想知道如何用代码玩转Qbittorrent,实现PT资源的全自动炼化吗?耐心的看完这篇教程吧,代码会比较多呦 ‼️

完整Qbittorrent 文章,看这里Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

Qbittorrent 这篇文章把全部的知识点都拍给你,能否炼化就看你了Qbittorrent 这篇文章把全部的知识点都拍给你,能否炼化就看你了悄悄的告诉你:三连+关注可以加速炼化→准备好了吗?小飞棍,出发喽.......


开始

安装

Python 安装 QbittorrentUtil 包

pip install qbittorrent-api

API 概览

首先,Web API 端点被组织到八个命名空间中。

  • 验证 (auth):使用用户名和密码登录Qb。

  • 应用 (Application):连接Qb操作。

  • 日志 (log):获取打印Qb的日志信息。

  • 同步数据 ( sync):同步数据。

  • 下载设置 (transfer):控制种子下载速度等。

  • 种子管理 ( torrents):获取PT种子的信息,对种子进行新增、删除、获取信息等一系列操作。

  • RSS订阅(rss):操作RSS订阅。

  • 搜索 (search):可以使用接口需要安装插件,没有机场基本用不了。

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

其中最常用的就是 Applicationtorrents 两个API,下边来详细介绍下


Application

连接并登录Qb

python代码如下Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

import qbittorrentapi # 使用WebUI配置信息实例化一个客户端 conn_info = dict( host="http://192.168.1.101", port=6010, username="admin", password="123456", ) qbt_client = qbittorrentapi.Client(**conn_info) # 客户端会在每次请求时自动保持登录状态, try: qbt_client.auth_log_in() except qbittorrentapi.LoginFailed as e: print(e) # 如果客户端不会长期存在,或者短时间内会创建多个客户端, # 请务必在使用后登出: qbt_client.auth_log_out() # 显示qBittorrent的信息 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}")

代码运行效果:

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

torrents

qbt_client 代码使用上面 连接并登录Qb 中的内容即可。

种子文件下载

方式一:将 torrent 文件下载到本地后,再使用API进行下载,代码如下:Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

# torrent 文件存储路径 torrent_file_path = "你电脑中的文件路径[HDHome].Star.Trek.Beyond.2016.BluRay.1080p.AVC.Atmos.TrueHD7.1-HDHome.torrent" # 将文件添加到Qb进行下载 qbt_client.torrents_add(torrent_files=str(torrent_file_path))

方式二:直接使用 torrent 文件URL进行下载,并对种子的上传和下载进行速度限制,代码如下Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

# cookie是PT网站的cookie,50 * 1024 是限速50Kb/s的意思 qbt_client.torrents_add(urls="https://hdhome.org/download.php?id=29970", cookie="", upload_limit=50 * 1024, download_limit=50 * 1024)Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

获取种子信息

使用API也可以非常方便的获取到 Qbittorrent 中的种子信息,代码如下:Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

# 获取全部种子 for torrent in qbt_client.torrents_info(): # 获取种子的信息 print(f"种子名称: {torrent.name}, 下载速度限制: {torrent.dl_limit / 1024} kb/s ") # 获取种子状态是 - 下载中的,状态见下一节 for torrent in qbt_client.torrents_info(status_filter="downloading"): print(torrent) # 获取种子的优先级 print(f"种子名称: {torrent.name}, 下载速度限制: {torrent.dl_limit / 1024} kb/s ")

输出结果:

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

可以看到,种子的下载速度限制确实是我上面设置的 50Kb/s。

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化 附录:全部返回信息和解释

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

获取种子状态

获取指定种子的状态,需要使用到种子在Qb中的hash值,每一个种子都有一个唯一的哈希值,获取方式如下️:Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

for torrent in qbt_client.torrents_info(): # 获取种子的哈希值 print(f"种子HASH值是: {torrent.hash}")

获取到哈希值后,我们就可以对单个种子进行一系列操作了,如果获取种子的状态,比如,某一个种子的哈希值是 c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b 代码如下:Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

qbt_client.torrents_properties(torrent_hash = 'c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b')

获取到的状态表如下所示:

Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化

启动和暂停下载

# 启动指定哈希值的种子的下载 qbt_client.torrents_start(torrent_hashes='c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b') # 停止指定哈希值的种子的下载 qbt_client.torrents_stop(torrent_hashes='c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b') # 启动全部下载任务 qbt_client.torrents.start.all() # 停止全部下载任务 qbt_client.torrents.pause.all()

其它操作

# 删除指定任务和文件 qbt_client.torrents_delete(delete_files=True, torrent_hashes='c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b') # 删除全部任务 qbt_client.torrents.delete() # torrent的跟踪器 trackers = self.qbt_client.torrents_trackers(torrent_hash='c9c2f13c6941f74c6f16d4132ee19a6bcd8a824b') for tracker in trackers: if tracker.status == 2: print(f"当前种子下载者数量:{tracker.num_leeches},已完成下载的次数:{tracker.num_downloaded}") property = self.qbt_client.torrents_properties(torrent_hash=torrent.hash) print(f"种子的连接数:{property.nb_connections}, 上传量:{bytes_to_gb(property.total_uploaded)}G ," f"上传速度:{bytes_to_gb(property.up_speed)} G/s,平均上传速度:{bytes_to_gb(property.up_speed_avg)} G/s")


写在最后

看到这里的应该都是对编程感兴趣的朋友了,创作不易Qbittorrent - Api接口使用教程,全自动管理PT资源,速速炼化,来个 三连 + 关注 支持一下呗。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
33
扫一下,分享更方便,购买更轻松