Skip to content

根据 Emby 用户活动自动调整 qBittorrent 上传限速

Notifications You must be signed in to change notification settings

bgColorGray/emby-qb-limiter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Emby-QB Limiter

Docker Hub

根据 Emby 用户活动自动调整 qBittorrent 上传限速。

功能

  • 检测 Emby 用户活动(默认 60 秒内有操作视为活跃)
  • 有用户活跃时自动限速 qBittorrent 上传(默认 1MB/s)
  • 无用户活跃时解除限速(全速上传)
  • Docker 部署,开箱即用

原理

┌─────────┐  轮询 Sessions API  ┌──────────────────┐  API   ┌─────────────┐
│  Emby   │ ←─────────────────→ │  Python 服务      │ ────→ │ qBittorrent │
│ :8096   │   检查 LastActivity  │  (FastAPI)       │       │   :18080    │
└─────────┘                     └──────────────────┘       └─────────────┘

快速开始

使用 Docker Compose(推荐)

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

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 支持多种格式(大小写不敏感):

格式 等效值
1MB1mb1M1m 1048576 bytes
512KB512kb512K 524288 bytes
1.5GB1.5G 1610612736 bytes
1048576 1048576 bytes (纯数字=bytes)

API 接口

接口 方法 说明
/status GET 获取当前状态(活跃用户、限速状态等)
/check POST 手动检查并更新限速状态
/health GET 健康检查

/status 响应示例

{
  "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
}

获取 Emby API Key

  1. 登录 Emby 管理后台
  2. 设置 → Expert → Advanced → Security
  3. 点击 Add 创建新的 API Key

注意事项

网络模式

推荐使用 network_mode: host,这样容器可以直接访问本地的 Emby 和 qBittorrent 服务。

Docker 代理问题

如果服务器配置了 Docker 代理,可能导致容器内无法访问本地服务。解决方案:

# 清除 Docker 代理配置
echo '{}' > ~/.docker/config.json

qBittorrent Web UI

确保 qBittorrent 已开启 Web UI 功能,并且允许从本地访问。

日志示例

服务启动...
配置: 轮询间隔=5秒, 活动窗口=60秒
qBittorrent 登录成功
检测到活跃用户: user1,启用限速 1MB/s
无活跃用户,解除限速

许可证

MIT

About

根据 Emby 用户活动自动调整 qBittorrent 上传限速

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published