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

> OMDb представляет собой небольшой API с одной записью на запрос, бесплатным ключом и суточным лимитом 1000 (уточняйте на их сайте). amodb отвечает на i, t, s, type, y, plot и page по адресу /omdb/ с теми же полями тела, ограничивает запросы в минуту и добавляет эндпоинты TMDB v3 на одном ключе. Только JSON, без XML и серий.

## Выбор по форме ваших запросов

Выбирайте OMDb, когда вам нужна одна небольшая запись на тайтл, а бесплатный ключ покрывает ваш объем. Выбирайте amodb, когда вы переросли этот лимит или хотите тот же стиль запросов OMDb рядом с актерами, изображениями и переводами на одном ключе. OMDb возвращает JSON или XML, использует параметр `apikey` и предлагает бесплатный ключ с суточным лимитом 1000 запросов (уточняйте на их сайте), а также платный тариф для спонсоров. 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/ru/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 месяцев                           |
| Бесплатный тариф           | Бесплатный ключ с суточным лимитом 1000, уточняйте на их сайте       | Нет, пробного периода тоже нет                                       |
| Аутентификация             | Параметр `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/ru/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 подходит лучше

- **Небольшие или бесплатные проекты.** Бесплатного ключа с суточным лимитом 1000 хватает для прототипа или хобби-сайта, а у 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/ru/authentication/) и [быстрый старт](https://amodb.dev/ru/quickstart/).

## Цены

amodb платный и продлевается только тогда, когда вы покупаете новый период. Три тарифа отличаются лишь частотой запросов, 20, 40 или 120 в минуту, и каждый возвращает все данные. Периоды составляют 1, 3, 6, 12 или 24 месяца, а более длинные дают скидку от 10 до 40 процентов. Актуальные суммы смотрите на странице [цены](https://amodb.dev/ru/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 документирует суточный лимит 1000 для бесплатного ключа, актуальные условия уточняйте на их сайте. amodb ограничивает запросы в минуту на ключ: 20, 40 или 120 в зависимости от тарифа.

### Откуда загружаются постеры?

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

### Можно ли использовать тот же ключ для вызовов в стиле TMDB?

Да. Один ключ работает и для /omdb/, и для путей /3. Так вы можете получить актеров, трейлеры или переводы для imdbID без второй подписки.

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

- [Эндпоинт, совместимый с OMDb](https://amodb.dev/ru/omdb-endpoint/): Эндпоинт, совместимый с OMDb API, на api.amodb.dev/omdb/. Поиск по i или t, список через s, массив Ratings. Смените базовый URL, и клиент продолжит работать.
- [Альтернатива IMDb API](https://amodb.dev/ru/imdb-api-alternative/): У IMDb нет бесплатного универсального REST API. Ищите тайтлы по ID IMDb, читайте рейтинг IMDb, где он известен, и получайте актеров, изображения и трейлеры.
- [Альтернатива TMDB API](https://amodb.dev/ru/tmdb-api-alternative/): Нужна альтернатива TMDB API? Сверьте условия, лимиты, языки и рейтинги, затем перейдите на платный API, где работает большинство путей чтения и JSON TMDB v3.
- [Аутентификация](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/omdb-api-alternative/
