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://api.amodb.dev/omdb/, y la barra final es opcional. Tu código de análisis actual no debería necesitar cambios para estos elementos.

Elemento de OMDbEn amodb
apikeyEl mismo parámetro, con tu clave de amodb
i y tBúsqueda por id de IMDb o por título
s y pageBúsqueda con 10 resultados por página y un recuento totalResults, con page hasta 100
type y yFiltro por movie o series y por año
plotshort o full
rSolo se acepta json
Campos del cuerpoCon los nombres de OMDb, de Title a Response
RatingsUn array de pares Source y Value para Internet Movie Database, Rotten Tomatoes y Metacritic, cuando existen
Errores{"Response":"False","Error":"..."} con el texto de OMDb, en una respuesta HTTP 200

Lo que no se traslada

  • XML. Una solicitud con r=xml devuelve 400 con {"Response":"False","Error":"Only r=json is supported."}.
  • Temporadas y episodios. Season y Episode se ignoran, y type=episode no encuentra nada. Una solicitud con i=tt0903747&Season=1 devuelve el registro de la serie, no una temporada. Usa /3/tv/{id}/season/{n} para los episodios.
  • Otros parámetros. callback se ignora.
  • Campos sin datos. DVD, Production y Website son siempre "N/A". Los registros de series tienen totalSeasons y omiten DVD, BoxOffice, Production y Website.
  • Pósteres. El campo Poster apunta a https://img.amodb.dev/t/p/w300/... en lugar de a otro host. Cambia w300 por w780 para 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.

JSON
{
  "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ónOMDbamodb
Modelo de preciosClave gratuita más un nivel de colaborador de pago, consulta su sitioPeriodos prepago, de 1 a 24 meses
Nivel gratuitoClave gratuita con un tope diario de 1,000, consulta su sitioNinguno, y sin periodo de prueba
AutenticaciónParámetro apikeyapikey en /omdb/, api_key o Bearer en /3
Formato de respuestaJSON o XMLJSON
IdiomasConsulta su documentación14 idiomas de interfaz en las rutas /3
PelículasSíSí
TVSeries y episodios, consulta su documentación para ver los camposRegistros de series en /omdb/, temporadas y episodios en las rutas /3
PersonasNombres como texto en cada registroPerfiles, filmografía e imágenes en las rutas /3
ImágenesEnlace al póster en cada registroEnlace al póster más listas de imágenes, img.amodb.dev
PuntuacionesCampos Ratings, Metascore e imdbRatingLos mismos campos, más un objeto ratings en las rutas /3
Límite de solicitudesTope diario en la clave gratuita, consulta su sitio20, 40 o 120 por minuto por clave
Uso comercialConsulta su sitioSe vende como API de pago, consulta los precios
CompatibilidadDefine el protocolo de OMDbLos 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 /3 puedes pedir el mismo título con créditos, vídeos y traducciones en una sola llamada, y el imdbID encuentra 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 w92 a original.
  • Más fuentes de puntuaciones. La extensión /3/movie/{id}/ratings añ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.

JavaScript
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
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.