Sarcini diferite, unelte diferite

Trakt se axează pe datele utilizatorilor: istoric de vizionări, liste de urmărit, evaluări, calendare și autentificare OAuth. Are și endpoint-uri publice de metadate, iar documentația lui precizează limitele aplicabile. amodb are o singură sarcină: metadate pentru filme, TV și persoane, întoarse ca JSON în structura TMDB v3. Alege Trakt pentru ce au făcut utilizatorii tăi. Alege amodb pentru ce este un titlu. Majoritatea aplicațiilor care au nevoie de ambele apelează fiecare serviciu pentru jumătatea lui.

Date de utilizator față de date despre titluri

SarcinăTraktamodb
Istoric de vizionăriFuncție de bazăNu este oferit, stochează-l singur
Liste de urmărit și listeFuncție de bazăNu este oferit, scrierile întorc 405
Evaluările utilizatorilorFuncție de bazăNu este oferit, scrierile întorc 405
CalendarePe utilizator, vezi documentația lornext_episode_to_air pe serial și liste de program
AutentificareOAuthDoar cheie, fără autentificarea utilizatorilor
Metadate despre titluriEndpoint-uri publice, vezi documentația lor pentru limiteEndpoint-uri de detalii în 14 limbi
Distribuție și echipăVezi documentația lor/credits pentru un titlu, combined_credits pentru o persoană
ImaginiVezi documentația lorimg.amodb.dev, fără cheie
TrailereVezi documentația lor/videos cu type și official
Modificate de la o datăVezi documentația lorNu este oferit, nu există fluxuri de modificări

Pentru programe, GET /3/tv/airing_today și GET /3/tv/on_the_air listează serialele după data difuzării, iar fiecare fișă de serial poartă propriul next_episode_to_air. Pentru un serial încheiat, acel câmp este null. Ambele liste sunt descrise la tendințe și liste. Calendarul unui singur utilizator este ceva ce asamblezi din propriile tale înregistrări de vizionare.

Comparația funcțiilor

FuncțieTraktamodb
Model de prețVezi documentația lorPerioade plătite în avans de la 1 la 24 de luni
Nivel gratuitVezi documentația lorNiciunul, și fără perioadă de probă
AutentificareOAuth pentru datele utilizatorilor, vezi documentația lor pentru apelurile publiceapi_key sau antet Bearer
Format de răspunsJSON, vezi documentația lorJSON în structura TMDB v3
LimbiVezi documentația lor14 limbi de interfață
FilmeDaDa
TVDaDa, cu sezoane și episoade
PersoaneVezi documentația lorDa
ImaginiVezi documentația lorimg.amodb.dev, aceleași jetoane de dimensiune ca TMDB
EvaluăriEvaluările utilizatorilor, vezi documentația lorScoruri de la IMDb, Kinopoisk, Metacritic, Rotten Tomatoes și TMDB, unde se știu
Limită de cereriVezi documentația lor pentru limite20, 40 sau 120 pe minut pe cheie
Utilizare comercialăVezi documentația lorPlanuri cu plată, vezi prețuri
CompatibilitatePropriul APICitiri TMDB v3 și OMDb

Prin ce diferă amodb

  • Fără ecran de autentificare pentru utilizatorii tăi. O cheie pe partea de server ajunge. Nimeni nu conectează un cont, deci nu există token de reîmprospătat și nici ecran de consimțământ de explicat.
  • Varietatea câmpurilor. Durata, genurile, companiile de producție, clasificările, traducerile și cuvintele-cheie vin toate de la endpoint-urile de detalii, în limba pe care o ceri.
  • Limite publicate. Limita planului este un număr pe minut, iar fiecare răspuns arată ce a mai rămas. Poți dimensiona o sincronizare în fundal pornind de la aceste cifre.
  • Indicatori de atmosferă și coloane sonore. Extensiile de la atmosfere și coloane sonore adaugă date care nu fac parte din TMDB v3.

Când Trakt se potrivește mai bine

  • Orice este personal. Scrobbling-ul, sincronizarea istoricului, listele sociale și calendarele pe utilizator sunt funcții Trakt. amodb nu are conturi și nici metode de scriere.
  • Starea între dispozitive. Dacă un utilizator se așteaptă la aceleași marcaje de vizionat pe telefon și pe TV, starea trebuie să trăiască într-un serviciu de utilizatori, iar amodb nu este unul.
  • Aplicații OAuth existente. Dacă aplicația ta deține deja token-uri Trakt, le păstrezi. Adaugă amodb doar pentru datele despre titluri pe care acum le iei din altă parte.

Migrarea la amodb: leagă-ți înregistrările

Nu migrezi date de utilizator, pentru că amodb nu are deloc. Înlocuiești apelurile de metadate. Elementele Trakt poartă ID-uri pentru alte baze de date (vezi documentația lor pentru câmpurile exacte), așa că stochează ID-ul TMDB sau ID-ul IMDb lângă fiecare înregistrare de vizionare și folosește-l aici.

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;

Când ai doar un ID IMDb, apelează o singură dată /3/find/tt0903747?external_source=imdb_id și păstrează ID-ul din tv_results. Un 429 include Retry-After, după cum este descris la limite de cereri.

Dimensionarea unui job de reîmprospătare

O bibliotecă de utilizator cu 200 de seriale cere 200 de cereri de detalii pentru a fi reîmprospătată o dată. La 20 de cereri pe minut asta durează 10 minute, la 40 durează 5, iar la 120 durează sub 2. Verificarea cheii rulează înaintea cache-ului la margine, deci și apelurile repetate se numără. amodb nu are fluxuri de modificări, așa că nu îți poate spune care ID-uri s-au schimbat de la o dată. Citește în schimb status și next_episode_to_air din răspunsul de detalii. Reîmprospătează des serialele care încă rulează și rar pe cele încheiate. Detaliile rămân în cache 6 ore, deci o reîmprospătare mai deasă decât atât întoarce aceleași date.

Prețuri

amodb este plătit în avans și nu se reînnoiește singur. Alege 1, 3, 6, 12 sau 24 de luni, care aduc reduceri de 0, 10, 20, 30 sau 40 la sută, și unul dintre trei planuri de 20, 40 sau 120 de cereri pe minut. Fiecare plan întoarce toate datele și nu există nivel gratuit. Sumele sunt la prețuri.