Различни задачи, различни инструменти

Trakt е насочен към потребителски данни: история на гледане, списъци за гледане, оценки, календари и вход през OAuth. Има и публични ендпойнти за метаданни, а документацията му посочва лимитите, които важат. amodb има една задача: метаданни за филми, сериали и личности, върнати като JSON във формата на TMDB v3. Изберете Trakt за това, което са направили потребителите ви. Изберете amodb за това, какво е едно заглавие. Повечето приложения, които се нуждаят от двете, викат всяка услуга за нейната половина.

Потребителски данни срещу данни за заглавия

ЗадачаTraktamodb
История на гледанеОсновна функцияНе се предлага, пазете я сами
Списъци за гледане и списъциОсновна функцияНе се предлагат, записът връща 405
Потребителски оценкиОсновна функцияНе се предлагат, записът връща 405
КалендариЗа потребител, вижте документацията имnext_episode_to_air на сериал и списъци по график
ВходOAuthСамо ключ, без потребителски вход
Метаданни за заглавияПублични ендпойнти, за лимитите вижте документацията имЕндпойнти за детайли на 14 езика
Актьори и екипВижте документацията им/credits за заглавие, combined_credits за личност
ИзображенияВижте документацията имimg.amodb.dev, не е нужен ключ
ТрейлъриВижте документацията им/videos с type и official
Променено от датаВижте документацията имНе се предлага, няма потоци с промени

За графици GET /3/tv/airing_today и GET /3/tv/on_the_air изброяват сериали по дата на излъчване, а всеки запис за сериал носи собствен next_episode_to_air. За приключил сериал това поле е null. И двата списъка са описани на страницата тенденции и списъци. Календарът за един потребител е нещо, което съставяте от собствените си записи за гледане.

Сравнение на функциите

ФункцияTraktamodb
Модел на ценитеВижте документацията имПредплатени периоди от 1 до 24 месеца
Безплатен планВижте документацията имНяма, и няма пробен период
УдостоверяванеOAuth за потребителски данни, за публичните извиквания вижте документацията имapi_key или заглавка Bearer
Формат на отговораJSON, вижте документацията имJSON във формата на TMDB v3
ЕзициВижте документацията им14 езика на интерфейса
ФилмиДаДа
СериалиДаДа, със сезони и епизоди
ЛичностиВижте документацията имДа
ИзображенияВижте документацията имimg.amodb.dev, същите токени за размери като TMDB
РейтингиПотребителски оценки, вижте документацията имОценки от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB, където са известни
Лимит на заявкитеЗа лимитите вижте документацията им20, 40 или 120 в минута на ключ
Търговска употребаВижте документацията имПлатени планове, вижте цени
СъвместимостСобствено APIЧетене по TMDB v3 и OMDb

С какво се различава amodb

  • Няма екран за вход за потребителите ви. Достатъчен е ключ от страна на сървъра. Никой не свързва акаунт, така че няма токен за подновяване и екран за съгласие, който да обяснявате.
  • Широка гама от полета. Продължителност, жанрове, продуцентски компании, възрастови рейтинги, преводи и ключови думи идват от ендпойнтите за детайли, на езика, който поискате.
  • Публикувани лимити. Лимитът на плана е число в минута, а всеки отговор показва какво остава. По тези числа можете да оразмерите фонова синхронизация.
  • Индикатори за настроение и саундтраци. Разширенията на страниците настроения и саундтраци добавят данни, които не са част от TMDB v3.

Къде Trakt пасва по-добре

  • Всичко лично. Scrobbling, синхронизация на историята, социални списъци и календари за отделен потребител са функции на Trakt. amodb няма акаунти и методи за запис.
  • Състояние между устройства. Ако потребител очаква същите отметки за гледано на телефона и на телевизора, състоянието трябва да живее в потребителска услуга, а amodb не е такава.
  • Съществуващи приложения с OAuth. Ако приложението ви вече държи токени на Trakt, запазвате ги. Добавете amodb само за данните за заглавия, които сега взимате другаде.

Миграция към amodb: свържете записите си

Не мигрирате потребителски данни, защото amodb не държи такива. Заменяте извикванията за метаданни. Елементите в Trakt носят id за други бази (точните полета вижте в документацията им), затова пазете id от TMDB или IMDb до всеки запис за гледане и го ползвайте тук.

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;

Когато имате само IMDb id, извикайте /3/find/tt0903747?external_source=imdb_id веднъж и запазете id от tv_results. 429 включва Retry-After, както е описано на страницата лимити на заявките.

Оразмеряване на задача за обновяване

Потребителска библиотека от 200 сериала изисква 200 заявки за детайли, за да се обнови веднъж. При 20 заявки в минута това отнема 10 минути, при 40 отнема 5, а при 120 под 2. Проверката на ключа се изпълнява преди edge кеша, така че повтарящите се извиквания също се броят. amodb няма потоци с промени, затова не може да ви каже кои id са се променили от дата. Вместо това четете status и next_episode_to_air от отговора за детайли. Обновявайте често сериалите, които още вървят, а приключилите рядко. Детайлите се кешират за 6 часа, така че обновяване по-често от това връща същите данни.

Цени

amodb е предплатен и не се подновява сам. Изберете 1, 3, 6, 12 или 24 месеца, които носят отстъпка 0, 10, 20, 30 или 40 процента, и един от три плана за 20, 40 или 120 заявки в минута. Всеки план връща всички данни и няма безплатен план. Сумите са на страницата с цените.