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

> OMDb це невеликий API одного запису з безкоштовним ключем і добовим лімітом 1,000 (перевірте їхній сайт). amodb приймає i, t, s, type, y, plot і page на /omdb/ з тими самими полями тіла, рахує ліміт на хвилину й додає ендпоінти TMDB v3 на одному ключі. Лише JSON, без XML і серій.

## Обирайте за формою ваших викликів

Обирайте OMDb, коли вам потрібен один невеликий запис на тайтл і його безкоштовний ключ покриває ваш обсяг. Обирайте amodb, коли ви переростаєте його або коли хочете такий самий стиль запитів OMDb поруч з акторським складом, зображеннями й перекладами на одному ключі. OMDb повертає JSON або XML, використовує параметр `apikey` і пропонує безкоштовний ключ із добовим лімітом запитів 1,000 (перевірте їхній сайт) та платний рівень для підтримувачів. amodb лише платний і відповідає на основні параметри OMDb, а також на TMDB v3.

## Що лишається незмінним

Ендпоінт OMDb розташований за адресою `https://api.amodb.dev/omdb/`, кінцевий слеш необов'язковий. Ваш наявний код розбору не потребує змін для цих елементів.

| Елемент OMDb | В amodb                                                                                             |
| ------------ | --------------------------------------------------------------------------------------------------- |
| `apikey`     | Той самий параметр, заповнений вашим ключем amodb                                                   |
| `i` і `t`    | Пошук за id IMDb або за назвою                                                                      |
| `s` і `page` | Пошук із 10 результатами на сторінці та лічильником `totalResults`, `page` до 100                   |
| `type` і `y` | Фільтр за `movie` або `series` і за роком                                                           |
| `plot`       | `short` або `full`                                                                                  |
| `r`          | Приймається лише `json`                                                                             |
| Поля тіла    | Названі як в OMDb, від `Title` до `Response`                                                        |
| `Ratings`    | Масив пар `Source` і `Value` для Internet Movie Database, Rotten Tomatoes і Metacritic, коли вони є |
| Помилки      | `{"Response":"False","Error":"..."}` з формулюваннями OMDb, у відповіді HTTP 200                    |

## Що не переноситься

- **XML.** Запит з `r=xml` повертає 400 з `{"Response":"False","Error":"Only r=json is supported."}`.
- **Сезони й серії.** `Season` і `Episode` ігноруються, а `type=episode` нічого не знаходить. Запит з `i=tt0903747&Season=1` повертає запис серіалу, а не сезону. Для серій використовуйте `/3/tv/{id}/season/{n}`.
- **Інші параметри.** `callback` ігнорується.
- **Поля без даних.** `DVD`, `Production` і `Website` завжди дорівнюють `"N/A"`. Записи серіалів мають `totalSeasons` і не містять `DVD`, `BoxOffice`, `Production` та `Website`.
- **Постери.** Поле `Poster` вказує на `https://img.amodb.dev/t/p/w300/...` замість іншого хоста. Замініть `w300` на `w780`, щоб отримати більше зображення з того самого шляху, а ключ для зображень не потрібен.

Повний список параметрів і помилок на сторінці [ендпоінт OMDb](https://amodb.dev/uk/omdb-endpoint/).

## Приклад відповіді

Запит з `t=Fight Club` повертає плоский об'єкт. Відповідь нижче справжня, скорочено лише текст `Plot`.

```json
{
  "Title": "Fight Club",
  "Year": "1999",
  "Rated": "R",
  "Released": "15 Oct 1999",
  "Runtime": "139 min",
  "Genre": "Crime, Drama, Thriller",
  "Director": "David Fincher",
  "Writer": "Chuck Palahniuk, Jim Uhls",
  "Actors": "Brad Pitt, Edward Norton, Meat Loaf",
  "Plot": "A nameless first-person narrator attends support groups in an attempt to subdue his emotional state an...",
  "Language": "English",
  "Country": "United States, Germany",
  "Awards": "Nominated for 1 Oscar. 12 wins & 38 nominations total",
  "Poster": "https://img.amodb.dev/t/p/w300/qkrH7rjYKU4KOwwIl6wF6H3ISvm.jpg",
  "Ratings": [
    {
      "Source": "Internet Movie Database",
      "Value": "8.8/10"
    },
    {
      "Source": "Rotten Tomatoes",
      "Value": "81%"
    },
    {
      "Source": "Metacritic",
      "Value": "67/100"
    }
  ],
  "Metascore": "67",
  "imdbRating": "8.8",
  "imdbVotes": "2,669,989",
  "imdbID": "tt0137523",
  "Type": "movie",
  "DVD": "N/A",
  "BoxOffice": "$38,003,039",
  "Production": "N/A",
  "Website": "N/A",
  "Response": "True"
}
```

Значення це рядки, як в OMDb, тож `imdbRating`, `imdbVotes` і `Runtime` розбирайте самостійно. Кожен виклик рахується як один запит у вашому ліміті на хвилину, скільки б полів ви не читали.

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

| Можливість              | OMDb                                                                         | amodb                                                                     |
| ----------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| Модель оплати           | Безкоштовний ключ плюс платний рівень для підтримувачів, дивіться їхній сайт | Передплачувані періоди, від 1 до 24 місяців                               |
| Безкоштовний тариф      | Безкоштовний ключ із добовим лімітом 1,000, дивіться їхній сайт              | Немає, пробного періоду теж                                               |
| Автентифікація          | Параметр `apikey`                                                            | `apikey` на `/omdb/`, `api_key` або Bearer на `/3`                        |
| Формат відповіді        | JSON або XML                                                                 | JSON                                                                      |
| Мови                    | Дивіться їхню документацію                                                   | 14 мов інтерфейсу на шляхах `/3`                                          |
| Фільми                  | Так                                                                          | Так                                                                       |
| Серіали                 | Серіали та серії, поля дивіться в їхній документації                         | Записи серіалів на `/omdb/`, сезони й серії на шляхах `/3`                |
| Персони                 | Імена як текст у кожному записі                                              | Профілі, фільмографія й зображення на шляхах `/3`                         |
| Зображення              | Посилання на постер у кожному записі                                         | Посилання на постер плюс списки зображень, `img.amodb.dev`                |
| Рейтинги                | Поля `Ratings`, `Metascore` і `imdbRating`                                   | Ті самі поля плюс об'єкт `ratings` на шляхах `/3`                         |
| Ліміт запитів           | Добовий ліміт на безкоштовному ключі, дивіться їхній сайт                    | 20, 40 або 120 на хвилину на ключ                                         |
| Комерційне використання | Дивіться їхній сайт                                                          | Продається як платний API, дивіться [ціни](https://amodb.dev/uk/pricing/) |
| Сумісність              | Визначає протокол OMDb                                                       | Параметри OMDb вище та читання TMDB v3                                    |

## Чим відрізняється amodb

- **Ліміти за хвилину.** Тарифи дозволяють 20, 40 або 120 запитів на хвилину в ковзному вікні 60 секунд. Кожна відповідь із ключем має `X-RateLimit-Remaining`, тож пакетне завдання може сповільнитися саме, ще до того як побачить 429.
- **Шлях угору від окремих записів.** Запис OMDb містить акторський склад як текст. Шляхами `/3` ви можете запросити той самий тайтл з акторським складом, відео й перекладами одним викликом, а `imdbID` знаходить запис через `/3/find`.
- **Більші зображення.** Записи у стилі OMDb дають одне посилання на постер. Хост зображень віддає десять розмірів, від `w92` до `original`.
- **Більше джерел рейтингів.** Розширення `/3/movie/{id}/ratings` додає значення Kinopoisk, Metacritic, Rotten Tomatoes і TMDB, де вони відомі.

## Де OMDb підходить краще

- **Невеликі або безкоштовні проєкти.** Безкоштовного ключа з добовим лімітом 1,000 досить для прототипу чи хобі-сайту, а в amodb безкоштовного тарифу немає.
- **Споживачі XML.** Якщо застаріла система розбирає XML, OMDb його пропонує, а amodb ні.
- **Пошук сезонів і серій.** Маршрут `/omdb/` в amodb не має режиму сезону чи серії, тож клієнту, побудованому на ньому, потрібні шляхи `/3`.
- **Простота.** Один ендпоінт і жменя параметрів легко вивчити. Якщо вам потрібно лише це, перехід дасть мало.

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

Змінюються лише базовий URL і ключ. Решту запиту залиште як є, після того як пошукаєте в коді `r=xml`, `Season`, `Episode` і `type=episode`.

```js
const OMDB_BASE = process.env.OMDB_BASE_URL; // before: your current OMDb base URL
const AMODB_BASE = 'https://api.amodb.dev/omdb/'; // after

async function lookup(title) {
  const url = new URL(AMODB_BASE);
  url.searchParams.set('apikey', process.env.AMODB_KEY);
  url.searchParams.set('t', title);
  url.searchParams.set('plot', 'short');
  const res = await fetch(url);
  const data = await res.json();
  if (data.Response === 'False') throw new Error(data.Error);
  return data;
}

const movie = await lookup('Fight Club');
console.log(movie.Title, movie.Year, movie.imdbRating, movie.Poster);
```

Далі перевіряйте поле `Response`, як ви робили з OMDb. Коли значення це рядок `"False"`, поле `Error` містить повідомлення. Для серій зіставте `imdbID` один раз через `/3/find` і читайте сезони з боку `/3`:

```bash
curl -s "https://api.amodb.dev/3/find/tt0903747?external_source=imdb_id&api_key=$AMODB_KEY"
curl -s "https://api.amodb.dev/3/tv/1396/season/1?api_key=$AMODB_KEY"
```

Для боку у стилі TMDB дивіться [автентифікація](https://amodb.dev/uk/authentication/) і [швидкий старт](https://amodb.dev/uk/quickstart/).

## Ціни

amodb платний і поновлюється лише тоді, коли ви купуєте ще один період. Три тарифи відрізняються лише частотою запитів, 20, 40 або 120 на хвилину, і кожен повертає всі дані. Періоди тривають 1, 3, 6, 12 або 24 місяці, а довші дають знижку від 10 до 40 відсотків. Актуальні суми дивіться на сторінці [ціни](https://amodb.dev/uk/pricing/).

## Запитання й відповіді

### Чи потрібно переписувати мій клієнт OMDb?

Ні, якщо він використовує i, t, s, type, y, plot і page. Змініть базовий URL на https://api.amodb.dev/omdb/ і підставте ключ amodb у параметр apikey. Тіло зберігає назви полів OMDb, як-от imdbRating. Параметри Season і Episode та r=xml не підтримуються.

### Чи повертає ендпоінт OMDb в amodb XML?

Ні. Він повертає лише JSON. Запит з r=xml отримує відповідь 400 з помилкою Only r=json is supported, тож приберіть параметр r або задайте r=json перед переходом.

### Чи можна шукати сезони й серії через ендпоінт OMDb?

Ні. Параметри Season і Episode ігноруються, тож запит з i і Season=1 повертає запис серіалу, а type=episode нічого не знаходить. Читайте серії з /3/tv/{id}/season/{n} з тим самим ключем.

### Чим ліміт відрізняється від безкоштовного ключа OMDb?

OMDb документує добовий ліміт 1,000 для безкоштовного ключа, тож актуальні умови перевіряйте на їхньому сайті. amodb обмежує запити на хвилину на ключ: 20, 40 або 120 залежно від тарифу.

### Звідки завантажуються зображення постерів?

Поле Poster вказує на img.amodb.dev у розмірі w300. Замініть w300 на інший розмір, наприклад w780, в тому самому URL, щоб отримати більше зображення. Зображення не потребують ключа.

### Чи можна використовувати той самий ключ для викликів у стилі TMDB?

Так. Один ключ працює для /omdb/ і для шляхів /3. Це дає змогу отримати акторський склад, трейлери чи переклади для imdbID без другої підписки.

## Пов'язані сторінки

- [Ендпоінт, сумісний з OMDb](https://amodb.dev/uk/omdb-endpoint/): Сумісний з OMDb API ендпоінт на api.amodb.dev/omdb/. Шукайте за i або t, робіть пошук через s, читайте масив Ratings і зберігайте клієнт, змінивши базовий URL.
- [Альтернатива IMDb API](https://amodb.dev/uk/imdb-api-alternative/): В IMDb немає безкоштовного REST API. Шукайте тайтл за id IMDb, читайте рейтинг IMDb, де він відомий, і беріть склад, зображення й трейлери з платного JSON API.
- [Альтернатива TMDB API](https://amodb.dev/uk/tmdb-api-alternative/): Шукаєте альтернативу TMDB API? Перевірте умови, ліміти, мови й рейтинги та перейдіть на платний API, що зберігає більшість шляхів читання TMDB v3 і JSON.
- [Автентифікація](https://amodb.dev/uk/authentication/): Як надсилати ключ amodb: api_key у запиті, заголовок Authorization Bearer або apikey для викликів OMDb. Формат ключа, зберігання, заміна та помилки 401.
- [Ціни](https://amodb.dev/uk/pricing/): Тарифи amodb різняться лише запитами на хвилину: 20, 40 або 120. Кожен дає всі дані, сумісні з TMDB v3 та OMDb. Передплата, без поновлення й пробного періоду.

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