用 NAS 下载磁力链接或种子时,最烦的就是批量下载全堆一个文件夹里,文件命名乱还不好找。研究了好久,终于搞定了用 qBittorrent+Python 脚本的方法,每个链接 / 种子都能自动下到指定文件夹
先明确前提
我的NAS,使用的是应用商店里的 qBittorrent,端口是 192.168.10.175:8085(你们换成自己的 NAS IP 和端口)。核心思路就是:用 Python 脚本读提前准备好的链接 / 种子列表,再通过 qBittorrent 的远程功能,批量添加任务并指定各自的下载文件夹。
第一步:qBittorrent 先做 3 个关键设置
打开浏览器,输入你的 NAS IP + 端口(比如我是http://192.168.10.175:8085),登录后按下面来:
- 启用远程访问:进 Tools>Options>Web UI,勾选 “Enable the Web UI”,设置用户名和密码(脚本里要用到,别忘)。
- 权限设置:IP 白名单可以留空(局域网用没问题),如果脚本直接在 NAS 上跑,勾选 “Bypass authentication for clients on localhost” 更方便。
- 文件夹权限:用 NAS 文件站找到你要存下载文件的目录(比如我是 /vol1/1000/Pan1),右键设置读写权限,确保 qBittorrent 能访问。
设置完保存,重启下 qBittorrent 更稳妥。
第二步:检查并安装 Python 库
脚本需要一个叫 qbittorrent-api 的 Python 库,步骤很简单:
- 用 SSH 登录 NAS(比如用 PuTTY,输入 ssh admin@你的 NAS IP,密码是 NAS 登录密码)。
- 先检查有没有安装:输入python3 -c "import qbittorrentapi; print('已安装')",能输出 “已安装” 就不用管了;报错就是没装。
- 安装推荐用虚拟环境(避免冲突):
- 先进入要放脚本的文件夹:cd /vol1/1000/tools/qbittorrent(路径换自己的)
- 创建虚拟环境:python3 -m venv qb_venv
- 激活环境:source /vol1/1000/tools/qbittorrent/qb_venv/bin/activate
- 安装库:pip install qbittorrent-api
以后运行脚本,都要先激活这个虚拟环境。
第三步:准备数据文件
不管是磁力链接还是种子,都要先做一个列表文件,格式超简单:
- 新建一个 TXT 文件(比如磁力链接用 magnets.txt,种子用 torrents_list.txt),放在 NAS 的某个路径(我是 /vol1/1000/Pan1/)。
- 每行写 “链接 / 种子路径,下载文件夹路径”,用逗号分隔,比如:
- 磁力链接:magnet:?xt=urn:btih:abc123...,/vol1/1000/downloads/folder1
- 种子文件:/vol1/1000/Pan1/torrents/movie1.torrent,/vol1/1000/downloads/movie1
- 注意:路径一定要写 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。
最后几个小提醒
- 第一次用先测试 2-3 个链接 / 种子,确认文件夹创建正常、能下载再批量弄。
- 如果报错 “连接拒绝”,检查 qBittorrent 的端口和登录密码,还有 NAS 防火墙是不是挡了。
- 用完可以输入deactivate退出虚拟环境,安全不占资源。
这个方法不用手动一个个添加任务,还能按自己的需求分类文件夹。
我通常用磁力链接下载,我觉得磁力链接更好用。
使用的时候SSH进飞牛NAS,进入虚拟环境并运行脚本,编辑好数据文件,一行命令执行即可。
source /vol1/1000/tools/qbittorrent/qb_venv/bin/activate && python /vol1/1000/tools/qbjiaoben.py# 路径替换为你创建虚拟环境的实际位置。
deactivate # 退出虚拟环境