刮削指南¶
刮削 (Scraping) 是从多个数据源获取影片元数据的过程. Amane 的刮削系统支持多源聚合、智能优先级和增量更新.
刮削流程¶
- 解析番号: 从文件名或用户输入提取番号和内容类型
- 建图: 根据内容类型和路由配置构建抓取图
- 逐站抓取: 按优先级依次尝试各数据源
- 字段聚合: 按字段优先级从多个源选择最佳值
- 翻译: 使用 LLM 翻译字段 (可选)
- 持久化: 保存到数据库并下载资源
关于下载资源
刮削时可选择下载海报、缩略图、剧照和预告片. 预告片 (trailer) 文件非常大, 不推荐开启. 其他图片类型 (海报、缩略图、剧照) 即使在刮削配置中关闭, 在前端访问影片详情页时也会自动下载.
内容路由¶
每种内容类型有独立的数据源路由, 按优先级排序. 可在「设置 → 影片刮削」中自定义.
| 类型 | 默认路由 |
|---|---|
| 有码 | dmm → javdb → javbus → official |
| 无码 | javdb → javbus → avsox → freejavbt |
| FC2 | javdb → fc2ppvdb → fc2 → freejavbt |
| 中文 | iqqtv → javdb → airav → freejavbt |
| 素人 | mgstage → dmm → javdb → javbus |
| 欧美 | theporndb → javdb → freejavbt |
| 里番 | getchu → dmm → javdb |
多源聚合¶
字段优先级¶
每个字段可独立配置来源优先级. 例如:
- 标题: 可能偏好中文站 (iqqtv) 的翻译
- 海报: 可能偏好 DMM 的高清图
- 评分: 可能偏好 JavDB 的评分体系
增量抓取¶
- 首次刮削: 按优先级依次尝试所有数据源
- 重刮削: 优先使用本地缓存, 仅补充缺失的站点数据
- 强制刷新: 忽略缓存, 重新抓取所有站点
缓存策略¶
站点级缓存¶
每次刮削的原始数据保存在 Metadata.raw 字段中:
- 按站点存储原始响应
- 重刮削时优先使用缓存
- 可单独控制是否使用缓存
翻译缓存¶
LLM 翻译结果独立缓存 (translations.db):
- 基于源文本哈希 + 目标语言 + 字段类型
- 跨番号去重 (相同简介只翻译一次)
- 换模型后需删除缓存文件强制重译
翻译¶
Amane 集成 LLM 翻译能力:
- 支持字段: title, plot
- 语言检测: 自动判断是否需要翻译
- 简繁转换: 中文简繁自动转换 (不走 LLM)
- 跨语系翻译: 日→中, 英→中等使用 LLM
翻译配置见 配置指南 - LLM 翻译.
演员刮削¶
影片刮削成功后, 可自动链式触发演员刮削:
- 按配置的档案站顺序抓取演员信息
- 头像从专门的头像站获取
- 已刮过的演员自动跳过
演员刮削配置见 配置指南 - 演员刮削.
r18.dev 数据源¶
r18.dev 是一个特殊的离线数据源, 提供 PostgreSQL dump:
启用步骤¶
- 自备 PostgreSQL 实例
- 在配置中设置连接串 (
r18.dsn) - 设置 dump 下载地址 (
r18.download_url) - 创建定时任务执行导入
导入流程¶
- 探测 dump 版本 (ETag)
- 下载并解压
- 导入临时数据库
- Schema 探针校验
- 原子换名 (旧库 → 新库)
Tip
r18 导入需要 psql 命令行工具. Docker 镜像已包含.
任务系统¶
刮削通过任务系统异步执行:
任务类型¶
| 类型 | 说明 |
|---|---|
REFRESH |
扫描目录, 注册新文件, 可派生 SCRAPE |
SCRAPE |
联网聚合元数据 |
ORGANIZE |
按路径模板整理文件 |
ACTOR_SCRAPE |
抓取演员元数据 |
RESCRAPE |
滚动补刮最久未更新的元数据 |
CLEANUP |
清理悬空引用和失效文件 |
UPSCALE |
超分低清图片 |
R18_IMPORT |
导入 r18.dev dump |
任务链¶
任务之间可形成依赖链:
REFRESH→SCRAPE→ACTOR_SCRAPE- 手动
SCRAPE→ACTOR_SCRAPE(链式触发)
缓存控制¶
刮削任务支持细粒度缓存控制:
metadata: 是否复用站点原始数据缓存trans: 是否复用翻译缓存- 空集 = 强制全部刷新
排障¶
刮削失败¶
- 检查任务日志: 任务详情页 → 查看报告
- 检查站点结果: 每个站点的成功/失败状态
- 检查网络配置: 代理、超时、限速
数据不完整¶
- 检查内容类型是否正确
- 检查路由配置是否包含目标站点
- 尝试强制刷新重刮
翻译异常¶
- 检查 LLM 配置是否正确
- 检查 API 密钥是否有效
- 删除
translations.db强制重译