# Альтэрнатыва Trakt API

> Trakt арыентаваны на даныя карыстальніка: гісторыю прагляду, спісы жадання, ацэнкі, календары і OAuth. amodb не захоўвае актыўнасць карыстальніка. Гэта платнае API метаданых для фільмаў, серыялаў, персон, выяў і рэйтынгаў. Многія праграмы выкарыстоўваюць абодва: стан карыстальніка ў Trakt або ў вашай базе даных, а даныя назваў з amodb.

## Розныя задачы, розныя інструменты

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`. Абодва спісы апісаны на старонцы [трэнды і спісы](https://amodb.dev/be/trending-lists/). Календар для аднаго карыстальніка вы збіраеце з уласных запісаў прагляду.

## Параўнанне магчымасцей

| Магчымасць               | 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 у хвіліну на ключ                                         |
| Камерцыйнае выкарыстанне | Глядзіце іх дакументацыю                                                      | Платныя планы, гл. [цэны](https://amodb.dev/be/pricing/)                 |
| Сумяшчальнасць           | Уласны API                                                                    | Чытанне TMDB v3 і OMDb                                                   |

## Чым адрозніваецца amodb

- **Няма экрана ўваходу для вашых карыстальнікаў.** Дастаткова ключа на баку сервера. Ніхто не падключае акаўнт, таму няма токена для абнаўлення і экрана згоды, які трэба тлумачыць.
- **Шырыня палёў.** Працягласць, жанры, вытворчыя кампаніі, узроставыя рэйтынгі, пераклады і ключавыя словы прыходзяць з эндпоінтаў дэталяў на той мове, якую вы просіце.
- **Апублікаваныя ліміты.** Ліміт плана гэта лік у хвіліну, і кожны адказ паказвае, што засталося. З гэтых лікаў можна ацаніць аб’ём фонавай сінхранізацыі.
- **Індыкатары настрою і саўндтрэкі.** Пашырэнні на старонках [настрой](https://amodb.dev/be/moods/) і [саўндтрэкі](https://amodb.dev/be/soundtracks/) дадаюць даныя, якіх няма ў 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`, як апісана на старонцы [ліміты запытаў](https://amodb.dev/be/rate-limits/).

## Ацэнка задачы абнаўлення

Бібліятэцы карыстальніка з 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 запытаў у хвіліну. Кожны план вяртае ўсе даныя, бясплатнага тарыфа няма. Сумы ёсць на старонцы [цэны](https://amodb.dev/be/pricing/).

## Пытанні і адказы

### Ці можа amodb замяніць гісторыю прагляду і спісы жадання Trakt?

Не. amodb не захоўвае актыўнасць карыстальніка, а метады запісу account, session, rating і list у стылі TMDB вяртаюць 405 са status_code 37. Захоўвайце гісторыю прагляду ў Trakt або ў сваёй базе даных.

### Ці патрэбны OAuth, каб выклікаць amodb?

Не. Кожны запыт нясе ваш ключ у параметры запыту api_key або ў загалоўку Authorization Bearer. Працэсу ўваходу карыстальніка няма, бо API аддае метаданыя, а не асабістыя даныя.

### Як злучыць запісы Trakt з назвамі ў amodb?

Элементы Trakt пералічваюць id з іншых баз, напрыклад IMDb і TMDB (дакладныя палі глядзіце ў іх дакументацыі). Id TMDB працуе ў amodb наўпрост, а IMDb id вызначаецца праз /3/find з external_source=imdb_id.

### Ці ёсць календар надыходзячых эпізодаў?

Дэталі серыяла даюць next_episode_to_air для кожнага серыяла, які вы адсочваеце, а /tv/airing_today і /tv/on_the_air пералічваюць серыялы па раскладзе. amodb не будуе календар для канкрэтнага карыстальніка.

### Якія ліміты запытаў у параўнанні з Trakt?

Ліміты Trakt на публічных эндпоінтах метаданых глядзіце ў іх дакументацыі. amodb дазваляе 20, 40 або 120 запытаў у хвіліну на ключ, у залежнасці ад плана, і паказвае колькасць, што засталася, у загалоўках адказу.

## Звязаныя старонкі

- [API серыялаў, сезонаў і эпізодаў](https://amodb.dev/be/tv-show-api/): API серыялаў са статусам, тэлеканаламі, сезонамі, эпізодамі і next_episode_to_air. JSON, сумяшчальны з TMDB v3, на 14 мовах, ад 20 запытаў у хвіліну.
- [API серыялаў](https://amodb.dev/be/tv-series/): API серыялаў з тымі ж шляхамі і JSON, што ў TMDB v3. Серыял па id з сезонамі, тэлеканаламі і наступным эпізодам, плюс узроставыя рэйтынгі і сэрвісы прагляду.
- [Пошук па вонкавым ідэнтыфікатары](https://amodb.dev/be/find-by-external-id/): Шукайце фільм, серыял або персону па IMDb, TVDB, Wikidata ці Kinopoisk id праз эндпоінт find TMDB і чытайце вонкавыя id і факты Wikidata для назвы.
- [Эндпоінты трэндаў і спісаў](https://amodb.dev/be/trending-lists/): API трэндавых фільмаў з шляхамі TMDB v3: чарты за дзень і тыдзень, спісы зараз у пракаце, папулярных, лепшых і хутка ў пракаце, кэш 30 хвілін.
- [Аўтэнтыфікацыя](https://amodb.dev/be/authentication/): Як перадаваць ключ amodb: api_key у запыце, загаловак Authorization Bearer або apikey для выклікаў OMDb. Фармат ключа, захоўванне, замена і памылкі 401.
- [Цэны](https://amodb.dev/be/pricing/): Планы amodb адрозніваюцца толькі лікам запытаў у хвіліну: 20, 40 або 120. Усе даныя TMDB v3 і OMDb у кожным плане. Аплата наперад, без аўтапрадаўжэння.

Абноўлена: 2026-10-18. Source: https://amodb.dev/be/trakt-api-alternative/
