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

## Чем отличается amodb

- **Никакого экрана входа для ваших пользователей.** Достаточно ключа на стороне сервера. Никто не подключает аккаунт, поэтому нет токена для обновления и экрана согласия, который нужно объяснять.
- **Широкий набор полей.** Продолжительность, жанры, студии, возрастные рейтинги, переводы и ключевые слова приходят из эндпоинтов сведений на том языке, который вы запросили.
- **Опубликованные лимиты.** Лимит тарифа это число в минуту, а каждый ответ показывает остаток. По этим числам можно рассчитать фоновую синхронизацию.
- **Шкалы настроения и саундтреки.** Расширения на страницах [настроения](https://amodb.dev/ru/moods/) и [саундтреки](https://amodb.dev/ru/soundtracks/) добавляют данные, которых нет в TMDB v3.

## Когда Trakt подходит лучше

- **Все личное.** Скробблинг, синхронизация истории, социальные списки и календари отдельных пользователей это функции Trakt. В amodb нет аккаунтов и методов записи.
- **Состояние на разных устройствах.** Если пользователь ждет одинаковых отметок о просмотре на телефоне и на телевизоре, состояние должно жить в пользовательском сервисе, а amodb таким не является.
- **Готовые приложения на OAuth.** Если в вашем приложении уже есть токены Trakt, они остаются. Добавьте amodb только для данных о названиях, которые вы сейчас берете из другого места.

## Миграция на amodb: свяжите записи

Данные пользователей переносить не нужно, потому что в amodb их нет. Вы заменяете вызовы метаданных. Элементы Trakt содержат ID в других базах (точные поля смотрите в их документации), поэтому храните ID TMDB или ID 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;
```

Если у вас есть только ID IMDb, один раз вызовите `/3/find/tt0903747?external_source=imdb_id` и сохраните id из `tv_results`. Ответ 429 содержит `Retry-After`, как описано на странице [лимиты запросов](https://amodb.dev/ru/rate-limits/).

## Расчет задачи обновления

Библиотеке пользователя из 200 сериалов для одного обновления нужно 200 запросов сведений. При 20 запросах в минуту это займет 10 минут, при 40 это 5 минут, а при 120 меньше 2. Проверка ключа выполняется раньше кэша на границе сети, поэтому повторные вызовы тоже считаются. В 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/ru/pricing/).

## Вопросы и ответы

### Может ли amodb заменить историю просмотров и списки Trakt?

Нет. amodb не хранит действия пользователей, а методы записи аккаунта, сессий, оценок и списков в стиле TMDB возвращают 405 со status_code 37. Историю просмотров держите в Trakt или в собственной базе.

### Нужен ли OAuth для вызовов amodb?

Нет. Каждый запрос несет ваш ключ в параметре api_key или в заголовке Authorization Bearer. Входа пользователей нет, потому что API отдает метаданные, а не личные данные.

### Как связать записи Trakt с названиями amodb?

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

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