# Алтернатива на 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/bg/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/bg/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/bg/authentication/) и [бърз старт](https://amodb.dev/bg/quickstart/).

## Цени

amodb е платен и се подновява само когато купите нов период. Трите плана се различават само по скоростта, 20, 40 или 120 заявки в минута, и всеки връща всички данни. Периодите са 1, 3, 6, 12 или 24 месеца, а по-дългите дават отстъпка от 10 до 40 процента. Текущите суми проверете на страницата с [цените](https://amodb.dev/bg/pricing/).

## Въпроси и отговори

### Трябва ли да пренапиша клиента си за OMDb?

Не, ако ползва i, t, s, type, y, plot и page. Сменете базовия URL на https://api.amodb.dev/omdb/ и сложете ключа си за amodb в параметъра apikey. Тялото запазва имената на полетата на OMDb, като imdbRating. Параметрите Season и Episode и r=xml не се поддържат.

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

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