博客

作者 javinfo team

AdultDataLink + javinfo:为 JAV 重建它的分析思路

AdultDataLink 关停并开源了代码。我们读了它的代码,用 javinfo 的数据为 JAV 重建了女优 OHLC、排行榜与发现思路。哪些能对上,哪些不能。

AdultDataLink(ADL)已经消失。十月,它的作者在 r/SaaS 上发布了关停通知,并把代码发布为一个已归档、MIT 许可的仓库。按作者自己的说法,托管 API 自四月底起就已下线。

我们读了那份代码,在 javinfo 自有数据上为 JAV 重建了它最好的分析与发现思路。ADL 抓取了约 20 个西方 tube 和媒体站点。javinfo 只做 JAV,所以这是另一个产品;如果你的应用需要那些站点的数据,在这里找不到。那种需求应该从 ADL 的仓库起步。

如果你喜欢 ADL 的女优分析、趋势和推荐,又在做 JAV 相关的项目,这些思路现在大多都有对应的端点了。0.7.0 还新增了 /resolve 和 javbus 数据源,这两者与 ADL 无关。下面都会讲到。

我们从 ADL 拿了什么,现在放在哪里

我们读了 ADL 的代码,并在我们的数据上重新实现了这些想法。我们没有复制代码。这张表里每一行 ADL 的内容都来自其公开仓库;右列是我们最终交付的。

ADL(services/engine) javinfo
女优 OHLC「股票」K 线(/pornstar-calculation/fetch-pornstar-ohlc-data) GET /analytics/idols/ohlc
每日与每周涨幅榜前 50(/fetch-top-50-daily-gain、/fetch-top-50-weekly-gain) GET /analytics/leaderboard,metric=momentum
女优信息 GET /analytics/idols/stats 和 /idols
关键词趋势(/keywords) 最接近的匹配:/discover/tags 和 /analytics/market
个性化搜索(/machine-learning/search) GET /discover/for-you

对上的只是思路,不是输出结果。ADL 的 K 线来自它从 tube 站点抓取的数据。我们的 K 线基于发行量构建,因为这是 JAV 目录能衡量的东西。ADL 追踪关键词表现。我们统计一段时间窗口内的标签和类型涨跌。ADL 用访客的 IP 和请求头来做个性化;/discover/for-you 使用你账号自己的搜索历史。

不在计划内:tube 站点爬虫、抓取项目、视频工具、YOLO 标注,以及 Reddit 相关路由。

发现

/discover/* 系列端点帮你在没有番号时找到作品。

日历这个端点有个小麻烦。大时间窗口会按完整的一天分页返回。查询 2026-11-01 到 2026-11-14,会得到:

日历,两周
curl "https://api.javinfo.dev/discover/calendar?from=2026-11-01&to=2026-11-14" \
-H "x-javinfo-key: YOUR_KEY"
响应(已截断)
{
"through": "2026-11-05",
"truncated": true
}

through 是结果中包含的最后一天完整日期。从 2026-11-06 再次查询,就能拿到剩下的部分。重复直到 truncated 为 false。每一页都是一次单独的调用。

女优分析

/analytics/* 系列端点回答关于单个女优或整个市场的问题。

一次真实的调用,以 Yua Mikami 为例:

女优统计
curl "https://api.javinfo.dev/analytics/idols/stats?q=yua-mikami" \
-H "x-javinfo-key: YOUR_KEY"

它报告了 1,127 部作品、8 家工作室。作品最多的类型是 Big Tits,共 765 部;作品最多的工作室是 S1 NO.1 STYLE,共 991 部。works 对每部作品只计一次,即使多个来源都收录了它。

同一位演员,通过 /ohlc 并设置 bucket=month 查询。每根 K 线是该月的累计作品数,下方柱状条是当月发行数。图中是这次调用返回的 131 根月度 K 线里最近三年的部分。

三上悠亜近三年按月累计作品数的 K 线图,最终为 1,127 部

Resolve

一部作品的元数据来自许多来源,而它们并不总是一致。/resolve/* 接收一个番号,并逐一检查所有来源。

以 EBOD-391 为例:

带 JPG 标题卡的 Resolve
curl "https://api.javinfo.dev/resolve?q=EBOD-391&format=jpg" \
-H "x-javinfo-key: YOUR_KEY"

这个番号在 FANZA、javdatabase、javlibrary、javbus 和 missav 中都能找到。响应包含指向完整记录的 link: "/movie?q=EBOD-391"。标题卡以内联方式返回,JPG 格式约 100 KB。它显示评分 8.1/10、片长 119 分钟、45 个磁力,以及该作品可流式播放。

EBOD-391 的 /resolve 标题卡:评分 8.1/10,119 分钟,发行于 2014-08-13,45 条磁力,可在线播放

逐字段视图的存在就是为了来源溯源。对同一个番号,发行日期在 FANZA 上是 2014-08-13,在 javbus 上是 2014-08-09。这就是来源之间的直接分歧,在这样规模的目录里时有发生。/resolve/provenance 会报告两个值,并给出它为所选值计算的可信度分数,让你自己决定信哪个。

javbus 在本版本中作为一个来源加入。它为 /resolve 和溯源提供数据,当你请求 censored=uncensored 时,/discover/random 会路由到它。

价格

只对成功的 200 响应计费。

调用 价格
/discover/* $0.0004
/resolve/compare、/provenance、/streams $0.0004
/resolve(含标题卡) $0.0012
/resolve/batch 每 10 个番号 $0.0004,最多 100 个
/analytics/idols/stats、/ohlc、/timeline、/market $0.0006
/analytics/idols/costars 最多 10 条结果 $0.0006,默认 15 条时 $0.0009
/analytics/leaderboard 最多 10 条结果 $0.0006,默认 20 条时 $0.0012

基础价格覆盖最多 10 条结果。列表类端点超过后按量递增:20 条结果的价格是 10 条的两倍,而好几个端点的默认值都超过 10(trending 返回 20 条,所以开箱即用就是 $0.0008)。缓存命中、错误和降级响应都免费。

新账号获赠 $0.02 免费额度。首次充值前每分钟限 10 次请求,任意一次购买后为 60 次。

从 ADL 迁移

有三处与你可能针对 ADL 写过的代码不同。

致谢

两年里几乎独自构建和运营这么大的项目很不容易;没有让代码烂在手里,而是选择公开,这很慷慨。感谢 ADL 的作者,也感谢那些让我们得以在其上继续构建的想法。

阅读发现、分析和 resolve的文档,然后到 app.javinfo.dev 注册获取密钥。