블로그

작성자 javinfo team

DMM API의 문제

DMM에는 쓸 만한 공개 API가 없다. dmm.co.jp는 전 세계를 지오블록하고, FANZA 제휴 API는 일본어 전용이다. javinfo는 코드로 정규화된 DMM 메타데이터를 반환한다.

dmm.co.jp region restriction error message

dmm.co.jp는 대부분의 JAV 메타데이터가 사는 곳입니다. 동시에 인터넷의 나머지 부분이 존재하지 않는다고 깊이 확신하는 곳이기도 합니다.

일본 밖에서 접속하면 정중한 일본어 에러 페이지가 떠서 떠나라고 말합니다. 이 서비스는 귀하의 지역에서 이용할 수 없습니다, 라고요. 예외 목록도, 개발자 포털도, 아무것도 없습니다. 일본의 인터넷 인프라는 여전히 2003년처럼 굴러가고 있고, 아무도 그들에게 그 사실을 알려주지 않았습니다.

DMM에 공개 API가 있는가?

없습니다. DMM은 한 번도 공개한 적이 없습니다. 나와 있는 것은 affiliate.dmm.com/api의 제휴 API인데, 이게 얼마나 우스운지 아무리 강조해도 부족합니다. 이것 역시 같은 지오블록 뒤에 있습니다. 당신에게 트래픽을 가져다주기로 되어 있는 API의 문서를 읽으려면 일본 IP가 필요합니다. DMM의 성인 부문인 FANZA도 다르지 않습니다. FANZA 제휴 API도 같은 지오블록 뒤에 있고, 마찬가지로 일본어 전용 문서입니다. 일본 웹 논리의 극치입니다.

설령 어떻게든 그걸 뚫는다 해도, 문서는 전부 일본어이고(당연하죠, 안 그럴 이유가 있나요), 응답 스키마는 2014년 DMM 백엔드 내부가 그대로입니다. 수십 개의 필드, 변경 이력 없음, 무언가 망가져도 일절 알림 없음. 어느 날 갑자기 작동을 멈추고, 그 이유는 당신이 직접 알아내야 합니다.

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"
}
}

우리 데이터베이스는 dmm.co.jp 라이브러리의 약 99%를 커버하며, 대부분의 코드는 첫 시도에 해결됩니다. 제목, 발매일, 출연진, 메이커, 레이블, 시리즈, 수록 시간, 커버 아트, 샘플 URL. 엔드포인트 하나, 응답 형태 하나, 매번 같은 필드. 그것이 어떻게, 어디서 스크레이핑됐는지 알 필요가 없고, 솔직히 스크레이핑에 대해 덜 생각할수록 더 행복합니다. 그것이 API 우선, 프로바이더에 종속되지 않는 설계의 모든 핵심입니다.

DMM만 까다로운 소스는 아닙니다. 이른바 JavDB API도 똑같이 썩어 있습니다. 지오블록 대신 Cloudflare가 가로막고 있을 뿐입니다. 둘 다 데이터가 어디서 왔든 같은 정규화된 형태를 반환하는 단일 JAV 메타데이터 API 뒤의 소스 중 하나일 뿐입니다.

app.javinfo.dev에서 가입하면 키를 발급받고 결제를 관리할 수 있습니다. 이 API는 RapidAPI에서도 사용할 수 있습니다. 1분 만에 시작할 수 있습니다.