Sign inSign up

xylplm/bm-simulate-xunlei-api-to-media-saber

By xylplm

•Updated 6 months ago

byte-muse 模拟迅雷接口调用media saber 离线下载

Image
1

8.1K

xylplm/bm-simulate-xunlei-api-to-media-saber repository overview

⁠Docker 使用文档

⁠概述

xylplm/bm-simulate-xunlei-api-to-media-saber 是一个迅雷 API 模拟服务,用于在 byte-muse 中集成 Media-Saber 的离线下载功能。

本文档介绍如何通过 Docker 或 Docker Compose 方式部署和使用该服务。


⁠前置要求

  • Docker 已安装
  • 正在运行的 Media-Saber 服务(获取 URL 和 API Key)
  • byte-muse v3.21.0 或更高版本

⁠方式一:Docker 直接运行

⁠1. 拉取镜像
docker pull xylplm/bm-simulate-xunlei-api-to-media-saber:latest
⁠2. 运行容器
docker run -d \
  --name xunlei-api-simulator \
  -p 9895:9895 \
  -e TZ=Asia/Shanghai \
  -e MS_URL=http://10.11.11.111:8888 \
  xylplm/bm-simulate-xunlei-api-to-media-saber:latest

💡 说明:MS_URL 是唯一必需的环境变量。其他配置项都有默认值,如需自定义可参考下方环境变量说明表添加相应的 -e 参数。

⁠3. 验证运行状态
# 查看容器日志
docker logs xunlei-api-simulator

# 测试健康检查
curl http://localhost:9895/health
⁠环境变量说明
变量名说明示例是否必需
MS_URLMedia-Saber 服务地址http://10.11.11.111:8888✅ 是
DEFAULT_DEVICE_ID默认设备IDPC❌ 否,默认 PC
CALL_MEDIA_SABER_TIMEOUT调用 Media-Saber 超时时间(秒)300❌ 否,默认 300
HOST服务监听地址0.0.0.0❌ 否,默认 0.0.0.0
PORT服务监听端口9895❌ 否,默认 9895
LOG_LEVEL日志级别debug/info/warn/error❌ 否,默认 info
LOG_FORMAT日志格式json/text❌ 否,默认 json
LOG_OUTPUT日志输出方式stdout/file❌ 否,默认 stdout

⁠方式二:Docker Compose 部署(推荐)

⁠1. 创建 docker-compose.yml

使用项目仓库中的 docker-compose.yml,或按以下方式创建:

version: "3.8"

services:
  bm-simulate-xunlei-api-to-media-saber:
    image: xylplm/bm-simulate-xunlei-api-to-media-saber:latest
    container_name: xunlei-api-simulator
    ports:
      - "9895:9895"
    environment:
      - TZ=Asia/Shanghai
      - MS_URL=http://10.11.11.111:8888
    restart: unless-stopped

💡 说明:MS_URL 是必需的,其他配置项已使用默认值。如需自定义日志级别、超时时间等,参考下方"性能调优"部分添加相应环境变量。

⁠2. 启动服务
# 进入 docker-compose.yml 所在目录
cd /path/to/docker-compose.yml

# 启动服务
docker-compose up -d

# 查看服务状态
docker-compose ps

# 实时查看日志
docker-compose logs -f bm-simulate-xunlei-api-to-media-saber
⁠3. 停止服务
docker-compose down

⁠使用方法:byte-muse 配置

⁠前置条件(必须)
  1. Media-Saber 服务地址(绝对必需):

    • Media-Saber 必须正常运行
    • 记录服务地址,如 http://10.11.11.111:8888
    • 这将在 Docker 容器启动时配置为 MS_URL 环境变量
  2. Media-Saber API Key(绝对必需):

    • 登录 Media-Saber
    • 进入 我的信息 → 安全管理
    • 添加新的 API Key,记录获得的 key 值
    • 在 byte-muse 中填写此 Key 用于认证
  3. 本服务的网络地址:

    • 启动本服务后,记录对外暴露的地址
    • 如 http://10.11.11.111:9895
    • 将在 byte-muse 中配置为 Docker迅雷地址
⁠byte-muse 配置步骤
⁠第一步:进入迅雷配置界面
  1. 打开 byte-muse 管理界面
  2. 点击导航栏 → 设置
  3. 选择 迅雷 配置选项卡
⁠第二步:填写三个输入框
⁠输入框 1:Docker迅雷地址(必需)

标签:Docker迅雷地址 (需版本号 >= v3.21.0)

填写示例:http://10.11.11.111:9895

说明:

  • 填写本服务对外暴露的地址
  • 根据网络部署调整 IP 和端口
  • 确保 byte-muse 能访问该地址
⁠输入框 2:Docker迅雷file_id(必需)

标签:Docker迅雷file_id

填写说明: 填写 Media-Saber 云存储中的目标目录路径(不需要从浏览器获取,直接写目录路径即可)

填写示例:/115/ms下载

说明:

  • 这是离线下载文件保存的目标目录路径
  • 需要确保该目录在 Media-Saber 中存在
  • 支持多级目录,如 /115/离线下载/movies
⁠输入框 3:Docker迅雷Authorization(必需)

标签:Docker迅雷Authorization

获取方法:

  1. 登录 Media-Saber
  2. 进入 我的信息 → 安全管理
  3. 在 API Key 列表中找到已创建的 API Key
  4. 复制 API Key 的值

填写示例:sk_live_xxxxxxxxxxxxxxxxxxxxxxxx

说明:

  • 填写 Media-Saber 中配置的 API Key(必须)
  • 这是与 Media-Saber 通信的认证凭证
  • 确保填写的 API Key 有效且未过期

⁠完整配置示例

⁠场景:家庭网络部署

网络拓扑:

byte-muse (192.168.1.10)
    ↓
xunlei-api-simulator (192.168.1.20:9895)
    ↓
media-saber (192.168.1.30:8888)
⁠docker-compose.yml 配置
version: "3.8"

services:
  bm-simulate-xunlei-api-to-media-saber:
    image: xylplm/bm-simulate-xunlei-api-to-media-saber:latest
    container_name: xunlei-api-simulator
    ports:
      - "9895:9895"
    environment:
      - TZ=Asia/Shanghai
      - MS_URL=http://192.168.1.30:8888
    restart: unless-stopped
⁠byte-muse 迅雷配置
配置项填写值说明
Docker迅雷地址http://192.168.1.20:9895本服务的网络地址
Docker迅雷file_id/115/离线下载Media-Saber 中的目标目录
Docker迅雷Authorizationsk_live_xxx...Media-Saber 的 API Key

⁠常见问题排查

⁠问题 1:连接被拒绝

症状:

Error: Failed to call media-saber: connection refused

解决方案:

  1. 检查 MS_URL 配置是否正确
  2. 确认 Media-Saber 服务正常运行:curl http://10.11.11.111:8888/health
  3. 检查防火墙是否阻止了连接
  4. 验证容器网络配置(如使用 Docker Compose,可能需要在同一网络中)
⁠问题 2:认证失败

症状:

Error: Media-saber returned error, message: Unauthorized

解决方案:

  1. 确认 Media-Saber 中已添加 API Key
  2. 确认 byte-muse 中填写的 Authorization 与 Media-Saber 中的 API Key 一致
  3. 在 Media-Saber 中验证 API Key 的权限
⁠问题 3:文件保存位置错误

症状: 离线下载的文件没有保存到预期目录

解决方案:

  1. 检查 Docker迅雷file_id 是否与实际目录路径一致
  2. 在 Media-Saber 中验证该目录是否存在
  3. 检查目录的写入权限
⁠问题 4:服务超时

症状:

Error: Failed to call media-saber: request timeout

解决方案:

  1. 增加 CALL_MEDIA_SABER_TIMEOUT 值(单位:秒)
  2. 检查网络连接延迟
  3. 检查 Media-Saber 的性能状况

⁠监控和日志

⁠查看日志
# Docker 方式
docker logs -f xunlei-api-simulator

# Docker Compose 方式
docker-compose logs -f bm-simulate-xunlei-api-to-media-saber

# 只查看最后 100 行
docker logs --tail 100 xunlei-api-simulator
⁠健康检查
curl http://localhost:9895/health

成功响应:

{
  "status": "healthy",
  "service": "xunlei-simulator"
}
⁠查看所有接口
curl http://localhost:9895/

⁠更新镜像

# 拉取最新镜像
docker pull xylplm/bm-simulate-xunlei-api-to-media-saber:latest

# 使用 Docker Compose 更新
docker-compose pull
docker-compose up -d

⁠性能调优

⁠增加超时时间

如果频繁出现超时,可增加 CALL_MEDIA_SABER_TIMEOUT。

Docker 方式:

docker run -d \
  --name xunlei-api-simulator \
  -p 9895:9895 \
  -e MS_URL=http://10.11.11.111:8888 \
  -e CALL_MEDIA_SABER_TIMEOUT=600 \
  xylplm/bm-simulate-xunlei-api-to-media-saber:latest

Docker Compose 方式:

services:
  bm-simulate-xunlei-api-to-media-saber:
    # ... 其他配置
    environment:
      - MS_URL=http://10.11.11.111:8888
      - CALL_MEDIA_SABER_TIMEOUT=600  # 从 300 秒改为 600 秒
⁠调整日志级别

生产环境建议设置为 info,调试时使用 debug。

Docker 方式:

docker run -d \
  --name xunlei-api-simulator \
  -p 9895:9895 \
  -e MS_URL=http://10.11.11.111:8888 \
  -e LOG_LEVEL=debug \
  -e LOG_FORMAT=json \
  xylplm/bm-simulate-xunlei-api-to-media-saber:latest

Docker Compose 方式:

services:
  bm-simulate-xunlei-api-to-media-saber:
    # ... 其他配置
    environment:
      - MS_URL=http://10.11.11.111:8888
      - LOG_LEVEL=debug    # 或 info/warn/error
      - LOG_FORMAT=json    # 或 text
⁠其他常用配置

如需自定义设备 ID、监听地址等:

services:
  bm-simulate-xunlei-api-to-media-saber:
    # ... 其他配置
    environment:
      - MS_URL=http://10.11.11.111:8888
      - DEFAULT_DEVICE_ID=HomePC       # 默认值:PC
      - HOST=0.0.0.0                   # 默认值:0.0.0.0
      - PORT=9895                      # 默认值:9895
      - CALL_MEDIA_SABER_TIMEOUT=300   # 默认值:300 秒
      - LOG_LEVEL=info                 # 默认值:info
      - LOG_FORMAT=json                # 默认值:json
      - LOG_OUTPUT=stdout              # 默认值:stdout

⁠安全建议

  1. 不要在公网暴露:如需远程访问,建议使用 VPN 或内网
  2. 定期更新镜像:docker pull xylplm/bm-simulate-xunlei-api-to-media-saber:latest
  3. 保护 API Key:不要在配置文件中明文存储敏感信息,考虑使用 Docker secrets
  4. 限制访问:在防火墙中限制只允许 byte-muse 访问该服务

⁠卸载

⁠Docker 方式
# 停止并删除容器
docker stop xunlei-api-simulator
docker rm xunlei-api-simulator

# 删除镜像
docker rmi xylplm/bm-simulate-xunlei-api-to-media-saber:latest
⁠Docker Compose 方式
# 停止并删除所有容器
docker-compose down

# 同时删除镜像
docker-compose down --rmi all

⁠支持

如遇到问题,请:

  1. 检查本文档的常见问题部分
  2. 查看服务日志:docker logs xunlei-api-simulator
  3. 验证环境变量和网络配置
  4. 提交 Issue 或联系开发者

⁠版本信息

组件版本要求
Docker20.10+
Docker Compose1.29+ 或 Docker Compose V2
byte-musev3.21.0+
Media-Saber任意版本(需正常运行)

Tag summary

Content type

Image

Digest

sha256:189ed01ec…

Size

10.6 MB

Last updated

6 months ago

docker pull xylplm/bm-simulate-xunlei-api-to-media-saber