364 字
2 分钟
使用 Telegram Bot 实现 qBittorrent 下载完成即时通知
更新于 2026-07-30
本文记录通过 Telegram Bot 接收 qBittorrent 任务下载完成推送的配置方法。
1. 准备工作
1.1 获取 Bot Token
在 Telegram 中向 @BotFather 发送 /newbot 指令,按照指引命名并获取 API Token(格式形如 1234567890:BBA2XXjn...)。并在聊天中点击 Start 激活对话。
1.2 获取 Chat ID
向机器人发送测试文本。在浏览器中访问以下接口(替换 <TOKEN>):
https://api.telegram.org/bot<TOKEN>/getUpdates记录返回的 JSON 数据中 "chat":{"id":123456789} 中的数字。
2. 编写消息通知脚本
在服务器合适位置写入以下脚本(如 ~/script/tg_notify.sh):
#!/bin/bash
# 配置你的 token 和 IDBOT_TOKEN="YOUR_BOT_TOKEN"CHAT_ID="YOUR_CHAT_ID"# ==========================================
# 接收 qB 传过来的参数TORRENT_NAME="${1:-"Unknown Torrent"}"SIZE_BYTES="${2:-0}"SAVE_PATH="${3:-"Unknown Path"}"
SAFE_NAME=$(echo "$TORRENT_NAME" | sed 's/&/\&/g; s/</\</g; s/>/\>/g')SAFE_PATH_RAW=$(echo "$SAVE_PATH" | sed 's/&/\&/g; s/</\</g; s/>/\>/g')
SIZE_MB=$((SIZE_BYTES / 1024 / 1024))if [ "$SIZE_MB" -ge 1024 ]; then SIZE_GB=$(echo "scale=1; $SIZE_MB / 1024" | bc) SIZE_DISPLAY="${SIZE_GB} GB"else SIZE_DISPLAY="${SIZE_MB} MB"fi
USERNAME=$(whoami)SAVE_PATH_OBFUSCATED=$(echo "$SAFE_PATH_RAW" | sed "s|${USERNAME}|<span class=\"tg-spoiler\">${USERNAME}</span>|g")
MESSAGE="🎉 <b>Seedbox 种子下载完成!</b>
🎬 <b>名称</b>: ${SAFE_NAME}💾 <b>大小</b>: ${SIZE_DISPLAY}📁 <b>路径</b>: ${SAVE_PATH_OBFUSCATED}"
curl -s --max-time 10 -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \ -d chat_id="${CHAT_ID}" \ --data-urlencode text="${MESSAGE}" \ -d parse_mode="HTML" > /dev/null赋予脚本可执行权限:
chmod +x ~/script/tg_notify.sh3. 在 qBittorrent 中启用绑定
在 qBittorrent WebUI 中打开 设置 (Settings) -> 下载 (Downloads)。
启用 种子下载完成时运行外部程序 (Run external program on torrent completion),输入对应的调用命令:
/home/yourname/script/tg_notify.sh "%N" "%Z" "%D"注:请根据实际运行路径替换 /home/yourname/ 部分。
变量映射说明:
%N:种子名称。%Z:文件字节大小。%D:保存目标目录。
使用 Telegram Bot 实现 qBittorrent 下载完成即时通知
https://blog.rokutosei.com/posts/toolbox/qbittorrent-telegram-notification/