根据 Emby 用户活动自动调整 qBittorrent 上传限速。
┌─────────┐ 轮询 Sessions API ┌──────────────────┐ API ┌─────────────┐
│ Emby │ ←─────────────────→ │ Python 服务 │ ────→ │ qBittorrent │
│ :8096 │ 检查 LastActivity │ (FastAPI) │ │ :18080 │
└─────────┘ └──────────────────┘ └─────────────┘
version: '2.4'
services:
emby-qb-limiter:
image: bgcol/emby-qb-limiter:latest
container_name: emby-qb-limiter
restart: always
network_mode: host
environment:
# Emby 配置
- EMBY_URL=http://localhost:8096
- EMBY_API_KEY=你的API密钥
# qBittorrent 配置
- QB_URL=http://localhost:18080
- QB_USERNAME=admin
- QB_PASSWORD=你的密码
# 限速配置,支持单位: KB/MB/GB
- UPLOAD_LIMIT=1MB
# 可选配置
- POLL_INTERVAL=5 # 轮询间隔(秒)
- ACTIVITY_WINDOW=60 # 活动窗口(秒)
docker run -d \
--name emby-qb-limiter \
--network host \
--restart always \
-e EMBY_URL=http://localhost:8096 \
-e EMBY_API_KEY=你的API密钥 \
-e QB_URL=http://localhost:18080 \
-e QB_USERNAME=admin \
-e QB_PASSWORD=你的密码 \
-e UPLOAD_LIMIT=1MB \
bgcol/emby-qb-limiter:latest
curl http://localhost:9000/status
| 环境变量 | 说明 | 默认值 |
|---|---|---|
EMBY_URL | Emby 服务器地址 | http://localhost:8096 |
EMBY_API_KEY | Emby API 密钥 | - |
QB_URL | qBittorrent Web UI 地址 | http://localhost:18080 |
QB_USERNAME | qBittorrent 用户名 | admin |
QB_PASSWORD | qBittorrent 密码 | - |
UPLOAD_LIMIT | 限速值,支持 KB/MB/GB 单位 | 1MB |
POLL_INTERVAL | 轮询间隔(秒) | 5 |
ACTIVITY_WINDOW | 活动检测窗口(秒) | 60 |
WEBHOOK_PORT | 服务监听端口 | 9000 |
UPLOAD_LIMIT 支持多种格式(大小写不敏感):
| 格式 | 等效值 |
|---|---|
1MB 或 1mb 或 1M 或 1m | 1048576 bytes |
512KB 或 512kb 或 512K | 524288 bytes |
1.5GB 或 1.5G | 1610612736 bytes |
1048576 | 1048576 bytes (纯数字=bytes) |
| 接口 | 方法 | 说明 |
|---|---|---|
/status | GET | 获取当前状态(活跃用户、限速状态等) |
/check | POST | 手动检查并更新限速状态 |
/health | GET | 健康检查 |
{
"has_recent_activity": true,
"active_users": ["user1"],
"activity_window_seconds": 60,
"poll_interval_seconds": 5,
"qb_upload_limit_bytes": 1048576,
"qb_upload_limit_mbps": "1.00",
"limit_enabled": true,
"configured_limit_bytes": 1048576
}
推荐使用 network_mode: host,这样容器可以直接访问本地的 Emby 和 qBittorrent 服务。
如果服务器配置了 Docker 代理,可能导致容器内无法访问本地服务。解决方案:
# 清除 Docker 代理配置
echo '{}' > ~/.docker/config.json
确保 qBittorrent 已开启 Web UI 功能,并且允许从本地访问。
服务启动...
配置: 轮询间隔=5秒, 活动窗口=60秒
qBittorrent 登录成功
检测到活跃用户: user1,启用限速 1MB/s
无活跃用户,解除限速
MIT
Content type
Image
Digest
sha256:2adf1dab6…
Size
56.5 MB
Last updated
10 months ago
docker pull bgcol/emby-qb-limiter