Des rôles différents, des outils différents

Trakt se concentre sur les données utilisateur : historique de visionnage, watchlists, notes, calendriers et connexion OAuth. Il possède aussi des points de terminaison publics de métadonnées, et sa documentation indique les limites qui s'appliquent. amodb n'a qu'un seul rôle : les métadonnées des films, des séries et des personnes, renvoyées en JSON au format TMDB v3. Choisissez Trakt pour ce que vos utilisateurs ont fait. Choisissez amodb pour ce qu'est un titre. La plupart des applications qui ont besoin des deux appellent chaque service pour sa moitié.

Données utilisateur et données de titres

RôleTraktamodb
Historique de visionnageFonction centraleNon proposé, stockez-le vous-même
Watchlists et listesFonction centraleNon proposé, les écritures renvoient 405
Notes des utilisateursFonction centraleNon proposé, les écritures renvoient 405
CalendriersPar utilisateur, voir leur documentationnext_episode_to_air par série et listes de programmation
ConnexionOAuthClé seule, pas de connexion utilisateur
Métadonnées de titresPoints de terminaison publics, voir leur documentation pour les limitesPoints de terminaison de détails en 14 langues
Distribution et équipeVoir leur documentation/credits pour un titre, combined_credits pour une personne
ImagesVoir leur documentationimg.amodb.dev, sans clé
Bandes-annoncesVoir leur documentation/videos avec type et official
Modifié depuis une dateVoir leur documentationNon proposé, il n'y a pas de flux de changements

Pour la programmation, GET /3/tv/airing_today et GET /3/tv/on_the_air listent les séries par date de diffusion, et chaque fiche de série porte son propre next_episode_to_air. Pour une série terminée, ce champ vaut null. Les deux listes sont décrites sur tendances et listes. Le calendrier d'un utilisateur est quelque chose que vous assemblez à partir de vos propres données de visionnage.

Comparatif des fonctionnalités

FonctionnalitéTraktamodb
Modèle tarifaireVoir leur documentationPériodes prépayées de 1 à 24 mois
Offre gratuiteVoir leur documentationAucune, et pas d'essai
AuthentificationOAuth pour les données utilisateur, voir leur documentation pour les appels publicsapi_key ou en-tête Bearer
Format de réponseJSON, voir leur documentationJSON au format TMDB v3
LanguesVoir leur documentation14 langues d'interface
FilmsOuiOui
SériesOuiOui, avec saisons et épisodes
PersonnesVoir leur documentationOui
ImagesVoir leur documentationimg.amodb.dev, mêmes jetons de taille que TMDB
NotesNotes des utilisateurs, voir leur documentationNotes d'IMDb, Kinopoisk, Metacritic, Rotten Tomatoes et TMDB quand elles sont connues
Limite de débitVoir leur documentation pour les limites20, 40 ou 120 par minute et par clé
Usage commercialVoir leur documentationOffres payantes, voir les tarifs
CompatibilitéSa propre APILectures TMDB v3 et OMDb

Ce qui distingue amodb

  • Pas d'écran de connexion pour vos utilisateurs. Une clé côté serveur suffit. Personne ne connecte de compte, donc il n'y a aucun jeton à renouveler ni écran de consentement à expliquer.
  • Une grande variété de champs. Durée, genres, sociétés de production, classifications, traductions et mots-clés viennent tous des points de terminaison de détails, dans la langue demandée.
  • Des limites publiées. La limite de l'offre est un nombre par minute, et chaque réponse indique ce qu'il reste. Vous pouvez dimensionner une synchronisation en arrière-plan à partir de ces chiffres.
  • Ambiances et bandes originales. Les extensions sur ambiances et bandes originales ajoutent des données qui ne font pas partie de TMDB v3.

Quand Trakt convient mieux

  • Tout ce qui est personnel. Le scrobbling, la synchronisation de l'historique, les listes sociales et les calendriers par utilisateur sont des fonctions de Trakt. amodb n'a ni comptes ni méthodes d'écriture.
  • L'état entre appareils. Si un utilisateur s'attend à retrouver les mêmes marques « vu » sur un téléphone et sur une télévision, l'état doit vivre dans un service utilisateur, et amodb n'en est pas un.
  • Les applications OAuth existantes. Si votre application détient déjà des jetons Trakt, vous les gardez. Ajoutez amodb seulement pour les données de titres que vous récupérez aujourd'hui ailleurs.

Migrer vers amodb : relier vos données

Vous ne migrez pas de données utilisateur, car amodb n'en détient aucune. Vous remplacez les appels de métadonnées. Les éléments Trakt portent des identifiants pour d'autres bases (voir leur documentation pour les champs exacts) : stockez l'identifiant TMDB ou IMDb à côté de chaque donnée de visionnage et utilisez-le ici.

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;

Quand vous n'avez qu'un identifiant IMDb, appelez une fois /3/find/tt0903747?external_source=imdb_id et gardez l'id de tv_results. Une réponse 429 inclut Retry-After, comme décrit sur limites de débit.

Dimensionner un travail d'actualisation

Une bibliothèque d'utilisateur de 200 séries demande 200 requêtes de détails pour une actualisation complète. À 20 requêtes par minute, cela prend 10 minutes, à 40 cela prend 5, et à 120 moins de 2. La vérification de la clé passe avant le cache de périphérie, donc les appels répétés comptent aussi. amodb n'a pas de flux de changements, il ne peut donc pas vous dire quels identifiants ont changé depuis une date. Lisez plutôt status et next_episode_to_air dans la réponse de détails. Actualisez souvent les séries encore en cours et rarement les séries terminées. Les détails restent en cache 6 heures : une actualisation plus fréquente renvoie les mêmes données.

Tarifs

amodb est prépayé et ne se renouvelle pas tout seul. Choisissez 1, 3, 6, 12 ou 24 mois, qui donnent 0, 10, 20, 30 ou 40 pour cent de réduction, et l'une des trois offres à 20, 40 ou 120 requêtes par minute. Chaque offre renvoie toutes les données et il n'y a pas d'offre gratuite. Les montants sont sur les tarifs.