Прежде чем встроить JAV porn API в продукт, кто-нибудь обязательно спросит, а можно ли вообще. Вопрос правильный, и ответ скучный: всё зависит от того, что именно вы перемещаете. Байты и факты — это разный груз.
Метаданные — это не видео
У релиза JAV есть каталожная запись: DVD-код, название на двух языках, дата выхода, хронометраж, студия, лейбл, серия, состав. Это факты об опубликованном продукте — тот же класс сущностей, что и запись ISBN. Это не сам продукт.
javinfo возвращает эту запись. Он индексирует метаданные и не хранит никакой видеотеки: ни файлов, ни транскодов, ни плеера. Вместо визуальных материалов вы получаете ссылки — URL обложки, URL страницы источника, а у некоторых провайдеров URL манифеста потока или магнет. Ссылка разрешается там, куда она указывает, на чужом сервере. В этом всё различие, и именно оно определяет, что вы на самом деле строите.
Проверьте, а не верьте на слово
Соберите имена хостов из реального ответа и посмотрите, куда они ведут:
curl -s -X POST "https://api.javinfo.dev/movie" \ -H "x-javinfo-key: $JAVINFO_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "EBOD-391", "providers": "missav" }' \| jq -r '.. | strings | select(startswith("http"))' \| cut -d/ -f3 | sort -ufourhoi.commissav.wssurrit.comТри хоста, и ни один из них не наш. Обложку, страницу, манифест — каждый из них забираете у источника вы, на своей инфраструктуре, под своими логами. Самого фильма в теле ответа нет никогда, ни у одного провайдера. Единственный ресурс, который javinfo где-либо отдаёт сам, — это промо-ролик самого издателя, проксируемый, чтобы он открывался за пределами Японии.
Скрейпить самому — путь более рискованный
Инстинкт подсказывает, что собственный скрейпер — осторожный вариант: никаких третьих сторон, никакой зависимости, ничьи условия читать не надо. Всё наоборот.
Скрейпинг ставит вас в прямые отношения с условиями каждого источника, с вашего собственного IP, в том темпе, который задал ваш цикл. Вы принимаете эти условия самим фактом запроса. Вы получаете рейт-лимит, челлендж Cloudflare, геоблок и в итоге бан — и бан приходит на тот адрес, с которого уходит ваш продакшен-трафик. Добавьте headless-браузер, чтобы пройти челлендж, и вы уже гоняете автоматизированный обход защиты на собственном железе, а это принципиально другая позиция, чем вызов эндпоинта. Технический разбор этого месива — один вызов, пять источников, одна форма ответа — лежит в руководстве по интеграции API метаданных JAV. Здесь тезис уже: вариант, который выглядит самым дешёвым, концентрирует всю ответственность на вас.
Что остаётся за вами
Вызов API не перекладывает на него ваши обязательства. Четыре вещи остаются на вашей стороне линии:
- Ставьте возрастной фильтр на своей поверхности. javinfo рассчитан на совершеннолетних в их юрисдикции. То, что вы показываете своим пользователям, — ваш барьер, и в юрисдикции с законом о верификации возраста это не галочка.
- Не перезаливайте то, что вам отдали. Прямая ссылка на обложку и копия в вашем бакете — два разных действия с двумя разными владельцами. Кэшируйте ради скорости, если нужно, но понимайте, что именно вы делаете.
- Считайте указатели указателями. Магнеты и манифесты потоков приходят из сторонних индексов. javinfo не ручается за то, что на другом конце, и ваш интерфейс не должен тоже.
- Указывайте источник. В каждом результате есть
sourceиsite. Показывайте их.
Ничего из этого не является юридической консультацией, а юрисдикции по контенту для взрослых расходятся радикально. Это описание того, что идёт по проводу, — как javinfo обходится с остальным, написано в политике конфиденциальности.
Ключи и биллинг живут на app.javinfo.dev; API также есть на RapidAPI. Вы платите за успешный запрос — $0.0005 за результат /movie, $0.0002 за /query, за промах ничего, — так что проверить, что именно возвращается, стоит примерно столько же, сколько об этом подумать. Новый ключ стартует со 100+ бесплатных запросов, без карты.