Розныя задачы, розныя інструменты
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 запытаў у хвіліну. Кожны план вяртае ўсе даныя, бясплатнага тарыфа няма. Сумы ёсць на старонцы цэны.