# Альтернатива IMDb API

> У IMDb нет бесплатного универсального REST API: некоммерческие наборы данных доступны как файлы для скачивания, а коммерческий доступ лицензируется. amodb представляет собой платный JSON API, где вы ищете тайтл по ID IMDb, читаете рейтинг IMDb и число голосов, где они известны, и получаете актеров, изображения и трейлеры с одним ключом.

## Данные IMDb через REST: короткий ответ

У IMDb нет бесплатного универсального REST API. Его некоммерческие наборы данных представляют собой файлы для скачивания, а коммерческий доступ лицензируется, поэтому актуальные условия уточняйте в их документации. Если вы хотите вызвать эндпоинт HTTP с ID IMDb и получить JSON, amodb делает это на платном тарифе. Если ваш договор требует данных, лицензированных самим IMDb, такое соглашение заключается с IMDb, и amodb его не заменяет.

## Способы использовать ID IMDb в amodb

Пять вызовов закрывают большинство задач. Каждый начинается с уже имеющегося ID или заканчивается им.

| У вас есть или нужно | Запрос                                          | Что вы получаете                                        |
| -------------------- | ----------------------------------------------- | ------------------------------------------------------- |
| Тайтл по ID IMDb     | `GET /3/find/tt0137523?external_source=imdb_id` | Массивы `movie_results`, `tv_results`, `person_results` |
| ID IMDb фильма       | `GET /3/movie/550`, поле `imdb_id`              | `tt0137523` для Fight Club                              |
| ID IMDb сериала      | `GET /3/tv/1396/external_ids`                   | `imdb_id` рядом с ID TVDB                               |
| Оценка IMDb          | `GET /3/movie/550/ratings`                      | `imdb` в виде `value` и `votes` или null                |
| Запись в стиле OMDb  | `GET /omdb/?i=tt0137523`                        | `imdbRating`, `imdbVotes`, `imdbID`                     |

Каждая строка работает с одним и тем же ключом. Рейтинги описаны на странице [рейтинги](https://amodb.dev/ru/ratings/), а поиск по ID на странице [поиск по внешнему ID](https://amodb.dev/ru/find-by-external-id/).

## Как прочитать оценку IMDb

Эндпоинт рейтингов возвращает оценку и число голосов вместе. Это реальный ответ для Fight Club (ID 550). Оценки со временем меняются.

```json
{
  "id": 550,
  "imdb": {
    "value": 8.8,
    "votes": 2669989
  },
  "kinopoisk": {
    "value": 8.7,
    "votes": null
  },
  "metacritic": {
    "value": 67,
    "votes": null
  },
  "rotten_tomatoes": {
    "value": 81,
    "votes": null
  },
  "tmdb": {
    "value": 8.437,
    "votes": 33039
  }
}
```

Для IMDb `value` задано по шкале от 0 до 10 с одним знаком после запятой. Показывайте число голосов рядом и ничего не выводите, если объект равен `null`. В этом ответе голоса есть только у IMDb и TMDB. `votes` может быть `null` у любого источника, поэтому проверьте его перед показом. Кэшированный ответ остается действительным 6 часов на edge, так что опрашивать чаще нет смысла.

## Сравнение возможностей

| Возможность                | IMDb                                                                                      | amodb                                                     |
| -------------------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Модель оплаты              | Лицензия для коммерческого доступа, уточняйте в их документации                           | Предоплата, от 1 до 24 месяцев                            |
| Бесплатный тариф           | Нет бесплатного универсального REST API                                                   | Нет, пробного периода тоже нет                            |
| Аутентификация             | Уточняйте в их документации                                                               | Параметр запроса `api_key` или заголовок Bearer           |
| Формат ответа              | Файлы наборов данных для скачивания, про лицензированные фиды уточняйте в их документации | JSON                                                      |
| Языки                      | Уточняйте в их документации                                                               | 14 языков интерфейса                                      |
| Фильмы                     | Поля уточняйте в их документации                                                          | Детали, актеры и съемочная группа, изображения, видео     |
| Сериалы                    | Поля уточняйте в их документации                                                          | Сериалы, сезоны, серии                                    |
| Люди                       | Поля уточняйте в их документации                                                          | Профили, фильмография, изображения                        |
| Изображения                | Уточняйте в их документации                                                               | `img.amodb.dev`, ключ не нужен                            |
| Рейтинги                   | Собственная оценка, доступ уточняйте в их документации                                    | Пять источников, среди них IMDb, где они известны         |
| Лимит запросов             | Уточняйте в их документации                                                               | 20, 40 или 120 запросов в минуту                          |
| Коммерческое использование | Лицензируется, уточняйте в их документации                                                | Платные тарифы, см. [цены](https://amodb.dev/ru/pricing/) |
| Совместимость              | Собственные форматы, уточняйте в их документации                                          | Чтение TMDB v3 и протокол OMDb                            |

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

Вы вызываете эндпоинт, а не разбираете файл. Один запрос возвращает тайтл с актерским составом, трейлерами и рейтингами через `append_to_response`, а структура совпадает с TMDB v3, поэтому готовые клиентские библиотеки работают. Тот же ключ обслуживает эндпоинт в стиле OMDb, благодаря чему продолжает работать старый код, читающий `imdbRating`.

Блок рейтингов представляет собой объект с пятью фиксированными ключами. Неизвестный источник равен `null`, а не отсутствует, поэтому коду, который читает `ratings.imdb`, не нужна проверка существования родителя. Рядом со значением может стоять число голосов, и это позволяет скрыть оценку, основанную на малом числе голосов. Оно тоже может быть `null`, как у трех из пяти источников в примере выше.

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

- **Источник оценки.** IMDb публикует свои рейтинги первым. amodb возвращает значение только там, где оно известно, поэтому у нового или малоизвестного тайтла может прийти `null`.
- **Функции сайта.** Отзывы пользователей, списки и списки к просмотру живут на сайте IMDb. amodb является API метаданных и не предлагает пользовательских аккаунтов.
- **Лицензированные данные.** Если партнер или договор требует данных, лицензированных IMDb, их может предоставить только IMDb.
- **Офлайн-анализ.** Файлы некоммерческих наборов данных подходят для массовых исследований, которые вы запускаете на своей машине. Условия уточняйте в их документации.

## Миграция на amodb

Скорее всего, у вас есть список ID IMDb. Сопоставьте каждый с ID amodb один раз, сохраните пару и дальше вызывайте детали по числовому ID.

```bash
curl -s "https://api.amodb.dev/3/find/tt0133093?external_source=imdb_id" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```python
import os
import requests

KEY = os.environ["AMODB_KEY"]
imdb_ids = ["tt0137523", "tt0133093", "tt1375666"]

for imdb_id in imdb_ids:
    r = requests.get(
        f"https://api.amodb.dev/3/find/{imdb_id}",
        params={"external_source": "imdb_id"},
        headers={"Authorization": f"Bearer {KEY}"},
        timeout=10,
    )
    r.raise_for_status()
    hits = r.json()["movie_results"]
    print(imdb_id, hits[0]["id"] if hits else None)
```

Три ID выше соответствуют 550, 603 и 27205, то есть Fight Club, The Matrix и Inception. ID сериала, например `tt0903747`, приходит в `tv_results`, где у Breaking Bad ID 1396. Пустой массив означает, что для этого ID совпадений не найдено.

Ограничьте скорость цикла. Каждый ID занимает один запрос, а ответ 429 содержит заголовок `Retry-After` с числом секунд ожидания. Остальные коды описаны на странице [ошибки](https://amodb.dev/ru/errors/).

### Как безопасно хранить ID

- Храните ID IMDb как строки. Они начинаются с `tt` и содержат ведущие нули, как в `tt0137523`, а числовой тип эти нули отбрасывает.
- Сохраняйте ID IMDb и ID amodb парой. По любому из них тайтл находится снова.
- Для сериалов читайте `tv_results`, для фильмов `movie_results`. Один ID обычно заполняет один массив, а остальные оставляет пустыми.
- Дальше запрашивайте детали по ID amodb, потому что запрос деталей может включать актеров, трейлеры и рейтинги через `append_to_response`.

## Цены

Выберите один из трех тарифов на 20, 40 или 120 запросов в минуту и оплатите вперед 1, 3, 6, 12 или 24 месяца. Более длинные периоды дают скидку 10, 20, 30 или 40 процентов. Все тарифы возвращают одни и те же данные, автоматического продления нет, бесплатного тарифа тоже нет. Суммы указаны на странице [цены](https://amodb.dev/ru/pricing/).

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

### Есть ли у IMDb бесплатный REST API?

У IMDb нет бесплатного универсального REST API. Его некоммерческие наборы данных доступны как файлы для скачивания, а коммерческий доступ лицензируется. Прежде чем строить планы, уточните в их документации актуальные условия, форматы и поля.

### Можно ли найти тайтл по ID IMDb в amodb?

Да. Вызовите /3/find/tt0137523 с external_source=imdb_id и читайте movie_results, tv_results или person_results. Эндпоинт в стиле OMDb тоже принимает параметр i с ID IMDb.

### Рейтинг IMDb возвращается всегда?

Нет. Объект ratings всегда содержит пять ключей: imdb, kinopoisk, metacritic, rotten_tomatoes и tmdb, но каждый из них равен null, если оценка неизвестна. Обработайте null, прежде чем выводить число.

### Получу ли я отзывы пользователей IMDb или списки?

Нет. amodb возвращает ID IMDb, а также оценку IMDb с числом голосов, где они известны. Отзывы пользователей, списки и списки к просмотру IMDb он не хранит. Эндпоинт отзывов в стиле TMDB отвечает 200, но у большинства тайтлов список пуст.

### Сколько времени займет сопоставление списка ID IMDb?

Один запрос find на каждый ID. Список из 500 ID требует 500 запросов, поэтому на тарифе с 20 запросами в минуту это займет около 25 минут. Сохраните результат, потому что соответствие меняется редко.

## Связанные страницы

- [Поиск по внешнему ID](https://amodb.dev/ru/find-by-external-id/): Найдите фильм, сериал или персону по ID IMDb, TVDB, Wikidata или Kinopoisk через эндпоинт find TMDB, а также прочитайте внешние ID и факты Wikidata о проекте.
- [Рейтинги фильмов и сериалов](https://amodb.dev/ru/ratings/): API рейтингов фильмов: оценки IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB для тайтла одним запросом, с null для источника, о котором нет данных.
- [Эндпоинт, совместимый с OMDb](https://amodb.dev/ru/omdb-endpoint/): Эндпоинт, совместимый с OMDb API, на api.amodb.dev/omdb/. Поиск по i или t, список через s, массив Ratings. Смените базовый URL, и клиент продолжит работать.
- [Альтернатива OMDb API](https://amodb.dev/ru/omdb-api-alternative/): Уперлись в суточный лимит OMDb или нужно больше одной записи за запрос? amodb отвечает на запросы в стиле OMDb и отдает эндпоинты TMDB v3 с тем же ключом.
- [Аутентификация](https://amodb.dev/ru/authentication/): Как передать ключ amodb: api_key в запросе, заголовок Authorization Bearer или apikey для вызовов OMDb. Формат ключа, хранение, ротация и ошибки 401.
- [Лимиты запросов](https://amodb.dev/ru/rate-limits/): amodb ограничивает ключ запросами в минуту в скользящем окне 60 секунд: 20, 40 или 120 по тарифу. Читайте заголовки лимита и обрабатывайте 429 с Retry-After.

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