qBittorrent + Server酱:下载完成自动推送微信通知

效果:种子下载完成后,qBittorrent 自动调用 Server酱 API,你的微信立刻收到包含种子名的通知。

前置条件

  • 一个 Server酱 SendKey(30 秒获取教程
  • qBittorrent 桌面端或 WebUI,版本含「运行外部程序」设置项
  • 系统已安装 curl(Linux/macOS 自带;Windows 10 1803+ 内置 curl.exe)
  • 如需推送到企业微信/钉钉/飞书群,参见通道说明

配置步骤

1. 复制命令模板

Linux / NAS:

/usr/bin/curl -sS -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" --data-urlencode "title=下载完成" --data-urlencode "desp=%N"

Windows(Win10 1803+):

curl.exe -sS -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" --data-urlencode "title=下载完成" --data-urlencode "desp=%N"

你的SENDKEY 替换为你自己的 SendKey。%N 是 qBittorrent 的占位符,运行时自动替换为种子名。

2. 在 qBittorrent 中填入命令

打开 qBittorrent,进入选项(Options)→ 下载(Downloads),找到「运行外部程序」(Run external program)区块,在「Torrent 完成时运行」(Run on torrent finished)一栏中粘贴上面的命令。

当前版本分两栏:添加时运行(Run on torrent added)/ 完成时运行(Run on torrent finished);旧版本只有一条「Run external program on torrent completion」。界面文案以应用内实际显示为准。

3. 验证

保存设置后,完成一个种子下载(或添加一个小种子等待完成),微信应收到标题「下载完成」、正文为种子名的消息。

完整示例

如果想在通知中包含分类、大小、保存路径等更多信息,可以写一个脚本让 qBittorrent 调用,在脚本内部用多行文本组织消息内容。

创建脚本 /opt/qb-notify.sh

#!/bin/bash
# 参数:$1=种子名 $2=分类 $3=大小(字节) $4=保存路径
/usr/bin/curl -sS -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" \
  --data-urlencode "title=下载完成" \
  --data-urlencode "desp=种子名:$1
分类:$2
大小:$3 字节
保存路径:$4"

赋予执行权限:

chmod +x /opt/qb-notify.sh

在 qBittorrent 的「Torrent 完成时运行」中填入:

/bin/bash /opt/qb-notify.sh "%N" "%L" "%Z" "%D"

qBittorrent 的命令不经过 shell 执行,管道和重定向不可用,但可以直接调用 /bin/bash 并传参。含空格的参数(如种子名)必须用引号包裹,官方建议写作 "%N"。可用占位符(大小写敏感):%N 种子名、%L 分类、%G 标签、%F 内容路径、%D 保存路径、%C 文件数、%Z 种子大小(字节)、%T 当前 Tracker、%I InfoHash v1、%J InfoHash v2、%K 种子 ID、%M 备注。

常见问题

每天能发多少条通知?

免费用户每天 5 条,每分钟上限 50 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

配置后收不到消息怎么办?

先确认 SendKey 正确、curl 路径存在(NAS 上 curl 可能不在 /usr/bin/,用 which curl 确认实际路径并替换)。仍无法解决可查阅常见问题与排查

种子名含中文或特殊字符会出错吗?

不会。--data-urlencode 会自动对参数值做 URL 编码,中文、空格、特殊符号都能正确传输。切勿改用 -d 传值,否则中文会导致请求失败。

想在添加种子时也收到通知怎么办?

在同一设置区块的「Torrent 添加时运行」(Run on torrent added)一栏填入相同命令,把 title=下载完成 改为 title=下载开始 即可。

Windows 上 curl 报找不到命令?

确认系统为 Win10 1803 或更高版本。若仍报错,在命令中改用 curl.exe 的完整路径(通过 where curl 查询)。

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。