M-Team PT 站自动化助手,支持自动下载免费种子、管理多账号、支持连接 qBittorrent/Transmission 下载器。
- 多账号管理:通过 API Token 认证管理多个 M-Team 账号
- 自动下载规则:根据条件(免费/2x上传、大小、做种数、关键词等)自动下载种子
- 智能跳过:自动跳过 M-Team 网站上已有下载记录的种子,避免重复下载
- 支持的下载器:qBittorrent 和 Transmission,支持同时管理多个下载器
- 智能删种:自动删除促销过期或非免费的下载中种子,保护分享率
- 下载队列限制:可设置最大同时下载数,精确控制不会超限
- 标签管理:下载时自动添加标签,便于分类管理
- 种子上传:手动上传种子文件,自动查询促销信息
- 下载历史管理:
- 记录所有下载历史,支持从下载器导入已有种子
- 同步状态:自动/手动同步下载器中的种子状态
- 删除联动:删除历史记录时同步删除下载器中的种子文件
- 清空已删除:一键清理下载器中已删除但数据库仍存在的记录
- Python 3.10+(本地部署)
- Node.js 18+(本地部署)
- Docker(Docker 部署)
- qBittorrent 或 Transmission
最简单的部署方式,无需安装 Python 和 Node.js。
Docker Hub 地址:https://hub.docker.com/r/spellyaohui/mteam-helper
创建 docker-compose.yml 文件:
⚠️ 飞牛 NAS 用户注意:飞牛系统会占用 8001 端口,建议改用其他端口(如8010:8001)。
version: '3.8'
services:
mteam-helper:
image: spellyaohui/mteam-helper:latest
container_name: mteam-helper
ports:
- "8001:8001"
volumes:
- ./data:/app/data
environment:
- TZ=Asia/Shanghai
restart: unless-stopped启动服务:
docker-compose up -ddocker run -d \
--name mteam-helper \
-p 8001:8001 \
-v $(pwd)/data:/app/data \
-e TZ=Asia/Shanghai \
--restart unless-stopped \
spellyaohui/mteam-helper:latest部署完成后:
- 访问地址:
http://服务器IP:8001 - API 文档:
http://服务器IP:8001/docs
常用命令:
# 查看日志
docker logs -f mteam-helper
# 重启服务
docker restart mteam-helper
# 更新版本
docker pull spellyaohui/mteam-helper:latest
docker-compose down
docker-compose up -d
# 停止并删除
docker-compose down数据持久化:
- 数据库文件:
./data/mteam.db - 种子文件:
./data/torrents/
支持 Ubuntu/Debian、CentOS/RHEL、Fedora 等主流 Linux 发行版。
# 下载并执行一键部署脚本
curl -fsSL https://raw.githubusercontent.com/spellyaohui/M-Team-Helper/main/deploy.sh -o deploy.sh
chmod +x deploy.sh
sudo bash deploy.sh或者直接执行:
curl -fsSL https://raw.githubusercontent.com/spellyaohui/M-Team-Helper/main/deploy.sh | sudo bash脚本功能:
- ✅ 自动检测系统类型
- ✅ 自动安装 Python 3.10+ 和 Node.js 20+
- ✅ 自动克隆项目代码
- ✅ 自动配置后端和前端
- ✅ 自动创建 systemd 服务
- ✅ 自动配置开机自启
- ✅ 自动配置防火墙
部署完成后:
- 访问地址:
http://服务器IP:8001 - API 文档:
http://服务器IP:8001/docs
常用命令:
# 查看服务状态
systemctl status mteam-helper
# 查看日志
journalctl -u mteam-helper -f
# 重启服务
systemctl restart mteam-helper
# 更新版本
sudo bash /opt/mteam-helper/deploy.sh update
# 卸载
sudo bash /opt/mteam-helper/deploy.sh uninstall# 克隆项目
git clone https://github.com/spellyaohui/M-Team-Helper.git
cd M-Team-Helper/mteam-helper
# 构建前端
npm run install:frontend
npm run build
# 配置并启动后端
cd backend
python -m pip install -r requirements.txt
cp .env.example .env
# 编辑 .env 文件
# 启动服务
python main.py访问 http://localhost:8001 即可使用。
# 安装 Python 3.10+ 和 Node.js 18+
apt update
apt install python3 python3-pip python3-venv nodejs npm -y
# 验证版本
python3 --version # 需要 3.10+
node --version # 需要 18+cd /www/wwwroot # 宝塔默认网站目录,可自定义
git clone https://github.com/spellyaohui/M-Team-Helper.git
cd M-Team-Helpercd mteam-helper/frontend
npm install
npm run buildcd ../backend
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
nano .env # 编辑配置方式 A:简单后台运行(推荐新手)
cd /www/wwwroot/M-Team-Helper/mteam-helper/backend
source venv/bin/activate
nohup python main.py > output.log 2>&1 &
# 查看日志
tail -f output.log
# 停止服务
pkill -f "python main.py"方式 B:Systemd 服务(推荐生产环境)
Systemd 可以实现开机自启、崩溃自动重启。
创建服务文件:
sudo nano /etc/systemd/system/mteam-helper.service写入以下内容(根据实际路径修改):
[Unit]
Description=M-Team Helper Service
After=network.target
[Service]
Type=simple
User=www
Group=www
WorkingDirectory=/www/wwwroot/M-Team-Helper/mteam-helper/backend
Environment="PATH=/www/wwwroot/M-Team-Helper/mteam-helper/backend/venv/bin"
ExecStart=/www/wwwroot/M-Team-Helper/mteam-helper/backend/venv/bin/python main.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target启动服务:
sudo systemctl daemon-reload
sudo systemctl enable mteam-helper
sudo systemctl start mteam-helper
# 查看状态
sudo systemctl status mteam-helper
# 查看日志
sudo journalctl -u mteam-helper -f如果需要通过域名访问,在宝塔面板中:
- 添加网站,绑定域名
- 设置 → 反向代理 → 添加反向代理
- 目标 URL:
http://127.0.0.1:8001 - 发送域名:
$host
# 如果直接通过 IP:8001 访问
sudo ufw allow 8001
# 如果使用反向代理
sudo ufw allow 80
sudo ufw allow 443# 终端 1:后端
cd mteam-helper/backend
python main.py
# 终端 2:前端(可选,用于热重载开发)
cd mteam-helper/frontend
npm run dev编辑 mteam-helper/backend/.env 文件:
# M-Team 网站地址
MTEAM_BASE_URL=https://api.m-team.cc
# 调试模式
DEBUG=True
# 数据库路径
DATABASE_URL=sqlite:///./data/mteam.db登录 M-Team → 控制面板 → 实验室 → 存取令牌 → 生成新令牌
在「账号管理」页面添加账号,填入用户名和 API Token。
在「下载器」页面添加 qBittorrent 或 Transmission,填写地址、端口、用户名、密码,点击「测试连接」验证。
在「规则」页面添加规则,设置筛选条件(免费、大小、做种数等),选择下载器和保存路径,可设置标签和最大同时下载数。
在「历史」页面可以:
- 同步状态:手动点击会先从所有下载器导入新种子,再同步所有记录的状态(页面每30秒自动同步状态,不导入新种子)
- 上传种子:选择种子文件和下载器,关联M-Team账号可自动查询促销信息
- 清空已删除:清理状态为「已删除」的记录(下载器中已手动删除的种子)
- 删除记录:删除单条记录时会同步删除下载器中的种子文件
- 清空历史:删除所有历史记录及对应的下载器种子
在「系统设置」页面可以配置:
- 刷新间隔:账号刷新、种子检查、过期检查的频率
- 自动删种:启用/禁用、删种范围、标签检查
- 账号刷新:定期获取账号信息(默认5分钟)
- 种子检查:检查自动下载规则(默认3分钟)
- 过期检查:检查并删除非免费/过期的下载中种子(默认1分钟)
系统会自动删除以下情况的下载中种子:
- 促销已过期(有到期时间且已过期)
- 非免费促销(如50%、无优惠等)
不会删除的种子:
- 已完成/做种中的种子
- 免费或2x免费促销的种子
- 没有促销信息的种子
⚠️ 注意:促销信息是在添加种子时获取并保存的,之后不会实时更新。如果网站促销状态发生变化(如临时取消免费),系统不会感知到。建议上传种子时务必关联M-Team账号以获取准确的促销信息。
mteam-helper/
├── backend/ # Python FastAPI 后端
│ ├── main.py # 应用入口
│ ├── config.py # 配置管理
│ ├── routers/ # API 路由
│ ├── services/ # 业务逻辑
│ └── data/ # 数据目录
│ ├── mteam.db # SQLite 数据库
│ └── torrents/ # 种子文件
└── frontend/ # React 前端
├── src/ # 源代码
└── dist/ # 构建输出
登录 M-Team → 控制面板 → 实验室 → 存取令牌 → 生成新令牌
- 检查地址和端口是否正确
- 检查用户名和密码
- 如果使用 HTTPS,开启「使用 HTTPS」开关
- 确保下载器已开启 Web UI
- Docker 部署时,下载器地址不能用
localhost,需要用宿主机 IP 或host.docker.internal
- 检查规则是否已启用
- 检查账号 API Token 是否有效
- 检查下载队列是否已满
- 查看后端日志了解详情
确保上传时选择了关联的 M-Team 账号,系统会自动通过 API 查询促销信息。
系统会删除下载中且非免费的种子。如果种子是50%促销或无优惠,会被自动删除以保护分享率。
docker pull spellyaohui/mteam-helper:latest
docker-compose down
docker-compose up -dcd mteam-helper/frontend
npm run build
# 重启后端服务- FastAPI、SQLAlchemy 2.x、Pydantic、APScheduler
- httpx、qbittorrent-api、transmission-rpc
- React 19、TypeScript 5、Ant Design 5、Vite 7
如果这个项目对你有帮助,请给一个 ⭐ Star 支持一下!
这是个人开发的开源项目,如果你有特殊需求或想要定制功能,欢迎联系我!
- GitHub: @spellyaohui
- 邮箱: spellyaohui@gmail.com
Made with ❤️ by spellyaohui
MIT