Elige según la forma de tus llamadas
Elige OMDb cuando quieras un registro pequeño por título y su clave gratuita cubra tu volumen. Elige amodb cuando te quedes corto, o cuando quieras el mismo estilo de solicitud de OMDb junto a créditos, imágenes y traducciones con una sola clave. OMDb devuelve JSON o XML, usa un parámetro apikey y ofrece una clave gratuita con un tope diario de 1,000 solicitudes (consulta su sitio) más un nivel de colaborador de pago. amodb es solo de pago y responde a los principales parámetros de OMDb además de TMDB v3.
Qué se mantiene igual
El endpoint de OMDb está en https:/, y la barra final es opcional. Tu código de análisis actual no debería necesitar cambios para estos elementos.
| Elemento de OMDb | En amodb |
|---|---|
apikey | El mismo parámetro, con tu clave de amodb |
i y t | Búsqueda por id de IMDb o por título |
s y page | Búsqueda con 10 resultados por página y un recuento totalResults, con page hasta 100 |
type y y | Filtro por movie o series y por año |
plot | short o full |
r | Solo se acepta json |
| Campos del cuerpo | Con los nombres de OMDb, de Title a Response |
Ratings | Un array de pares Source y Value para Internet Movie Database, Rotten Tomatoes y Metacritic, cuando existen |
| Errores | {"Response":"False", con el texto de OMDb, en una respuesta HTTP 200 |
Lo que no se traslada
- XML. Una solicitud con
r=xmldevuelve 400 con{"Response":"False",."Error":"Only r= json is supported."} - Temporadas y episodios.
SeasonyEpisodese ignoran, ytype=episodeno encuentra nada. Una solicitud coni=tt0903747&Season=1devuelve el registro de la serie, no una temporada. Usa/3/tv/{id}/season/{n}para los episodios. - Otros parámetros.
callbackse ignora. - Campos sin datos.
DVD,ProductionyWebsiteson siempre"N/A". Los registros de series tienentotalSeasonsy omitenDVD,BoxOffice,ProductionyWebsite. - Pósteres. El campo
Posterapunta ahttps:/en lugar de a otro host. Cambia/ img.amodb.dev/ t/ p/ w300/ ... w300porw780para obtener una imagen mayor de la misma ruta, y las imágenes no necesitan clave.
La lista completa de parámetros y errores está en la página del endpoint de OMDb.
Ejemplo de respuesta
Una solicitud con t=Fight Club devuelve un objeto plano. La respuesta de abajo es real, con solo el texto de Plot abreviado.
{
"Title": "Fight Club",
"Year": "1999",
"Rated": "R",
"Released": "15 Oct 1999",
"Runtime": "139 min",
"Genre": "Crime, Drama, Thriller",
"Director": "David Fincher",
"Writer": "Chuck Palahniuk, Jim Uhls",
"Actors": "Brad Pitt, Edward Norton, Meat Loaf",
"Plot": "A nameless first-person narrator attends support groups in an attempt to subdue his emotional state an...",
"Language": "English",
"Country": "United States, Germany",
"Awards": "Nominated for 1 Oscar. 12 wins & 38 nominations total",
"Poster": "https://img.amodb.dev/t/p/w300/qkrH7rjYKU4KOwwIl6wF6H3ISvm.jpg",
"Ratings": [
{
"Source": "Internet Movie Database",
"Value": "8.8/10"
},
{
"Source": "Rotten Tomatoes",
"Value": "81%"
},
{
"Source": "Metacritic",
"Value": "67/100"
}
],
"Metascore": "67",
"imdbRating": "8.8",
"imdbVotes": "2,669,989",
"imdbID": "tt0137523",
"Type": "movie",
"DVD": "N/A",
"BoxOffice": "$38,003,039",
"Production": "N/A",
"Website": "N/A",
"Response": "True"
}Los valores son cadenas, como en OMDb, así que convierte tú mismo imdbRating, imdbVotes y Runtime. Cada llamada cuenta como una solicitud para tu límite por minuto, sin importar cuántos campos leas.
Comparación de funciones
| Función | OMDb | amodb |
|---|---|---|
| Modelo de precios | Clave gratuita más un nivel de colaborador de pago, consulta su sitio | Periodos prepago, de 1 a 24 meses |
| Nivel gratuito | Clave gratuita con un tope diario de 1,000, consulta su sitio | Ninguno, y sin periodo de prueba |
| Autenticación | Parámetro apikey | apikey en /omdb/, api_key o Bearer en /3 |
| Formato de respuesta | JSON o XML | JSON |
| Idiomas | Consulta su documentación | 14 idiomas de interfaz en las rutas /3 |
| Películas | Sí | Sí |
| TV | Series y episodios, consulta su documentación para ver los campos | Registros de series en /omdb/, temporadas y episodios en las rutas /3 |
| Personas | Nombres como texto en cada registro | Perfiles, filmografía e imágenes en las rutas /3 |
| Imágenes | Enlace al póster en cada registro | Enlace al póster más listas de imágenes, img.amodb.dev |
| Puntuaciones | Campos Ratings, Metascore e imdbRating | Los mismos campos, más un objeto ratings en las rutas /3 |
| Límite de solicitudes | Tope diario en la clave gratuita, consulta su sitio | 20, 40 o 120 por minuto por clave |
| Uso comercial | Consulta su sitio | Se vende como API de pago, consulta los precios |
| Compatibilidad | Define el protocolo de OMDb | Los parámetros de OMDb de arriba y lecturas de TMDB v3 |
En qué se diferencia amodb
- Límites por minuto. Los planes permiten 20, 40 o 120 solicitudes por minuto en una ventana deslizante de 60 segundos. Cada respuesta con clave lleva
X-RateLimit-Remaining, así que un trabajo por lotes puede frenarse antes de ver un 429. - Un paso más allá de los registros sueltos. Un registro de OMDb trae el reparto como texto. Con las rutas
/3puedes pedir el mismo título con créditos, vídeos y traducciones en una sola llamada, y elimdbIDencuentra el registro mediante/3/find. - Imágenes más grandes. Los registros al estilo OMDb dan un solo enlace de póster. El host de imágenes sirve diez tokens de tamaño, de
w92aoriginal. - Más fuentes de puntuaciones. La extensión
/3/movie/{id}/ratingsañade valores de Kinopoisk, Metacritic, Rotten Tomatoes y TMDB cuando se conocen.
Dónde encaja mejor OMDb
- Proyectos pequeños o gratuitos. Una clave gratuita con un tope diario de 1,000 basta para un prototipo o un sitio de aficionado, y amodb no tiene nivel gratuito.
- Consumidores de XML. Si un sistema heredado procesa XML, OMDb lo ofrece y amodb no.
- Consultas de temporadas y episodios. La ruta
/omdb/de amodb no tiene modo de temporada ni de episodio, así que un cliente construido sobre ella necesita las rutas/3. - Simplicidad. Un endpoint y un puñado de parámetros se aprenden fácilmente. Si eso es todo lo que necesitas, ganas poco con el cambio.
Migrar a amodb
Solo cambian la URL base y la clave. Deja el resto de la solicitud como está, después de buscar en tu código r=xml, Season, Episode y type=episode.
const OMDB_BASE = process.env.OMDB_BASE_URL; // before: your current OMDb base URL
const AMODB_BASE = 'https://api.amodb.dev/omdb/'; // after
async function lookup(title) {
const url = new URL(AMODB_BASE);
url.searchParams.set('apikey', process.env.AMODB_KEY);
url.searchParams.set('t', title);
url.searchParams.set('plot', 'short');
const res = await fetch(url);
const data = await res.json();
if (data.Response === 'False') throw new Error(data.Error);
return data;
}
const movie = await lookup('Fight Club');
console.log(movie.Title, movie.Year, movie.imdbRating, movie.Poster);Sigue comprobando el campo Response, como hacías con OMDb. Cuando el valor es la cadena "False", el campo Error lleva el mensaje. Para los episodios, asigna el imdbID una sola vez con /3/find y lee las temporadas desde el lado /3:
curl -s "https://api.amodb.dev/3/find/tt0903747?external_source=imdb_id&api_key=$AMODB_KEY"
curl -s "https://api.amodb.dev/3/tv/1396/season/1?api_key=$AMODB_KEY"Para el lado al estilo TMDB, consulta autenticación y la guía de inicio rápido.
Precios
amodb es de pago y solo se renueva cuando compras otro periodo. Los tres planes se diferencian únicamente en el límite de solicitudes, de 20, 40 o 120 por minuto, y cada uno devuelve todos los datos. Los periodos son de 1, 3, 6, 12 o 24 meses, y los más largos tienen un descuento del 10 al 40 por ciento. Consulta precios para ver los importes actuales.