Jiné úlohy, jiné nástroje

Trakt se soustředí na uživatelská data: historii sledování, seznamy ke zhlédnutí, hodnocení, kalendáře a přihlášení přes OAuth. Má také veřejné endpointy metadat a jeho dokumentace uvádí platné limity. amodb má jednu úlohu: metadata filmů, seriálů a osob, vracená jako JSON ve tvaru TMDB v3. Trakt zvolte pro to, co udělali vaši uživatelé. amodb zvolte pro to, čím titul je. Většina aplikací, které potřebují obojí, volá každou službu pro její polovinu.

Uživatelská data a data titulů

ÚlohaTraktamodb
Historie sledováníZákladní funkceNenabízí se, ukládejte ji sami
Seznamy a seznamy ke zhlédnutíZákladní funkceNenabízí se, zápisy vracejí 405
Uživatelská hodnoceníZákladní funkceNenabízí se, zápisy vracejí 405
KalendářePro uživatele, podívejte se do jejich dokumentacenext_episode_to_air na seriál a seznamy podle rozvrhu
PřihlášeníOAuthJen klíč, žádné přihlášení uživatele
Metadata titulůVeřejné endpointy, limity viz jejich dokumentaceEndpointy detailů ve 14 jazycích
Obsazení a štábPodívejte se do jejich dokumentace/credits pro titul, combined_credits pro osobu
ObrázkyPodívejte se do jejich dokumentaceimg.amodb.dev, klíč není potřeba
TraileryPodívejte se do jejich dokumentace/videos s type a official
Změněno od dataPodívejte se do jejich dokumentaceNenabízí se, feedy změn neexistují

Pro rozvrhy GET /3/tv/airing_today a GET /3/tv/on_the_air vypisují seriály podle data vysílání a každý záznam seriálu nese vlastní next_episode_to_air. U skončeného seriálu je toto pole null. Oba seznamy popisuje stránka trendy a seznamy. Kalendář pro jednoho uživatele si sestavíte z vlastních záznamů o sledování.

Srovnání funkcí

FunkceTraktamodb
Cenový modelPodívejte se do jejich dokumentacePředplacená období 1 až 24 měsíců
Bezplatný tarifPodívejte se do jejich dokumentaceŽádný, ani zkušební verze
OvěřeníOAuth pro uživatelská data, u veřejných volání se podívejte do jejich dokumentaceapi_key nebo hlavička Bearer
Formát odpovědiJSON, podívejte se do jejich dokumentaceJSON ve tvaru TMDB v3
JazykyPodívejte se do jejich dokumentace14 jazyků rozhraní
FilmyAnoAno
SeriályAnoAno, se sezónami a epizodami
OsobyPodívejte se do jejich dokumentaceAno
ObrázkyPodívejte se do jejich dokumentaceimg.amodb.dev, stejné tokeny velikostí jako TMDB
HodnoceníUživatelská hodnocení, podívejte se do jejich dokumentaceSkóre z IMDb, Kinopoisk, Metacritic, Rotten Tomatoes a TMDB, kde jsou známé
Limit požadavkůLimity viz jejich dokumentace20, 40 nebo 120 za minutu na klíč
Komerční užitíPodívejte se do jejich dokumentacePlacené tarify, viz ceník
KompatibilitaVlastní APIČtení TMDB v3 a OMDb

V čem se amodb liší

  • Žádná přihlašovací obrazovka pro vaše uživatele. Stačí klíč na straně serveru. Nikdo nepropojuje účet, takže není co obnovovat za token a není co vysvětlovat na obrazovce souhlasu.
  • Šíře polí. Délka, žánry, produkční společnosti, věková hodnocení, překlady a klíčová slova pocházejí z endpointů detailů, v jazyce, který si vyžádáte.
  • Zveřejněné limity. Limit tarifu je číslo za minutu a každá odpověď ukazuje, co zbývá. Podle těchto čísel můžete dimenzovat synchronizaci na pozadí.
  • Měřiče nálady a soundtracky. Rozšíření na stránkách nálady a soundtracky přidávají data, která nejsou součástí TMDB v3.

Kdy se Trakt hodí lépe

  • Cokoli osobního. Scrobbling, synchronizace historie, sociální seznamy a kalendáře pro jednotlivé uživatele jsou funkce služby Trakt. amodb nemá účty ani metody pro zápis.
  • Stav napříč zařízeními. Pokud uživatel očekává stejné značky zhlédnutí na telefonu i v televizi, stav musí žít v uživatelské službě a amodb jí není.
  • Stávající aplikace s OAuth. Pokud vaše aplikace už drží tokeny Trakt, ponecháte je. amodb přidejte jen pro data titulů, která nyní berete jinde.

Přechod na amodb: spojení záznamů

Uživatelská data nepřenášíte, protože amodb žádná nedrží. Nahrazujete volání metadat. Položky Trakt nesou ID pro jiné databáze (přesná pole viz jejich dokumentace), uložte proto ID z TMDB nebo z IMDb vedle každého záznamu o sledování a používejte je zde.

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;

Když držíte jen ID z IMDb, zavolejte jednou /3/find/tt0903747?external_source=imdb_id a ponechte ID z tv_results. 429 obsahuje Retry-After, jak popisuje stránka limity požadavků.

Dimenzování úlohy obnovy

Uživatelská knihovna 200 seriálů potřebuje k jedné obnově 200 požadavků na detaily. Při 20 požadavcích za minutu to trvá 10 minut, při 40 trvá 5 a při 120 méně než 2. Kontrola klíče proběhne před cache na edge, takže se počítají i opakovaná volání. amodb nemá feedy změn, takže nemůže říct, která ID se od data změnila. Místo toho čtěte status a next_episode_to_air z odpovědi detailů. Seriály, které se stále vysílají, obnovujte často a skončené zřídka. Detaily zůstávají v cache 6 hodin, obnova častější vrací stejná data.

Ceník

amodb je předplacené a samo se neobnovuje. Zvolte 1, 3, 6, 12 nebo 24 měsíců, za které je sleva 0, 10, 20, 30 nebo 40 procent, a jeden ze tří tarifů s 20, 40 nebo 120 požadavky za minutu. Každý tarif vrací všechna data a bezplatný tarif neexistuje. Částky jsou na stránce ceník.