Sign inSign up

liqman/byte-muse-bt

By liqman

Updated 23 days ago

BT 种子搜索聚合 API — 多源并发查询、统一去重排序、Docker 一键部署

Image
5

10K+

liqman/byte-muse-bt repository overview

🔍 ByteMuse BT

BT 种子搜索聚合 API 服务 — 并发查询多个数据源,统一过滤、去重、排序后返回 JSON 结果。


✨ 功能特性

特性说明
🔄 多源并发同时查询 PostgreSQL、BitSearch、BitMagnet GraphQL、BTLM 四个数据源
🔧 可插拔架构Provider 注册表 + 延迟导入,新增数据源只需注册一行
📊 统一管道关键词过滤 → 大小过滤 → infohash 去重 → 做种数过滤 → 多维排序
快速响应无 tracker scrape 开销,全部 provider 并发查询
🛡️ 安全加固日志 CRLF 净化、Header 注入防护、LIKE 转义、连接池、安全响应头
🐳 容器化开箱即用的 Docker 镜像,无敏感信息

🚀 快速开始

Docker 运行(推荐)
# 使用默认配置启动
docker run -d --name byte-muse-bt -p 3850:3850 liqman/byte-muse-bt:latest
挂载自定义配置
docker run -d --name byte-muse-bt -p 3850:3850 \
  -v /path/to/config.json:/app/config.json \
  liqman/byte-muse-bt:latest
使用环境变量(推荐用于生产环境)
docker run -d --name byte-muse-bt -p 3850:3850 \
  -e BT_DB_HOST=your-db-host \
  -e BT_DB_PORT=5432 \
  -e BT_DB_USER=your-user \
  -e BT_DB_PASSWORD=your-password \
  -e BT_DB_NAME=your-database \
  -e BT_DB_TABLE=your-table \
  liqman/byte-muse-bt:latest

📡 API 接口

请求
GET /bt/api?keyword=<搜索关键词>
  • 包含 - 的关键词(如 SSIS-950)启用精确匹配
  • 不含 - 的关键词返回所有结果
响应示例
{
  "data": [
    {
      "id": 482913,
      "site": "98T",
      "size_mb": 7710.72,
      "seeders": 0,
      "title": "SSIS-950 出張先ホテルで...",
      "chinese": false,
      "uc": false,
      "uhd": false,
      "free": true,
      "download_url": "magnet:?xt=urn:btih:3ef927057e..."
    }
  ]
}
字段说明
字段类型说明
idint种子唯一标识(哈希生成)
sitestring数据源代号:98T / BITS / BITM / BTLM
size_mbfloat文件大小(MB)
seedersint做种数(pg 数据源固定为 0)
titlestring种子标题
chinesebool是否含中文字幕标记
ucbool是否为破解/无码版本
uhdbool是否为 4K/UHD 版本
freebool是否免费
download_urlstring磁力下载链接

⚙️ 配置文件

配置文件为容器内 /app/config.json,可通过 volume 挂载覆盖。完整示例:

{
  "logging": {
    "level": "INFO"
  },
  "api": {
    "limit": 10,
    "priority_keywords": ["色花", "98t", "98T"],
    "min_seeders": 1
  },
  "bt": {
    "provider_defaults": {
      "min_size_mb": 0,
      "max_size_mb": 0
    },
    "providers": [
      {
        "name": "pg",
        "enabled": true,
        "host": "localhost",
        "port": 5432,
        "user": "postgres",
        "password": "",
        "database": "postgres",
        "table": "sehuatang"
      },
      {
        "name": "bitsearch",
        "enabled": true,
        "base_url": "https://bitsearch.to/search?q={query}",
        "retries": 2,
        "cookies": ""
      },
      {
        "name": "bitmagnet",
        "enabled": true,
        "base_url": "https://torrent.qiujiahui.com/graphql",
        "retries": 2,
        "verify_ssl": true,
        "count": 10,
        "timeout_seconds": 20
      },
      {
        "name": "btlm",
        "enabled": true,
        "base_url": "https://cdn.btlm.top:65533",
        "search_path": "/s",
        "retries": 2,
        "verify_ssl": false,
        "timeout_seconds": 20,
        "cookies": ""
      }
    ]
  },
  "proxy": {
    "enabled": false,
    "url": "http://127.0.0.1:7890",
    "username": "",
    "password": ""
  }
}

🌍 环境变量

环境变量优先级高于 config.json 中的对应字段:

环境变量对应配置说明
BT_DB_HOSTpg.host数据库主机
BT_DB_PORTpg.port数据库端口
BT_DB_USERpg.user数据库用户名
BT_DB_PASSWORDpg.password数据库密码
BT_DB_NAMEpg.database数据库名
BT_DB_TABLEpg.table数据表名
BT_QUERY_LIMITapi.limit查询结果数上限
BT_BITSEARCH_URLbitsearch.base_urlBitSearch 搜索 URL 模板
BT_BITSEARCH_RETRIESbitsearch.retriesBitSearch 重试次数
BT_BTLM_URLbtlm.base_urlBTLM 站点地址
BT_BTLM_RETRIESbtlm.retriesBTLM 重试次数

🔀 排序规则

结果按以下优先级排序:

  1. 🥇 pg(98T 数据库源) 始终排在最前
  2. 🔓 UC(破解版)优先
  3. 🇨🇳 中文字幕优先
  4. 🎯 priority_keywords 命中顺序
  5. 📺 4K/UHD优先
  6. 🌱 做种数降序

🐍 技术栈

  • Python 3.10 + 标准库 HTTP 服务器(无框架开销)
  • psycopg2 — PostgreSQL 连接池
  • requests + lxml — 网页爬虫
  • Docker — 容器化部署

Tag summary

Content type

Image

Digest

sha256:767f6ad70

Size

54.3 MB

Last updated

23 days ago

docker pull liqman/byte-muse-bt