La comparación en breve

amodb es una API independiente que habla el mismo protocolo que TMDB v3. Un cliente escrito para TMDB lee de amodb después de cambiar la URL base y la clave, siempre que no llame a una ruta de la tabla de no ofrecidas que aparece más abajo. La decisión depende entonces de los términos, los extras y unas pocas carencias. TMDB ofrece una API gratuita para usos que cumplan sus condiciones. amodb es una API de pago, de solo lectura, con 14 idiomas, cinco bloques de datos adicionales y un límite contado por clave.

Paridad de endpoints

Cada fila muestra una ruta de lectura de TMDB v3 y cómo se comporta en https://api.amodb.dev/3.

ÁreaRuta de TMDB v3En amodb
Detalles de película/movie/{movie_id}Igual, con cinco valores más en append_to_response
Detalles de serie/tv/{series_id}Igual, pero sin el campo type, y created_by está vacío en la mayoría de las series
Temporadas y episodios/tv/{series_id}/season/{season_number}Misma forma. Las imágenes, los vídeos y las traducciones de temporada están vacíos, y los external_ids de temporadas y episodios son null
Personas/person/{person_id}Igual, con combined_credits, movie_credits, tv_credits, external_ids y images (solo perfiles)
Créditos/movie/{movie_id}/creditsIgual. En los episodios, cast está vacío
Búsqueda/search/multiIgual, con caché de 10 minutos
Descubrir/discover/movieIgual, con caché de 30 minutos
Tendencias/trending/{media_type}/{time_window}Igual, con caché de 30 minutos
Listas/movie/popularIgual, con page de 1 a 500
Imágenes/movie/{movie_id}/imagesMisma forma, los archivos se cargan desde img.amodb.dev
Vídeos/movie/{movie_id}/videosIgual
Traducciones/movie/{movie_id}/translationsIgual, con 14 idiomas servidos
Palabras clave/movie/{movie_id}/keywordsIgual
Reseñas/movie/{movie_id}/reviewsResponde 200, pero solo unos pocos títulos tienen reseñas, así que una lista vacía es lo normal
Colecciones/collection/{collection_id}Igual, con parts ordenado por fecha de estreno
Productoras y cadenas de TV/company/{company_id}Mismas claves. El description de una productora está vacío y parent_company es null
Géneros/genre/movie/listIgual
Configuración/configurationMismas claves, el host de imágenes es img.amodb.dev
Buscar por ID externo/find/{external_id}Mismo endpoint, más kinopoisk_id. tv_episode_results y tv_season_results siempre están vacíos
Grupos de episodios/tv/{series_id}/episode_groupsLista los grupos de una serie, sin su contenido

Lo que amodb no ofrece

Estas llamadas de TMDB v3 no tienen equivalente. Las rutas desconocidas responden 404 con status_code 34, y los métodos de escritura responden 405 con status_code 37.

Llamada de TMDB v3Respuesta de amodb
/movie/changes, /tv/changes, /person/changes y changes bajo un id404, status_code 34
aggregate_credits bajo una serie o una temporada404, status_code 34
/credit/{credit_id} y /review/{review_id}404, status_code 34
/tv/episode_group/{id}404, status_code 34
/person/{person_id}/translations, tagged_images y /person/latest404, status_code 34
images, translations y alternative_names de colecciones, productoras y cadenas404, status_code 34
/configuration/timezones404, status_code 34
Todo lo que cuelga de account, authentication, guest_session y list, y cualquier ruta /rating o /account_states405, status_code 37

Si añades aggregate_credits o changes a append_to_response, amodb ignora ese nombre sin devolver error, así que la clave simplemente no aparece en el cuerpo.

Comparación de funciones

FunciónTMDBamodb
Modelo de preciosGratis para usos que cumplan sus condiciones, según los términos de TMDBPrepago, de 1 a 24 meses por compra
Nivel gratuitoSí, para usos que cumplan sus condicionesNinguno, y sin periodo de prueba
AutenticaciónClave v3 en api_key, o token v4 como Bearerapi_key o Bearer con una clave hexadecimal de 32 caracteres
Formato de respuestaJSONJSON, con los mismos campos en las rutas que sirve
IdiomasConsulta su documentación14 servidos, las demás etiquetas recurren a en
PelículasSíSí
TVSíSí
PersonasSíSí
ImágenesSíimg.amodb.dev, tamaños de w92 a original
PuntuacionesPuntuación de usuarios de TMDB, otras fuentes: consulta su documentaciónCinco fuentes en un solo objeto cuando se conocen
Métodos de escrituraMétodos de cuenta, listas y puntuaciónNinguno, responden 405
Límite de solicitudesConsulta su documentación20, 40 o 120 por minuto por clave
Uso comercialConsulta sus términos sobre uso comercial y atribuciónPlanes de pago, consulta los precios
CompatibilidadDefine TMDB v3La mayoría de las rutas de lectura de TMDB v3 y una ruta OMDb

Diferencias en detalle

  • Términos. TMDB te pide que leas sus términos sobre uso comercial y atribución. amodb se vende por periodo prepago, sin renovación automática, sin nivel gratuito y sin periodo de prueba.
  • Idiomas. amodb sirve en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it y es. Acepta etiquetas de TMDB como ru-RU y pt-BR. El alemán, el japonés y el coreano recurren a en, mientras que original_title conserva el título de origen. Para la cobertura de idiomas de TMDB, consulta su documentación. Consulta idiomas.
  • Extensiones. append_to_response también admite moods, soundtracks, ratings, wikidata y showtimes, y cada una tiene su propia ruta bajo películas y series.
  • IDs externos. /3/find resuelve imdb_id, tvdb_id, wikidata_id, kinopoisk_id, facebook_id, twitter_id e instagram_id. Las fuentes freebase_mid, freebase_id, tvrage_id, tiktok_id y youtube_id se aceptan, pero devuelven arrays vacíos. Un external_source ausente o desconocido responde 400 con status_code 22.
  • Vacíos por diseño. Las imágenes, los vídeos y las traducciones de temporada y el description de una productora siempre están vacíos. Las reseñas y el created_by de una serie se rellenan solo en unos pocos títulos. Los external_ids de temporadas y episodios son todos null.
  • Títulos para adultos. include_adult se ignora. Los títulos y las personas para adultos nunca se sirven y responden 404.
  • Imágenes. La ruta de la CDN es https://img.amodb.dev/t/p/{size}/{file}. No hace falta clave y los archivos se guardan en caché 30 días.
  • Límites. La ventana es de 60 segundos deslizantes por clave. Las cabeceras muestran el recuento restante, y los aciertos de caché también cuentan porque la comprobación del límite se ejecuta primero.
  • Independencia. El catálogo procede de fuentes públicas y abiertas y de nuestro propio enriquecimiento. Compartir la misma forma no garantiza valores idénticos en todos los campos de todos los títulos.

Dónde encaja mejor TMDB

  • Uso gratuito que cumple las condiciones. No hace falta pagar, y amodb no puede igualarlo.
  • Escrituras. Puntuar un título, crear una lista y las sesiones de cuenta funcionan en TMDB. En amodb devuelven 405.
  • Feeds de cambios. TMDB lista los ids que cambiaron. amodb no tiene un feed así, así que actualizas con tu propio calendario.
  • Créditos agregados y consulta de créditos. Ambos responden 404 en amodb. Usa /credits en el título.
  • Más idiomas. Si tu interfaz necesita un idioma fuera de los 14, consulta primero TMDB.
  • Aprobación ya obtenida. Un equipo que ya superó la revisión legal de TMDB debe sopesar lo que cuesta una segunda revisión.

Migrar a amodb

El cambio es de una línea por solicitud.

Shell
# before: TMDB_BASE is your current TMDB v3 base URL
curl -s "$TMDB_BASE/movie/550?api_key=$TMDB_KEY"

# after
curl -s "https://api.amodb.dev/3/movie/550?api_key=$AMODB_KEY"

Antes del cambio definitivo, compara la forma de algunas respuestas lado a lado. Este script imprime las claves de primer nivel que un lado devuelve y el otro no.

JavaScript
async function topLevelKeys(base, key, path) {
  const res = await fetch(`${base}${path}?api_key=${key}`);
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return Object.keys(await res.json()).sort();
}

for (const path of ['/movie/550', '/tv/1396', '/person/31']) {
  const current = await topLevelKeys(process.env.TMDB_BASE, process.env.TMDB_KEY, path);
  const next = await topLevelKeys('https://api.amodb.dev/3', process.env.AMODB_KEY, path);
  const missing = current.filter((k) => !next.includes(k));
  console.log(path, missing.length ? `missing: ${missing.join(', ')}` : 'same keys');
}

Los campos opcionales pueden diferir en un título concreto, así que interpreta una clave ausente como una pista que investigar, no como un veredicto. Después sigue esta lista:

  1. Elige un plan en precios y crea una clave en el panel de tu cuenta.
  2. Mueve la URL base y la clave a la configuración.
  3. Lee images.secure_base_url desde /3/configuration.
  4. Busca en tu código las llamadas de escritura y las rutas de la tabla de no ofrecidas. Deja las escrituras en TMDB y sustituye el resto.
  5. Añade un manejador de 429 que espere los segundos de Retry-After. Consulta límites de solicitudes y errores.

Precios

amodb es prepago. Elige 1, 3, 6, 12 o 24 meses, que aplican un descuento del 0, 10, 20, 30 o 40 por ciento, y uno de tres planes de 20, 40 o 120 solicitudes por minuto. Todos los planes devuelven todos los datos y ninguno se renueva solo. Consulta precios para ver los importes.