ブログ

著者 javinfo team

JAVポルノデータベース:APIとしてクエリしフィルターする

実際にクエリできるJAVポルノデータベース。ジャンル、女優、メーカー、収録時間、発売日でフィルターし、結果をJSONでページ送りできる。スクレイピング不要。

閲覧できるJAVポルノデータベースはいくらでもあります。javdatabase.com、JavDB、MissAV——ページを開き、ジャンルタグをクリックし、スクロールする。ないのは、自分で作らない限り、クエリ できるデータベースです。自分のアプリからフィルターを送り、構造化された結果を受け取れるもの。閲覧とクエリは別の仕事であり、これらのサイトはどれも後者をこなしません。

javinfo はこなします。/query エンドポイントは検索語、フィルターの組み合わせ、あるいはその両方を受け取り、一致した結果をページ分割されたリストとしてJSONで返します。

フィルターでデータベースをクエリする

たとえば、2時間を超える巨乳作品を新着順で欲しいとします。それはリクエストひとつで済みます。

Filter the database
curl -X POST "https://api.javinfo.dev/query" \
-H "x-javinfo-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"filter": { "genre": "Big Tits", "runtimeMin": 120 },
"sort": "release",
"num": 10
}'
Response
{
"source": "fanza",
"count": 10,
"results": [
{
"id": "118abp00999",
"dvdId": "ABP-999",
"title": "...",
"cover": "https://pics.dmm.co.jp/.../ps.jpg",
"releaseDate": "2019-01-04",
"extra": {
"runtimeMins": 130,
"maker": "...",
"categories": ["Big Tits"],
"actresses": [{ "name": "...", "image": "https://..." }]
}
}
]
}

q はコード、タイトル、女優で検索します。filter はそれを絞り込みます。どちらか一方でも、両方でも送れます。q のないフィルターは、有効なカタログ閲覧として成立します。

フィルター一覧

どのフィールドも任意です。必要なものだけを送ってください。

並び替えは sort で行い(デフォルトは relevance、他に releaseupdaterating)、ページングは pagenum で行います(1ページあたり最大50件)。すべてのプロバイダーがすべてのフィルターに対応しているわけではありません。収録時間と発売日の範囲は missav に依存し、availabilityrating は javdb から来て、genre/actress/maker は fanza/dmm と javdatabase にまたがって最も広くカバーされます。ですからフィルターがプロバイダー固有の場合は providers でソースを固定してください。値はそのまま透過して渡されるので、ジャンル名は fanza/javdatabase では英語、missav では日本語になります。

一致から完全なレコードへ

/query はリストを返します。欲しいコードが手に入ったら、/movie がそのコードの完全な正規化レコードを返します。すべてのプロバイダーがマッピングされる同じ result.* の形で、追加情報が JavDBのマグネットリンク でも、MissAVのストリーム でも、javdatabaseの説明文とサンプル でも変わりません。プロバイダー非依存JAVメタデータAPI がひとつ、エンドポイントはふたつ。探すための /query、取得するための /movie です。

app.javinfo.dev で登録してキーを取得し、x-javinfo-key ヘッダーで渡します(RapidAPI でも利用できます)。課金は従量制です。/query は$0.0002、/movie は成功した結果ごとに$0.0005、失敗したルックアップは無料。新規登録には100回以上の無料ルックアップが付き、クレジットカードは不要です。ホストするスクレイパーも、戦う Cloudflare も、リバースエンジニアリングするスキーマも不要。ただ呼び出せるデータベースがあるだけです。