Compiti diversi, strumenti diversi

Trakt è incentrato sui dati utente: cronologia di visione, watchlist, valutazioni, calendari e accesso con OAuth. Ha anche endpoint pubblici di metadati, e la sua documentazione indica i limiti che si applicano. amodb ha un solo compito: i metadati di film, serie TV e persone, restituiti come JSON nel formato TMDB v3. Scegli Trakt per ciò che hanno fatto i tuoi utenti. Scegli amodb per ciò che è un titolo. La maggior parte delle app che hanno bisogno di entrambi chiama ciascun servizio per la sua metà.

Dati utente e dati dei titoli

CompitoTraktamodb
Cronologia di visioneFunzione centraleNon offerto, salvala tu
Watchlist e listeFunzione centraleNon offerto, le scritture restituiscono 405
Valutazioni degli utentiFunzione centraleNon offerto, le scritture restituiscono 405
CalendariPer utente, vedi la loro documentazionenext_episode_to_air per serie e liste di palinsesto
AccessoOAuthSolo chiave, nessun login utente
Metadati dei titoliEndpoint pubblici, per i limiti vedi la loro documentazioneEndpoint di dettaglio in 14 lingue
Cast e troupeVedi la loro documentazione/credits per un titolo, combined_credits per una persona
ImmaginiVedi la loro documentazioneimg.amodb.dev, senza chiave
TrailerVedi la loro documentazione/videos con type e official
Modificato da una dataVedi la loro documentazioneNon offerto, non ci sono feed delle modifiche

Per i palinsesti, GET /3/tv/airing_today e GET /3/tv/on_the_air elencano le serie per data di messa in onda, e ogni scheda di serie porta il proprio next_episode_to_air. Per una serie conclusa quel campo vale null. Entrambe le liste sono descritte nella pagina tendenze e liste. Il calendario di un singolo utente è qualcosa che costruisci tu a partire dai tuoi dati di visione.

Confronto delle funzionalità

FunzionalitàTraktamodb
Modello di prezzoVedi la loro documentazionePeriodi prepagati da 1 a 24 mesi
Piano gratuitoVedi la loro documentazioneNessuno, e nessuna prova
AutenticazioneOAuth per i dati utente, per le chiamate pubbliche vedi la loro documentazioneapi_key o header Bearer
Formato della rispostaJSON, vedi la loro documentazioneJSON nel formato TMDB v3
LingueVedi la loro documentazione14 lingue dell'interfaccia
FilmSìSì
Serie TVSìSì, con stagioni ed episodi
PersoneVedi la loro documentazioneSì
ImmaginiVedi la loro documentazioneimg.amodb.dev, stessi token di dimensione di TMDB
ValutazioniValutazioni degli utenti, vedi la loro documentazionePunteggi di IMDb, Kinopoisk, Metacritic, Rotten Tomatoes e TMDB, quando sono noti
Limite di richiestePer i limiti vedi la loro documentazione20, 40 o 120 al minuto per chiave
Uso commercialeVedi la loro documentazionePiani a pagamento, vedi i prezzi
CompatibilitàLa sua APILetture TMDB v3 e OMDb

Dove amodb è diverso

  • Nessuna schermata di login per i tuoi utenti. Basta una chiave lato server. Nessuno collega un account, quindi non c'è alcun token da rinnovare e nessuna schermata di consenso da spiegare.
  • Ampiezza dei campi. Durata, generi, case di produzione, classificazioni, traduzioni e parole chiave arrivano tutti dagli endpoint di dettaglio, nella lingua che chiedi.
  • Limiti pubblicati. Il limite del piano è un numero al minuto, e ogni risposta mostra quanto resta. Con quei numeri puoi dimensionare una sincronizzazione in background.
  • Mood e colonne sonore. Le estensioni nelle pagine mood e colonne sonore aggiungono dati che non fanno parte di TMDB v3.

Dove Trakt è più adatto

  • Tutto ciò che è personale. Scrobbling, sincronizzazione della cronologia, liste social e calendari per utente sono funzioni di Trakt. amodb non ha account né metodi di scrittura.
  • Stato tra dispositivi. Se un utente si aspetta gli stessi segni di «visto» su telefono e TV, lo stato deve vivere in un servizio utente, e amodb non lo è.
  • App OAuth esistenti. Se la tua app possiede già token di Trakt, li mantieni. Aggiungi amodb solo per i dati dei titoli che ora recuperi altrove.

Migrare ad amodb: collega i tuoi record

Non migri dati utente, perché amodb non ne conserva. Sostituisci le chiamate di metadati. Gli elementi di Trakt portano gli ID di altri database (per i campi esatti controlla la loro documentazione), quindi salva l'ID TMDB o l'ID IMDb accanto a ogni record di visione e usalo qui.

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;

Quando hai solo un ID IMDb, chiama una volta /3/find/tt0903747?external_source=imdb_id e tieni l'id di tv_results. Una risposta 429 include Retry-After, come descritto nella pagina limiti di richieste.

Dimensionare un job di aggiornamento

Una libreria utente di 200 serie richiede 200 richieste di dettaglio per un aggiornamento completo. A 20 richieste al minuto ci vogliono 10 minuti, a 40 ne bastano 5, e a 120 meno di 2. Il controllo della chiave viene prima della cache edge, quindi contano anche le chiamate ripetute. amodb non ha feed delle modifiche, quindi non può dirti quali ID sono cambiati da una certa data. Leggi invece status e next_episode_to_air dalla risposta dei dettagli. Aggiorna spesso le serie ancora in corso e di rado quelle concluse. I dettagli restano in cache 6 ore, quindi un aggiornamento più frequente restituisce gli stessi dati.

Prezzi

amodb è prepagato e non si rinnova da solo. Scegli 1, 3, 6, 12 o 24 mesi, che danno uno sconto di 0, 10, 20, 30 o 40 per cento, e uno dei tre piani da 20, 40 o 120 richieste al minuto. Ogni piano restituisce tutti i dati e non c'è un piano gratuito. Gli importi sono nella pagina dei prezzi.