블로그

작성자 javinfo team

JAV 메타데이터 API: 다섯 개의 스크레이퍼 대신 엔드포인트 하나

모든 JAV 메타데이터 소스는 썩어가는 스크레이퍼다. javinfo는 호스팅 API 하나다. DVD 코드를 보내면 정규화된 메타데이터가 돌아오고, 돌볼 스크레이퍼는 없다.

JAV 메타데이터를 앱에 넣고 싶다면, 누구나 걷는 길은 이렇습니다. 소스를 찾고, 스크레이퍼를 짜고, 스크레이퍼가 망가지고, 빈틈을 메우려고 두 번째 소스용으로 또 하나를 짜고, 반년 뒤에는 제목 하나, 발매일 하나, 커버 이미지 하나를 얻으려고 부서지기 쉬운 통합 다섯 개를 유지보수하고 있습니다.

공개되고 안정적인 JAV 메타데이터 API는 세상에 없습니다. 처음부터 없었습니다. javinfo가 바로 그것입니다. 그게 이것이 존재하는 이유의 전부입니다.

왜 “JAV 메타데이터 API”는 이토록 찾기 어려운가

데이터는 진짜이고 잘 구조화되어 있습니다. 문제는 접근입니다. 당신이 손을 뻗을 만한 모든 소스는 계약을 갖춘 API가 아니라, 방어를 갖춘 웹사이트입니다.

그래서 GitHub에서 찾는 “API”는 언제나 스크레이퍼이고, 스크레이퍼는 소스 사이트가 가진 모든 문제를 물려받습니다. 클래스 이름 변경 하나가 변경 이력도 경고도 없이 당신의 파서를 망가뜨립니다. Cloudflare 챌린지와 지역 차단 때문에 헤드리스 브라우저 우회와 프록시도 함께 돌리게 됩니다. 그리고 각 소스가 다른 형태를 반환하므로, 빈틈을 메우려면 서너 개의 스키마를 직접 정규화해야 합니다.

당신은 통합 하나를 유지보수하는 게 아닙니다. 스크레이퍼, 우회, 프록시, 그리고 새벽 2시를 위한 호출기를 유지보수하게 됩니다.

javinfo가 대신 하는 것

엔드포인트 하나. 코드를 보내면 정규화된 결과 하나가 돌아오고, 어느 소스가 응답하든 같은 필드 형태입니다.

Look up a 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"
}
}

모든 프로바이더는 동일한 result 형태에 매핑됩니다. dvdId, titleEn/titleJa, releaseDate, runtimeMins, makers, label, series, actresses, jacketFullUrl 등입니다. 소스를 넘나들며 result.*를 같은 방식으로 읽습니다. 스크레이핑, Cloudflare와의 싸움, 지오블록 우회는 우리가 대신 합니다. 이것이 전체가 그 위에 세워진 프로바이더에 종속되지 않는 설계입니다.

프로바이더

javinfo가 첫 매치를 고르게 하거나, providers로 소스를 고정하세요.

미스가 나면 404가 돌아오는데, 보통 그 코드가 인덱싱되지 않았다는 뜻일 뿐입니다. 응답은 서버 측에서 캐시되므로(X-Cache 헤더로 확인) 반복 조회는 빠릅니다.

시작하기

app.javinfo.dev에서 가입하고 키를 받아 x-javinfo-key 헤더로 전달하세요(RapidAPI에서도 이용할 수 있습니다). 모든 프로바이더가 라이브입니다. r18, javdb, missav는 모두 매 요청에서 완전한 데이터를 반환하며 게이팅이 없습니다. 과금은 사용량 방식입니다. /movie는 성공한 결과당 $0.001, /query는 $0.0002이며, 실패한 조회는 과금되지 않습니다. 한도는 분당 60 요청입니다. 충전은 USDC로 하며 1:1로 적립되고, $50 이상 충전에는 5–50%의 랜덤 보너스가 붙습니다. 다만 신규 가입 시 시작용으로 1,000회 이상의 무료 조회가 주어지며, 신용카드는 필요 없습니다. 넓게 검색할 때는 /query가 최적 결과 하나가 아니라 매치 목록을 반환합니다. Docker도, FlareSolverr도, 일본 VPN도, 갱신할 쿠키도 필요 없습니다. 1분 만에 실행할 수 있습니다.