閲覧できるJAVポルノデータベースはいくらでもあります。javdatabase.com、JavDB、MissAV——ページを開き、ジャンルタグをクリックし、スクロールする。ないのは、自分で作らない限り、クエリ できるデータベースです。自分のアプリからフィルターを送り、構造化された結果を受け取れるもの。閲覧とクエリは別の仕事であり、これらのサイトはどれも後者をこなしません。
javinfo はこなします。/query エンドポイントは検索語、フィルターの組み合わせ、あるいはその両方を受け取り、一致した結果をページ分割されたリストとしてJSONで返します。
フィルターでデータベースをクエリする
たとえば、2時間を超える巨乳作品を新着順で欲しいとします。それはリクエストひとつで済みます。
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 }'{ "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 のないフィルターは、有効なカタログ閲覧として成立します。
フィルター一覧
どのフィールドも任意です。必要なものだけを送ってください。
genre、actress、maker、series、director、label、actor——見ての通りのメタデータで一致censored——"censored"または"uncensored"runtimeMin/runtimeMax——分単位の長さreleaseAfter/releaseBefore——YYYY-MM-DD形式の日付範囲availability——"playable"、"magnets"、"subtitle"、"single"のいずれか
並び替えは sort で行い(デフォルトは relevance、他に release、update、rating)、ページングは page と num で行います(1ページあたり最大50件)。すべてのプロバイダーがすべてのフィルターに対応しているわけではありません。収録時間と発売日の範囲は missav に依存し、availability と rating は 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 も、リバースエンジニアリングするスキーマも不要。ただ呼び出せるデータベースがあるだけです。