# Альтернатива 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/uk/ratings/), а пошук за id на сторінці [пошук за зовнішнім ID](https://amodb.dev/uk/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 годин на краю мережі, тож частіше опитувати немає сенсу.

## Порівняння можливостей

| Можливість              | IMDb                                                                                    | amodb                                                         |
| ----------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| Модель оплати           | Ліцензований комерційний доступ, дивіться їхню документацію                             | Передплата, від 1 до 24 місяців                               |
| Безкоштовний тариф      | Немає безкоштовного REST API загального призначення                                     | Немає, пробного періоду теж                                   |
| Автентифікація          | Дивіться їхню документацію                                                              | Параметр запиту `api_key` або заголовок Bearer                |
| Формат відповіді        | Файли наборів даних для завантаження, ліцензовані стрічки дивіться в їхній документації | JSON                                                          |
| Мови                    | Дивіться їхню документацію                                                              | 14 мов інтерфейсу                                             |
| Фільми                  | Поля дивіться в їхній документації                                                      | Деталі, акторський склад, зображення, відео                   |
| Серіали                 | Поля дивіться в їхній документації                                                      | Серіали, сезони, серії                                        |
| Персони                 | Поля дивіться в їхній документації                                                      | Профілі, фільмографія, зображення                             |
| Зображення              | Дивіться їхню документацію                                                              | `img.amodb.dev`, ключ не потрібен                             |
| Рейтинги                | Власна оцінка, доступ дивіться в їхній документації                                     | П'ять джерел, серед них IMDb, де відомо                       |
| Ліміт запитів           | Дивіться їхню документацію                                                              | 20, 40 або 120 запитів на хвилину                             |
| Комерційне використання | Ліцензується, дивіться їхню документацію                                                | Платні тарифи, дивіться [ціни](https://amodb.dev/uk/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/uk/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/uk/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/uk/find-by-external-id/): Знайдіть фільм, серіал чи персону за id IMDb, TVDB, Wikidata або Kinopoisk через find TMDB, а також прочитайте зовнішні id і факти Wikidata про проєкт.
- [Рейтинги фільмів і серіалів](https://amodb.dev/uk/ratings/): API рейтингів фільмів повертає оцінки IMDb, Kinopoisk, Metacritic, Rotten Tomatoes і TMDB для фільму чи серіалу одним викликом, з null для невідомих джерел.
- [Ендпоінт, сумісний з OMDb](https://amodb.dev/uk/omdb-endpoint/): Сумісний з OMDb API ендпоінт на api.amodb.dev/omdb/. Шукайте за i або t, робіть пошук через s, читайте масив Ratings і зберігайте клієнт, змінивши базовий URL.
- [Альтернатива OMDb API](https://amodb.dev/uk/omdb-api-alternative/): Добовий ліміт OMDb тісний або потрібен не один запис на виклик? amodb відповідає на запити у стилі OMDb і обслуговує ендпоінти TMDB v3 на одному ключі.
- [Автентифікація](https://amodb.dev/uk/authentication/): Як надсилати ключ amodb: api_key у запиті, заголовок Authorization Bearer або apikey для викликів OMDb. Формат ключа, зберігання, заміна та помилки 401.
- [Ліміти запитів](https://amodb.dev/uk/rate-limits/): amodb обмежує кожен ключ запитами на хвилину в ковзному вікні 60 секунд: 20, 40 або 120 за тарифом. Читайте заголовки ліміту й обробляйте 429 із Retry-After.

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