Блог

Автор javinfo team

Проблема DMM API

У DMM нет пригодного публичного API — dmm.co.jp геоблокирует весь мир, а партнёрский API FANZA только на японском. javinfo возвращает нормализованные метаданные DMM по коду.

dmm.co.jp region restriction error message

dmm.co.jp — это место, где живёт большинство метаданных JAV. И при этом он глубоко убеждён, что остального интернета не существует.

Зайдите на него из-за пределов Японии — и получите вежливую страницу ошибки на японском, которая велит вам уйти. Сервис недоступен в вашем регионе. Никакого списка исключений, никакого портала для разработчиков, ничего. Интернет-инфраструктура Японии до сих пор работает так, будто на дворе 2003 год, и никто им об этом не сказал.

Есть ли у DMM публичный API?

Нет. DMM никогда его не выпускал. Что есть в наличии — это партнёрский API на affiliate.dmm.com/api, который — и не могу подчеркнуть, насколько это смешно — тоже находится за тем же геоблоком. Вам нужен японский IP, чтобы прочитать документацию к API, который якобы должен приводить вам трафик. Взрослое подразделение DMM, FANZA, ничем не отличается: партнёрский API FANZA сидит за тем же геоблоком и с той же документацией только на японском. Вершина японской веб-логики.

Даже если вы как-то это обойдёте, документация полностью на японском (конечно, а с чего бы иначе), а схема ответа — это то, как выглядели внутренности бэкенда DMM в 2014 году: десятки полей, никакого журнала изменений и ноль уведомлений, когда что-то ломается. Что-то просто перестаёт работать в один прекрасный день, и вам предстоит выяснять почему.

Что вместо этого возвращает javinfo

Мы создали javinfo, потому что ничего из этого не работает, если вы за пределами Японии, и, откровенно говоря, потому что кто-то должен был это сделать. Отправьте код DVD по HTTPS — получите один нормализованный результат. Никакого японского IP, никакого скрапинга, никаких догадок насчёт схемы 2014 года.

Look up a DMM code
curl -X POST "https://api.javinfo.dev/movie" \
-H "x-javinfo-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "q": "SSIS-001" }'
Response
{
"q": "SSIS-001",
"source": "r18",
"result": {
"dvdId": "SSIS-001",
"titleEn": "Newcomer NO.1 STYLE ...",
"releaseDate": "2020-07-07",
"runtimeMins": 120,
"makers": ["S1 NO.1 STYLE"],
"actresses": ["Example Actress"],
"jacketFullUrl": "https://pics.dmm.co.jp/digital/video/ssis00001/ssis00001pl.jpg"
}
}

Наша база данных покрывает примерно 99% библиотеки dmm.co.jp, и большинство кодов разрешаются с первой попытки: название, дата выхода, состав, производитель, лейбл, серия, продолжительность, обложка, URL сэмплов. Один эндпоинт, один формат ответа, одни и те же поля каждый раз. Вам не нужно знать, как и откуда это было соскрейплено, и, честно говоря, чем меньше вы думаете о скрапинге, тем лучше. В этом и весь смысл дизайна API в первую очередь, без привязки к источнику.

DMM — не единственный источник, который вам сопротивляется. Так называемый JavDB API гниёт точно так же, только вместо геоблока там Cloudflare. Оба — это один источник из тех, что скрыты за единым API метаданных JAV, который возвращает один и тот же нормализованный формат, независимо от того, откуда взялись данные.

Зарегистрируйтесь на app.javinfo.dev, чтобы получить ключ и управлять оплатой — API также доступен на RapidAPI. Начать можно за минуту.