Si quieres metadatos JAV en tu app, este es el camino que todos recorren. Encuentras una fuente, escribes un scraper, el scraper se rompe, escribes otro para una segunda fuente que cubra los huecos, y seis meses después estás manteniendo cinco integraciones frágiles solo para conseguir un título, una fecha de lanzamiento y una imagen de portada.
No hay ninguna API de metadatos JAV pública y estable por ahí. Nunca la hubo. javinfo es una. Esa es toda la razón por la que existe.
Por qué una “API de metadatos JAV” es tan difícil de encontrar
Los datos son reales y están bien estructurados. El acceso es el problema. Cada fuente a la que recurrirías es un sitio web con defensas, no una API con un contrato:
- DMM / FANZA tiene la mayor parte del catálogo y geobloquea a casi todo el planeta. Hay una API de afiliados, pero los docs son solo en japonés y están detrás del mismo bloqueo.
- JavDB no tiene ninguna API oficial, solo scrapers comunitarios usando el nombre, la mayoría de ellos necesitando FlareSolverr para pasar Cloudflare.
- JavBus, JavLibrary, R18 son la misma historia: scrapers autoalojados y contenedores Docker, parsers atados a HTML que cambia sin aviso.
Así que la “API” que encuentras en GitHub siempre es un scraper, y un scraper hereda cada problema que el sitio fuente tiene. Un renombrado de clase rompe tu parser sin changelog y sin aviso. Los desafíos de Cloudflare y los bloqueos de región significan que también corres un bypass de navegador headless y un proxy. Y como cada fuente devuelve una forma distinta, cubrir los huecos implica normalizar tú mismo tres o cuatro esquemas.
No mantienes una integración. Mantienes un scraper, un bypass, un proxy y un buscapersonas para las 2am.
Qué hace javinfo en su lugar
Envía un código a POST /movie, recibe un único resultado normalizado, la misma forma de campos sin importar qué fuente respondió. ¿Necesitas una lista? POST /query devuelve coincidencias candidatas para una búsqueda amplia.
curl -X POST "https://api.javinfo.dev/movie" \ -H "x-javinfo-key: YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "q": "SSIS-001" }'{ "q": "SSIS-001", "source": "fanza", "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" }}Cada proveedor se mapea a la misma forma base result: dvdId, titleEn/titleJa, releaseDate, runtimeMins, makers, label, series, actresses, jacketFullUrl, y más. Lees result.* igual entre fuentes. Nosotros corremos el scraping, las peleas con Cloudflare y los rodeos del geobloqueo para que tú no tengas que hacerlo. Este es el diseño agnóstico de proveedores sobre el que está construido todo.
Los proveedores
Deja que javinfo elija la primera coincidencia, o fija una fuente con providers:
dmm/fanzadevuelve metadatos bilingües (título, reparto, productora, sello, serie, portadas) más imágenes de perfil de las actrices y URLs de muestra/galería. Disponible en cada petición.javdbsuma un arregloextra.downloadLinkscon enlaces magnet y de descarga, lo que los scrapers pelean por conseguir, además deextra.scoreyextra.voteCount.missavsumaextra.pageUrly un objetoextra.streamscon una lista de reproducción HLSmaster(.m3u8) más variantes por resolución.javdatabaseañade una descripción, imágenes de muestra y un tráiler.javlibraryconsulta por código: título, reparto, géneros, carátula, muestras y la URL de la página. Sin magnets ni streams — el fallback de catálogo profundo.
En una falla recibes un 404, lo que normalmente solo significa que el código no está indexado. Las respuestas se cachean en el servidor, así que las búsquedas repetidas son rápidas.
Empieza
Regístrate en app.javinfo.dev, consigue una key y pásala en la cabecera x-javinfo-key (también disponible en RapidAPI). Cada proveedor devuelve datos completos en cada petición – sin planes, sin gating por proveedor. La facturación es por uso: /movie cuesta $0,0005 por resultado exitoso y /query cuesta $0,0002 – las búsquedas fallidas no se cobran – con un límite fijo de 60 peticiones por minuto. Recargas en USDC, acreditado 1:1, y las recargas de $50+ reciben un bono aleatorio del 5–50%; los nuevos registros empiezan con 100+ búsquedas gratis, sin tarjeta de crédito. Sin Docker, sin FlareSolverr, sin VPN japonesa, sin cookie que refrescar. Puedes estar corriendo en un minuto.