Провайдер javlibrary — запасной источник с глубоким каталогом: хорош, когда кода нет нигде больше, плох, если закрепить его на каждый запрос и удивляться, почему всё тормозит. Вот как вызывать его без гаданий.
Когда к нему тянуться
Берите javlibrary, когда:
- Код 404’ится на FANZA/DMM, missav, javdb и javdatabase
- Нужны page URL JavLibrary + сэмпл-изображения для известного DVD ID
- Делаете голый keyword-поиск, а быстрые провайдеры возвращают ерунду
Не закрепляйте его как дефолтный «всегда сначала этот» источник. Browser scrape = выше latency. Оставляйте последним в fan-out, пока нет причины иначе.
Зачем он вообще существует: JavLibrary API.
1. Получите ключ
Зарегистрируйтесь на app.javinfo.dev. Ключ — в x-javinfo-key. Тот же ключ работает на RapidAPI через их заголовки, если вам удобнее этот путь.
2. Полная запись: POST /movie
Точный код, полная нормализованная строка:
curl -X POST "https://api.javinfo.dev/movie" \ -H "x-javinfo-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "SSIS-001", "providers": "javlibrary" }'Получаете название, состав, жанры (categories), хронометраж, дату выхода, студию (makers / label), обложку (jacketFullUrl), плюс extra.pageUrl и extra.sampleImages. source будет "javlibrary".
Без магнетов. Без .m3u8 стримов. Если нужны они — закрепляйте javdb или missav: та же форма метаданных, другие extras.
3. Списочный поиск: POST /query
Keyword-поиск по кодам и лейблам. Держите его голым:
curl -X POST "https://api.javinfo.dev/query" \ -H "x-javinfo-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "SSIS", "providers": "javlibrary", "num": 10, "page": 1 }'Что работает:
q— фрагмент кода или keyword в духе лейблаnum— размер страницы (по умолчанию 10, макс. 50). Строки режутся доnumдо обогащения обложкамиpage— с 1; javlibrary отдаёт крупные list-страницы, мы нарезаем подnum
Что тихо (или громко) выкидывает javlibrary:
- Любой
filter(genre, actress, runtime range, censored, …) - Любой
sort, кромеrelevance(или дефолта)
В режиме fan-out эти параметры пропускают javlibrary и пробуют следующего способного провайдера. Если закрепить "providers": "javlibrary" с фильтром, который он не тянет, получите 422 с причиной — не частичную отгадку.
Хиты query выглядят так:
{ "q": "SSIS", "source": "javlibrary", "count": 10, "results": [ { "id": "javmezzbqu", "dvdId": "SSIS-001", "title": "Newcomer NO.1 STYLE ...", "cover": "https://...", "releaseDate": "2020-07-07", "extra": { "url": "https://www.javlibrary.com/en/..." } } ]}Обложки и даты выхода подтягиваются из индекса DMM/FANZA, когда код матчится. Миниатюры списка — запасной вариант.
Fan-out vs pin
Порядок по умолчанию (первый полный хит побеждает):
FANZA → DMM → missav → javdb → javdatabase → javlibraryНе передавайте providers — и javlibrary ответит только когда все впереди промахнулись или не могут удовлетворить запрос. Закрепляйте, когда нужен именно этот источник, даже если более быстрый тоже справился бы.
Ошибки, которые сжигают запрос
Ждать download-ссылки. Не тот провайдер. Берите javdb.
Слать filter.genre при закреплении на javlibrary. 422. Уберите фильтр или закрепите источник, который его умеет (fanza/dmm, missav, javdatabase).
Гонять его ради скорости. Он последний не просто так. Кеш помогает на повторных кодах (cacheTtl — час на сервере), но первый scrape всё равно browser job.
Относиться к /query как к полному браузеру архива. Это keyword relevance, не genre ∩ studio архивы. Для archive-style обхода ближе javdatabase.
Цены + следующий шаг
Успешный /movie = $0.0005. Успешный /query = $0.0002. Промахи и ошибки не тарифицируются. Новым регистрациям — 1000+ бесплатных запросов.
Возьмите ключ, прогоните curl выше, потом воткните то же body в приложение. Одна независимая от провайдера интеграция — JavLibrary просто ещё один id в providers.