1925 字
10 分钟

AV下载全新方案:DB_Online+AVDB+MDC

前情#

之前已经介绍过两套 AV 自动化方案:

这两套组合已经能覆盖大部分需求了,但有个问题:AutoLady(byte-muse) 主要服务的是 PT 馒头用户,如果你不在馒头或者其他 PT 站,那这套方案对你来说就用不上了。

所以这次要介绍的新方案,核心组件是 db_online,它从功能角度和 AutoLady(byte-muse) 类似——都是做资源发现和下载管理的,但 db_online 面向的是 色花堂堂、JavDB 等公开平台的用户。两者各自服务不同的用户群体,看你的资源来源选择对应方案即可。

方案介绍#

这套方案由以下几个组件组成,各司其职:

组件作用
db_online资源发现与下载管理,对接98堂/JavDB等平台,自动搜索并推送下载任务到 qBittorrent
avdbAV数据库,提供元数据支持,辅助识别和管理影片信息
MDC (MDCNG)刮削整理,自动生成NFO、海报、演员信息等,硬链接到媒体库供 Emby 读取
qBittorrent下载器,负责实际的种子下载任务
FlareSolverr绕过 Cloudflare 验证,解决访问 JavDB 等网站时的反爬问题

整体流程就是:db_online 从平台发现资源 → 推送到 qBittorrent 下载 → MDC 监控下载目录自动刮削整理 → 入库 Emby。FlareSolverr 在后台帮忙处理 Cloudflare 人机验证,avdb 提供元数据支撑。

部署#

qBittorrent 的部署之前已经讲过很多次了,这里不再赘述。下面是其余组件的 docker-compose 配置,建议统一放在一个目录下管理:

version: "2.1"
services:
mdc:
image: mdcng/mdc:latest
container_name: mdc
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
volumes:
- ./config:/config # 配置目录,必须
- ./app:/app
- /hdd/media:/media # 媒体库,可映射多个
ports:
- 127.0.0.1:9208:9208
restart: unless-stopped
# ── db_online ──
db_online_postgres:
image: postgres:16-alpine
container_name: db_online_postgres
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=db_online
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d db_online"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./db_online/postgres_data:/var/lib/postgresql/data
db_online:
image: dbonline/db_online:latest
container_name: db_online
restart: unless-stopped
depends_on:
db_online_postgres:
condition: service_healthy
environment:
- TZ=Asia/Shanghai
ports:
- 127.0.0.1:9090:9090
volumes:
- ./db_online/data:/app/data
- ./db_online/cache:/app/cache
- ./db_online/logs:/app/logs
- /hdd/media:/media # 与 MDC 共享媒体库
# ── avdb ──
avdb_postgres:
image: postgres:16-alpine
container_name: avdb_postgres
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- POSTGRES_USER=avdb
- POSTGRES_PASSWORD=your_password
- POSTGRES_DB=avdb
volumes:
- ./avdb/postgres_data:/var/lib/postgresql/data
avdb:
image: leolitaly/avdb:latest
container_name: avdb
restart: unless-stopped
depends_on:
- avdb_postgres
environment:
- TZ=Asia/Shanghai
- DATABASE_URL=postgresql://avdb:your_password@avdb_postgres:5432/avdb
- POSTGRES_HOST=
- POSTGRES_PORT=
- POSTGRES_USER=
- POSTGRES_PASSWORD=
- POSTGRES_DB=
ports:
- 127.0.0.1:8000:8000
volumes:
- ./avdb/data:/data
- /hdd/media:/media # 与 MDC 共享媒体库
# ── FlareSolverr ──
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- LOG_LEVEL=info
ports:
- 127.0.0.1:8191:8191

几个要点说明:

  • 端口全部绑定 127.0.0.1:避免直接暴露到公网,建议通过反向代理访问
  • 媒体库目录 /hdd/media:db_online、avdb、mdc 三个服务共享同一个媒体库挂载,确保路径一致。根据你自己的实际路径修改
  • db_online 和 avdb 各自有独立的 PostgreSQL:数据互不干扰
  • avdb 的数据库密码:记得改成你自己的强密码,compose 里的 POSTGRES_PASSWORDDATABASE_URL 中的密码要保持一致

使用#

部署完成后,各服务的访问地址:

服务地址
MDC (MDCNG)http://IP:9208
db_onlinehttp://IP:9090
avdbhttp://IP:8000
FlareSolverrhttp://IP:8191

image-20260330212158256

文件结构

├── app
│ ├── config.json
│ └── data
│ └── photos
├── avdb
│ ├── data
│ │ ├── emby_login_posters
│ │ ├── image_cache
│ │ └── logs
│ └── postgres_data
│ ├── base
│ ├── global
│ ├── pg_commit_ts
│ ├── pg_dynshmem
│ ├── pg_hba.conf
│ ├── pg_ident.conf
│ ├── pg_logical
│ ├── pg_multixact
│ ├── pg_notify
│ ├── pg_replslot
│ ├── pg_serial
│ ├── pg_snapshots
│ ├── pg_stat
│ ├── pg_stat_tmp
│ ├── pg_subtrans
│ ├── pg_tblspc
│ ├── pg_twophase
│ ├── PG_VERSION
│ ├── pg_wal
│ ├── pg_xact
│ ├── postgresql.auto.conf
│ ├── postgresql.conf
│ ├── postmaster.opts
│ └── postmaster.pid
├── config
│ ├── config.json
│ └── data
│ ├── Actress.db
│ ├── c_number.json
│ ├── face_recognition_model.bin
│ ├── mapping_actor.xml
│ ├── mapping_eu_code.json
│ ├── mapping_info.xml
│ ├── mdc_ng.db
│ ├── mdc_ng.db-shm
│ ├── mdc_ng.db-wal
│ └── photos
├── db_online
│ ├── cache
│ │ └── images
│ ├── data
│ │ ├── config.yaml
│ │ └── config.yaml.bak
│ ├── logs
│ │ └── subscription
│ └── postgres_data
│ ├── base
│ ├── global
│ ├── pg_commit_ts
│ ├── pg_dynshmem
│ ├── pg_hba.conf
│ ├── pg_ident.conf
│ ├── pg_logical
│ ├── pg_multixact
│ ├── pg_notify
│ ├── pg_replslot
│ ├── pg_serial
│ ├── pg_snapshots
│ ├── pg_stat
│ ├── pg_stat_tmp
│ ├── pg_subtrans
│ ├── pg_tblspc
│ ├── pg_twophase
│ ├── PG_VERSION
│ ├── pg_wal
│ ├── pg_xact
│ ├── postgresql.auto.conf
│ ├── postgresql.conf
│ ├── postmaster.opts
│ └── postmaster.pid
└── docker-compose.yaml

MDC 的详细配置可以参考之前的 MDCNG 刮削终极解决方案,这里不再重复。

DB_Online 设置#

账户密码之类的设置我就不多说了. DBO 的配置文件位于 db_online/data 下的config.yaml 中。

主要要调整的是这里的数据库配置,要和你创建的pg做对应

image-20260330212952007

qb 配置#

我的建议是一定一定要单独弄个qb,我每次都说。

image-20260330211458103

emby 配置#

都会的吧

image-20260330213400533

Javdb API 配置#

需要你去 https://javdb.com/ 注册个账户,然后输入账户密码登录就行。

image-20260330213926734

Tg设置#

image-20260330222048496

image-20260330222128642

测试下载#

这里这么多配完差不多基础的下载就结束了,可以尝试找两个番号点击推送,然后打开qb看看是否监听到。

image-20260330214604104

image-20260330214534448

image-20260330214755872

emby 入库

经过测试,这样一个最简单的下载刮削入库就全部完成了。

下面是进阶

AVDB 的设置#

账户密码的设置没啥好说的,自己设置。

qb 和 emby 设置#

image-20260330211947584

image-20260330213509448

设置 FlareSolverr#

设置—代理

填入

http://127.0.0.1:8191/v1

image-20260330220116102

导入离线资料#

下载离线资料

https://share.catcat.blog/s/ENHJ/3i5y7rb3

下载完成后解压后得到两个表格文件,导入avdb

image-20260330215548935

设置定时任务爬取数据#

点击任务计划-点击添加-根据自己需求设置爬的频率

明白,你这个更适合写成单一章节说明,不要拆太多二级/三级标题。下面这个版本更紧凑,直接可用:

## 使用任务定时爬取数据
**AVdb 使用指南**
点击**任务图标****添加任务**
- **名称**:可任意填写。
- **任务规则**
- **智能**:增量续爬,适合每天定时爬取。
- **全量**:抓取指定页数,一般较少使用,因为比较耗时;如果需要大量数据,建议直接导入 **CSV 数据包**,更省时省力。
- **规则参数**
- **智能版**:无需填写参数。
- **全量版**:需要输入最大页数参数,例如下面表示爬取前 5 页(页数可自行修改):
```json
{"max_page": 5}
  • 版块:选择需要爬取的版块,默认全部,可按需勾选。

  • 线程:任务线程数可选 1 - 5

  • 运行周期:使用 Cron 表达式

    • * 号的 5 个位置分别代表:分 时 天 月 周

    • 例如:

      • 0 3 * * *:每天凌晨 3<00> 执行
      • 0 */6 * * *:每 6 小时执行一次
      • 30 2 * * 1:每周一 2<30> 执行
  • 开启任务:开启后会按设定周期自动运行,也可以先保存后手动运行。

推荐用法: 日常更新建议选择:

  • 任务规则:智能
  • 线程:3~5
  • 运行周期:每天一次,例如:
0 3 * * *

表示:每天凌晨 3 点自动执行

image-20260330220227893

设置令牌,把avdb作为dbo的外置数据库#

## 配置 DB-Online 扩展磁力库
点击底部 **Bar** 最后一个按钮 **「其它」****「访问令牌」**
首先创建一个访问令牌,**名称可任意填写**
![image-20260330221116944](https://s3.catcat.blog/images/2026/03/20260330221117299.avif)
然后回到 **DB-Online**,进入:
**设置****扩展磁力库**
填写以下内容:
- **API URL**
```text
http://avdb:8000/api/v1/articles/torrents?keyword={code}

注意: 如果 avdb 无法访问,请尝试改为 宿主机 IP

  • 添加 Header
X-API-Key : 你的令牌
  • 统计 API URL
http://avdb:8000/api/v1/stats

image-20260330221543092

说明: 统计 API URL 的访问要求与上面一致,若 avdb 无法访问,同样请改为 宿主机 IP

这里的功能就是因为dbo本身只是爬了javdb的数据,avdb是爬取的色花堂和X1080X的数据。当然两个都能单独使用,为了简化,所以avdb这里可以只做数据源,接给dbo做下载用。

image-20260330222228217

AV下载全新方案:DB_Online+AVDB+MDC
https://catcat.blog/2026/03/docker-db-online-avdb-mdc-av-solution.html
作者
猫猫博客
发布于
2026-03-30
许可协议
CC BY-NC-SA 4.0