# Альтэрнатыва 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`    | Пошук па IMDb id або па назве                                                                         |
| `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/be/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/be/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/be/authentication/) і [хуткі старт](https://amodb.dev/be/quickstart/).

## Цэны

amodb платны і прадаўжаецца, толькі калі вы купляеце наступны перыяд. Тры планы адрозніваюцца толькі частатой, 20, 40 або 120 запытаў у хвіліну, і кожны вяртае ўсе даныя. Перыяды складаюць 1, 3, 6, 12 або 24 месяцы, а доўгія даюць зніжку ад 10 да 40 працэнтаў. Бягучыя сумы глядзіце на старонцы [цэны](https://amodb.dev/be/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/be/omdb-endpoint/): Эндпоінт, сумяшчальны з OMDb API, па адрасе api.amodb.dev/omdb/. Пошук па i або t, спіс праз s, масіў Ratings. Змяніце базавы URL, і кліент працуе далей.
- [Альтэрнатыва IMDb API](https://amodb.dev/be/imdb-api-alternative/): У IMDb няма бясплатнага REST API. Шукайце назвы па IMDb id, чытайце рэйтынг IMDb, калі ён вядомы, і бярыце акцёраў, выявы і трэйлеры з платнага JSON API.
- [Альтэрнатыва TMDB API](https://amodb.dev/be/tmdb-api-alternative/): Шукаеце альтэрнатыву TMDB API? Параўнайце ўмовы, ліміты, мовы і рэйтынгі, потым перайдзіце на платнае API з шляхамі чытання TMDB v3 і JSON. Гл. прабелы.
- [Аўтэнтыфікацыя](https://amodb.dev/be/authentication/): Як перадаваць ключ amodb: api_key у запыце, загаловак Authorization Bearer або apikey для выклікаў OMDb. Фармат ключа, захоўванне, замена і памылкі 401.
- [Цэны](https://amodb.dev/be/pricing/): Планы amodb адрозніваюцца толькі лікам запытаў у хвіліну: 20, 40 або 120. Усе даныя TMDB v3 і OMDb у кожным плане. Аплата наперад, без аўтапрадаўжэння.

Абноўлена: 2026-10-18. Source: https://amodb.dev/be/omdb-api-alternative/
