Trabajos distintos, herramientas distintas

Trakt se centra en datos de usuario: historial de visionado, listas de seguimiento, puntuaciones, calendarios e inicio de sesión con OAuth. También tiene endpoints de metadatos públicos, y su documentación indica los límites que se aplican. amodb tiene un solo trabajo: metadatos de películas, TV y personas, devueltos como JSON con la forma de TMDB v3. Elige Trakt para lo que hicieron tus usuarios. Elige amodb para saber qué es un título. La mayoría de las aplicaciones que necesitan ambos llaman a cada servicio para su mitad.

Datos de usuario frente a datos de títulos

TareaTraktamodb
Historial de visionadoFunción principalNo se ofrece, guárdalo tú mismo
Listas de seguimiento y listasFunción principalNo se ofrece, las escrituras devuelven 405
Puntuaciones de usuarioFunción principalNo se ofrece, las escrituras devuelven 405
CalendariosPor usuario, consulta su documentaciónnext_episode_to_air por serie y listas de programación
Inicio de sesiónOAuthSolo clave, sin inicio de sesión de usuario
Metadatos de títulosEndpoints públicos, consulta su documentación sobre los límitesEndpoints de detalle en 14 idiomas
Reparto y equipo técnicoConsulta su documentación/credits para un título, combined_credits para una persona
ImágenesConsulta su documentaciónimg.amodb.dev, sin necesidad de clave
TráileresConsulta su documentación/videos con type y official
Cambios desde una fechaConsulta su documentaciónNo se ofrece, no hay feeds de cambios

Para las programaciones, GET /3/tv/airing_today y GET /3/tv/on_the_air listan las series por fecha de emisión, y cada registro de serie lleva su propio next_episode_to_air. En una serie que ha terminado, ese campo es null. Ambas listas se describen en tendencias y listas. El calendario de un usuario es algo que montas a partir de tus propios registros de visionado.

Comparación de funciones

FunciónTraktamodb
Modelo de preciosConsulta su documentaciónPeriodos prepago de 1 a 24 meses
Nivel gratuitoConsulta su documentaciónNinguno, y sin periodo de prueba
AutenticaciónOAuth para datos de usuario, consulta su documentación sobre las llamadas públicasapi_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ículasSíSí
TVSíSí, con temporadas y episodios
PersonasConsulta su documentaciónSí
ImágenesConsulta su documentaciónimg.amodb.dev, los mismos tokens de tamaño que TMDB
PuntuacionesPuntuaciones de usuario, consulta su documentaciónPuntuaciones de IMDb, Kinopoisk, Metacritic, Rotten Tomatoes y TMDB cuando se conocen
Límite de solicitudesConsulta su documentación sobre los límites20, 40 o 120 por minuto por clave
Uso comercialConsulta su documentaciónPlanes de pago, consulta los precios
CompatibilidadSu propia APILecturas de TMDB v3 y OMDb

En qué se diferencia amodb

  • Sin pantalla de inicio de sesión para tus usuarios. Basta una clave en el servidor. Nadie conecta una cuenta, así que no hay token que renovar ni pantalla de consentimiento que explicar.
  • Amplitud de campos. La duración, los géneros, las productoras, las clasificaciones por edad, las traducciones y las palabras clave salen de los endpoints de detalle, en el idioma que pidas.
  • Límites publicados. El límite del plan es un número por minuto, y cada respuesta muestra lo que queda. Con esos números puedes dimensionar una sincronización en segundo plano.
  • Medidores de mood y bandas sonoras. Las extensiones de moods (ambiente emocional) y de bandas sonoras añaden datos que no forman parte de TMDB v3.

Dónde encaja mejor Trakt

  • Todo lo personal. El scrobbling, la sincronización del historial, las listas sociales y los calendarios por usuario son funciones de Trakt. amodb no tiene cuentas ni métodos de escritura.
  • Estado entre dispositivos. Si un usuario espera las mismas marcas de visto en un teléfono y en un televisor, el estado debe vivir en un servicio de usuarios, y amodb no lo es.
  • Aplicaciones OAuth existentes. Si tu aplicación ya guarda tokens de Trakt, los conservas. Añade amodb solo para los datos de títulos que ahora obtienes en otro sitio.

Migrar a amodb: une tus registros

No migras datos de usuario, porque amodb no guarda ninguno. Sustituyes las llamadas de metadatos. Los elementos de Trakt llevan ids de otras bases de datos (consulta su documentación para ver los campos exactos), así que guarda el id de TMDB o el de IMDb junto a cada registro de visionado y úsalo aquí.

PHP
<?php
declare(strict_types=1);

function amodb(string $path): array
{
    $ch = curl_init('https://api.amodb.dev/3' . $path);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
        CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
    ]);
    $body = curl_exec($ch);
    $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    if ($status !== 200) {
        throw new RuntimeException("amodb returned $status");
    }
    return json_decode($body, true);
}

$show = amodb('/tv/1396?language=en-US');
$next = $show['next_episode_to_air'] ?? null;
echo $show['name'], ' ', $show['status'], PHP_EOL;
echo $next ? 'Next: ' . $next['air_date'] : 'No episode scheduled', PHP_EOL;

Cuando solo tengas un id de IMDb, llama una vez a /3/find/tt0903747?external_source=imdb_id y conserva el id de tv_results. Un 429 incluye Retry-After, como se describe en límites de solicitudes.

Dimensionar un trabajo de actualización

Una biblioteca de usuario de 200 series necesita 200 solicitudes de detalle para actualizarse una vez. A 20 solicitudes por minuto tarda 10 minutos, a 40 tarda 5 y a 120 tarda menos de 2. La comprobación de la clave se ejecuta antes de la caché perimetral, así que las llamadas repetidas también cuentan. amodb no tiene feeds de cambios, así que no puede decirte qué ids cambiaron desde una fecha. Lee en su lugar status y next_episode_to_air de la respuesta de detalles. Actualiza a menudo las series que siguen en emisión, y pocas veces las que ya terminaron. Los detalles se guardan 6 horas en caché, así que una actualización más frecuente devuelve los mismos datos.

Precios

amodb es prepago y no se renueva solo. Elige 1, 3, 6, 12 o 24 meses, que dan 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 no hay nivel gratuito. Los importes están en precios.