Различни задачи, различни инструменти
Trakt е насочен към потребителски данни: история на гледане, списъци за гледане, оценки, календари и вход през OAuth. Има и публични ендпойнти за метаданни, а документацията му посочва лимитите, които важат. amodb има една задача: метаданни за филми, сериали и личности, върнати като JSON във формата на TMDB v3. Изберете Trakt за това, което са направили потребителите ви. Изберете amodb за това, какво е едно заглавие. Повечето приложения, които се нуждаят от двете, викат всяка услуга за нейната половина.
Потребителски данни срещу данни за заглавия
| Задача | Trakt | amodb |
|---|---|---|
| История на гледане | Основна функция | Не се предлага, пазете я сами |
| Списъци за гледане и списъци | Основна функция | Не се предлагат, записът връща 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. И двата списъка са описани на страницата тенденции и списъци. Календарът за един потребител е нещо, което съставяте от собствените си записи за гледане.
Сравнение на функциите
| Функция | Trakt | amodb |
|---|---|---|
| Модел на цените | Вижте документацията им | Предплатени периоди от 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
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, извикайте / веднъж и запазете 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 заявки в минута. Всеки план връща всички данни и няма безплатен план. Сумите са на страницата с цените.