Провайдер 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, когда код матчится. Миниатюры списка — запасной вариант.
Ошибки, которые сжигают запрос
Ждать download-ссылки. Не тот провайдер. Берите javdb.
Слать filter.genre при закреплении на javlibrary. 422. Уберите фильтр или закрепите источник, который его умеет (fanza/dmm, missav, javdatabase).
Гонять его ради скорости. Он последний не просто так. Кеш помогает на повторных кодах (cacheTtl — час на сервере), но первый scrape всё равно browser job.
Относиться к /query как к полному браузеру архива. Это keyword relevance, не genre ∩ studio архивы. Для archive-style обхода ближе javdatabase.
Цены + следующий шаг
Успешный /movie = $0.00075. Успешный /query = $0.00035. Промахи и ошибки не тарифицируются. Новым регистрациям — небольшой бесплатный пробный баланс.
Возьмите ключ, прогоните curl выше, потом воткните то же body в приложение. Одна независимая от провайдера интеграция — JavLibrary просто ещё один id в providers.