Блог

Автор javinfo team

Как пользоваться провайдером JavLibrary: lookup /movie и голый /query

Закрепите javlibrary для поиска по коду или пусть он ловит голые /query, которые остальные провайдеры промахивают. num работает; фильтры — нет. Точные формы запросов внутри.

Провайдер javlibrary — запасной источник с глубоким каталогом: хорош, когда кода нет нигде больше, плох, если закрепить его на каждый запрос и удивляться, почему всё тормозит. Вот как вызывать его без гаданий.

Когда к нему тянуться

Берите javlibrary, когда:

Не закрепляйте его как дефолтный «всегда сначала этот» источник. Browser scrape = выше latency. Оставляйте последним в fan-out, пока нет причины иначе.

Зачем он вообще существует: JavLibrary API.

1. Получите ключ

Зарегистрируйтесь на app.javinfo.dev. Ключ — в x-javinfo-key. Тот же ключ работает на RapidAPI через их заголовки, если вам удобнее этот путь.

2. Полная запись: POST /movie

Точный код, полная нормализованная строка:

Movie lookup
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-поиск по кодам и лейблам. Держите его голым:

Bare query (num only)
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 }'

Что работает:

Что тихо (или громко) выкидывает javlibrary:

В режиме fan-out эти параметры пропускают javlibrary и пробуют следующего способного провайдера. Если закрепить "providers": "javlibrary" с фильтром, который он не тянет, получите 422 с причиной — не частичную отгадку.

Хиты query выглядят так:

Query hit shape
{
"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.