# Алтернатива на 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/bg/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/bg/pricing/)                      |
| Съвместимост       | Собствено API                                                                  | Четене по TMDB v3 и OMDb                                                          |

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

- **Няма екран за вход за потребителите ви.** Достатъчен е ключ от страна на сървъра. Никой не свързва акаунт, така че няма токен за подновяване и екран за съгласие, който да обяснявате.
- **Широка гама от полета.** Продължителност, жанрове, продуцентски компании, възрастови рейтинги, преводи и ключови думи идват от ендпойнтите за детайли, на езика, който поискате.
- **Публикувани лимити.** Лимитът на плана е число в минута, а всеки отговор показва какво остава. По тези числа можете да оразмерите фонова синхронизация.
- **Индикатори за настроение и саундтраци.** Разширенията на страниците [настроения](https://amodb.dev/bg/moods/) и [саундтраци](https://amodb.dev/bg/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/bg/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/bg/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/bg/tv-show-api/): API за сериали със статус, мрежи, сезони, епизоди и next_episode_to_air. JSON, съвместим с TMDB v3, на 14 езика, от 20 заявки в минута на ключ.
- [API за сериали](https://amodb.dev/bg/tv-series/): API за сериали със същите пътища и JSON като TMDB v3. Сериал по id със сезони, мрежи и следващ епизод, плюс възрастови рейтинги и доставчици за гледане.
- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [Ендпойнти за тенденции и списъци](https://amodb.dev/bg/trending-lists/): API за филми в тенденция с пътища на TMDB v3: класации за ден и седмица, списъци в кината, популярни, най-добри и предстоящи, кеш 30 минути.
- [Удостоверяване](https://amodb.dev/bg/authentication/): Как да изпратите ключа си за amodb: api_key в заявката, заглавка Authorization с Bearer или apikey за OMDb. Формат, съхранение, смяна на ключ и грешките 401.
- [Цени](https://amodb.dev/bg/pricing/): Планове на amodb, различни само по заявките в минута: 20, 40 или 120. Всеки включва всички данни, съвместими с TMDB v3 и OMDb. Предплатено, без подновяване.

Обновено: 2026-10-18. Source: https://amodb.dev/bg/trakt-api-alternative/
