Cuál encaja en un proyecto de TV

TheTVDB se centra en la TV y mantiene varios órdenes de episodios para una serie, entre ellos emisión, DVD y absoluto, bajo un modelo de clave de API. Consulta su documentación sobre licencias antes de planificar un producto comercial. Elige amodb cuando quieras TV, películas y personas con una sola clave, rutas de TMDB v3 y 14 idiomas. Elige TheTVDB cuando la numeración alternativa exacta sea el centro de tu aplicación, porque amodb lista los grupos de episodios de una serie pero no sirve lo que hay dentro.

Cómo se corresponden los datos de TV entre ambos

Los conceptos coinciden, pero los nombres difieren. Esta tabla cubre lo que suele leer una aplicación de TV.

NecesidadEnfoque de TheTVDBLlamada de amodb
Una serieRegistro de la serie por id de TVDBGET /3/tv/1396, tras buscar por tvdb_id
Lista de temporadasConsulta su documentaciónArray seasons en los detalles de la serie
Una temporada con episodiosConsulta su documentaciónGET /3/tv/1396/season/1
Un episodioConsulta su documentaciónGET /3/tv/1396/season/1/episode/1
Qué órdenes existenÓrdenes de emisión, DVD y absolutoGET /3/tv/1396/episode_groups
Episodios dentro de un ordenConsulta su documentaciónNo se ofrece, /3/tv/episode_group/{id} responde 404
Próximo episodio por emitirConsulta su documentaciónnext_episode_to_air en los detalles de la serie

Los campos de episodio usan los nombres de TMDB: air_date, episode_number, season_number, runtime y still_path. Los external_ids de temporadas y episodios son todos null, así que el id de TVDB de una temporada o un episodio concretos no se puede leer desde amodb. Une por season_number y episode_number en su lugar. Los detalles están en temporadas y episodios.

Qué devuelve la lista de grupos de episodios

La llamada de lista muestra qué órdenes existen para una serie. No devuelve los episodios que contienen.

CampoSignificado
idId del grupo, una cadena
nameNombre del orden, como DVD / PVOD
descriptionTexto de la fuente, a menudo vacío
typeUn número que indica de qué tipo de orden se trata
episode_countEpisodios del orden
group_countBloques del orden, como temporadas
networkUn objeto con la cadena de TV, o null

Esta es una respuesta real para Breaking Bad.

JSON
{
  "id": 1396,
  "results": [
    {
      "description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
      "episode_count": 62,
      "group_count": 6,
      "id": "69f50757054263b7bc87e32a",
      "name": "DVD / PVOD",
      "network": null,
      "type": 3
    }
  ]
}

Algunas series devuelven un solo orden de emisión y otras varios, y algunas devuelven un array results vacío. Prueba las series que te importan. Como el contenido de un grupo no se ofrece, una aplicación que necesite el número DVD o absoluto de cada episodio no puede obtenerlo de amodb.

Comparación de funciones

FunciónTheTVDBamodb
Modelo de preciosModelo de clave de API, consulta su documentación sobre licenciasPeriodos prepago de 1 a 24 meses
Nivel gratuitoConsulta su documentaciónNinguno, y sin periodo de prueba
AutenticaciónClave de API, consulta su documentación sobre el flujoapi_key o cabecera Bearer
Formato de respuestaJSON, consulta su documentaciónJSON con la forma de TMDB v3
IdiomasConsulta su documentación14 idiomas de interfaz
PelículasConsulta su documentaciónSí
TVSí, su foco principalSí, con temporadas y episodios
PersonasConsulta su documentaciónSí
ImágenesConsulta su documentaciónimg.amodb.dev, sin necesidad de clave
PuntuacionesConsulta su documentaciónIMDb y otras cuatro fuentes cuando se conocen
Límite de solicitudesConsulta su documentación20, 40 o 120 por minuto por clave
Uso comercialConsulta su documentación sobre licenciasPlanes de pago, consulta los precios
CompatibilidadSu propia APILecturas de TMDB v3 y OMDb

En qué se diferencia amodb

  • Una clave para todo el catálogo. Una serie, su reparto, sus tráileres y una película que comparte un actor usan la misma URL base y el mismo límite.
  • Puntuaciones junto a la guía de episodios. append_to_response=ratings en los detalles de la serie añade IMDb y otras puntuaciones en una sola llamada.
  • Cabeceras sencillas para regular el ritmo. X-RateLimit-Remaining y X-RateLimit-Reset indican a un trabajo de sincronización cuántas solicitudes quedan en la ventana de 60 segundos.
  • Nombres originales conservados. Una serie conserva original_name mientras name sigue tu language, lo que ayuda cuando muestras un título nativo.

Dónde encaja mejor TheTVDB

  • El orden es el producto. Si tus usuarios discuten sobre el orden DVD frente al de emisión frente al absoluto, TheTVDB lo trata como una parte central de su modelo. amodb nombra los órdenes de una serie pero no devuelve sus episodios, y qué grupos existen depende de la serie.
  • Integraciones existentes. Si tu flujo ya guarda ids de TheTVDB y lee sus órdenes, conserva esa parte y añade amodb para los datos adicionales.
  • Foco en TV. Si nunca muestras películas ni personas, una fuente construida en torno a la TV tiene menos que aprender.

Migrar a amodb

Asigna una sola vez tus ids de TVDB guardados. Después, usa el id de amodb en todas las llamadas. El endpoint find resuelve solo ids de series. Sus arrays tv_season_results y tv_episode_results están siempre vacíos, así que asigna temporadas y episodios por número.

JavaScript
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';

async function getJson(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return res.json();
}

const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);

const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
  console.log(g.name, g.type, g.episode_count);
}

La primera solicitud devuelve Breaking Bad con el id 1396. La segunda lista los órdenes que existen para esa serie, con sus tamaños. Para comparar la numeración con lo que guardas ahora, lee el orden de emisión desde /tv/{id}/season/{n} y deja cualquier orden alternativo en el lado de TheTVDB. Haz esa comprobación con tus diez series más vistas antes de mover el resto.

Cada llamada cuenta como una solicitud en la ventana de 60 segundos, y un 429 trae Retry-After. Consulta buscar por ID externo y límites de solicitudes.

Precios

amodb es prepago y sin renovación automática. Elige 1, 3, 6, 12 o 24 meses y uno de tres planes de 20, 40 o 120 solicitudes por minuto. Los periodos más largos tienen un descuento del 10, 20, 30 o 40 por ciento, y todos los planes obtienen todos los datos. No hay nivel gratuito. Los importes están en precios.