收起左侧

qBittorrent通过Python脚本实现批量下载

0
回复
159
查看
[ 复制链接 ]

3

主题

6

回帖

0

牛值

江湖小虾

用 NAS 下载磁力链接或种子时,最烦的就是批量下载全堆一个文件夹里,文件命名乱还不好找。研究了好久,终于搞定了用 qBittorrent+Python 脚本的方法,每个链接 / 种子都能自动下到指定文件夹

先明确前提

我的NAS,使用的是应用商店里的 qBittorrent,端口是 192.168.10.175:8085(你们换成自己的 NAS IP 和端口)。核心思路就是:用 Python 脚本读提前准备好的链接 / 种子列表,再通过 qBittorrent 的远程功能,批量添加任务并指定各自的下载文件夹。

第一步:qBittorrent 先做 3 个关键设置

打开浏览器,输入你的 NAS IP + 端口(比如我是http://192.168.10.175:8085),登录后按下面来:

  1. 启用远程访问:进 Tools>Options>Web UI,勾选 “Enable the Web UI”,设置用户名和密码(脚本里要用到,别忘)。
  2. 权限设置:IP 白名单可以留空(局域网用没问题),如果脚本直接在 NAS 上跑,勾选 “Bypass authentication for clients on localhost” 更方便。
  3. 文件夹权限:用 NAS 文件站找到你要存下载文件的目录(比如我是 /vol1/1000/Pan1),右键设置读写权限,确保 qBittorrent 能访问。

设置完保存,重启下 qBittorrent 更稳妥。

第二步:检查并安装 Python 库

脚本需要一个叫 qbittorrent-api 的 Python 库,步骤很简单:

  1. 用 SSH 登录 NAS(比如用 PuTTY,输入 ssh admin@你的 NAS IP,密码是 NAS 登录密码)。
  2. 先检查有没有安装:输入python3 -c "import qbittorrentapi; print('已安装')",能输出 “已安装” 就不用管了;报错就是没装。
  3. 安装推荐用虚拟环境(避免冲突):
  • 先进入要放脚本的文件夹:cd /vol1/1000/tools/qbittorrent(路径换自己的)
  • 创建虚拟环境:python3 -m venv qb_venv
  • 激活环境:source /vol1/1000/tools/qbittorrent/qb_venv/bin/activate
  • 安装库:pip install qbittorrent-api

以后运行脚本,都要先激活这个虚拟环境。

第三步:准备数据文件

不管是磁力链接还是种子,都要先做一个列表文件,格式超简单:

  1. 新建一个 TXT 文件(比如磁力链接用 magnets.txt,种子用 torrents_list.txt),放在 NAS 的某个路径(我是 /vol1/1000/Pan1/)。
  2. 每行写 “链接 / 种子路径,下载文件夹路径”,用逗号分隔,比如:
  • 磁力链接:magnet:?xt=urn:btih:abc123...,/vol1/1000/downloads/folder1
  • 种子文件:/vol1/1000/Pan1/torrents/movie1.torrent,/vol1/1000/downloads/movie1
  1. 注意:路径一定要写 NAS 的绝对路径(比如 /vol1/xxx),下载文件夹不用手动建,脚本会自动创建。

第四步:运行脚本(分两种情况)

情况 1:批量下磁力链接

把下面的脚本保存为 qbjiaoben.py,放在 /vol1/1000/tools/(路径换自己的):

from qbittorrentapi import Client as QBTorrentAPI
import csv

# 改成你的qBittorrent设置
HOST = "http://192.168.10.175:8085"
USERNAME = "admin"  # 你的用户名
PASSWORD = "admin"  # 你的密码

# 改成你的数据文件路径
INPUT_FILE = "/vol1/1000/Pan1/magnets.txt"

# 连接qBittorrent并添加任务
client = QBTorrentAPI(host=HOST, username=USERNAME, password=PASSWORD)
with open(INPUT_FILE, 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        if len(row) >= 2:
            magnet = row[0].strip()
            save_path = row[1].strip()
            print(f"添加: {magnet[:50]}... 到 {save_path}")
            client.torrents_add(urls=[magnet], save_path=save_path)

print("批量添加完成!")

运行命令:source /vol1/1000/tools/qbittorrent/qb_venv/bin/activate && python /vol1/1000/tools/qbjiaoben.py

情况 2:批量下种子文件

脚本稍微改一下,保存为 qbjiaoben_torrents.py:

from qbittorrentapi import Client as QBTorrentAPI
import csv
import os

# 改成你的qBittorrent设置
HOST = "http://192.168.10.175:8085"
USERNAME = "admin"  # 你的用户名
PASSWORD = "admin"  # 你的密码

# 改成你的种子列表文件路径
INPUT_FILE = "/vol1/1000/Pan1/torrents_list.txt"

# 连接qBittorrent并添加任务
client = QBTorrentAPI(host=HOST, username=USERNAME, password=PASSWORD)
with open(INPUT_FILE, 'r') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        if len(row) >= 2:
            torrent_path = row[0].strip()
            save_path = row[1].strip()
            if not os.path.exists(torrent_path):
                print(f"警告: 种子文件不存在 - {torrent_path}")
                continue
            print(f"添加种子: {os.path.basename(torrent_path)} 到 {save_path}")
            client.torrents_add(torrent_files=torrent_path, save_path=save_path)

print("批量添加完成!")

运行命令和磁力链接一样,只是把脚本名换成 qbjiaoben_torrents.py。

最后几个小提醒

  1. 第一次用先测试 2-3 个链接 / 种子,确认文件夹创建正常、能下载再批量弄。
  2. 如果报错 “连接拒绝”,检查 qBittorrent 的端口和登录密码,还有 NAS 防火墙是不是挡了。
  3. 用完可以输入deactivate退出虚拟环境,安全不占资源。

这个方法不用手动一个个添加任务,还能按自己的需求分类文件夹。

我通常用磁力链接下载,我觉得磁力链接更好用。

使用的时候SSH进飞牛NAS,进入虚拟环境并运行脚本,编辑好数据文件,一行命令执行即可。

source /vol1/1000/tools/qbittorrent/qb_venv/bin/activate && python /vol1/1000/tools/qbjiaoben.py# 路径替换为你创建虚拟环境的实际位置。
deactivate # 退出虚拟环境
收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则