# Алтернатива на IMDb API

> IMDb няма безплатно REST API с общо предназначение: некомерсиалните му набори от данни са файлове за изтегляне, а търговският достъп е лицензиран. amodb е платено JSON API, в което търсите заглавие по IMDb id, четете рейтинга на IMDb и броя гласове, където са известни, и получавате актьори, изображения и трейлъри с един ключ.

## Данни от IMDb през REST: краткият отговор

IMDb няма безплатно REST API с общо предназначение. Некомерсиалните му набори от данни са файлове за изтегляне, а търговският достъп е лицензиран, затова вижте документацията им за текущите условия. Ако искате да извикате HTTP ендпойнт с IMDb id и да получите JSON, amodb го прави с платен план. Ако договорът ви изисква данни, лицензирани от самия IMDb, това споразумение е с IMDb и amodb не го замества.

## Начини да ползвате IMDb id в amodb

Пет извиквания покриват повечето нужди. Всяко започва от id, което вече имате, или завършва с такова.

| Имате или искате    | Извикване                                       | Получавате                                             |
| ------------------- | ----------------------------------------------- | ------------------------------------------------------ |
| Заглавие по IMDb id | `GET /3/find/tt0137523?external_source=imdb_id` | Масиви `movie_results`, `tv_results`, `person_results` |
| IMDb id на филм     | `GET /3/movie/550`, поле `imdb_id`              | `tt0137523` за Fight Club                              |
| IMDb id на сериал   | `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/bg/ratings/), а търсенето по id на страницата [търсене по външен идентификатор](https://amodb.dev/bg/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 часа на edge, така че по-честото запитване не носи полза.

## Сравнение на функциите

| Функция            | IMDb                                                                                    | amodb                                                        |
| ------------------ | --------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| Модел на цените    | Лицензиран търговски достъп, вижте документацията им                                    | Предплатен, от 1 до 24 месеца                                |
| Безплатен план     | Няма безплатно REST API с общо предназначение                                           | Няма, и няма пробен период                                   |
| Удостоверяване     | Вижте документацията им                                                                 | Параметър на заявката `api_key` или заглавка Bearer          |
| Формат на отговора | Файлове с набори от данни за изтегляне, за лицензираните потоци вижте документацията им | JSON                                                         |
| Езици              | Вижте документацията им                                                                 | 14 езика на интерфейса                                       |
| Филми              | За полетата вижте документацията им                                                     | Детайли, участници, изображения, видеа                       |
| Сериали            | За полетата вижте документацията им                                                     | Сериали, сезони, епизоди                                     |
| Личности           | За полетата вижте документацията им                                                     | Профили, филмография, изображения                            |
| Изображения        | Вижте документацията им                                                                 | `img.amodb.dev`, не е нужен ключ                             |
| Рейтинги           | Собствена оценка, за достъпа вижте документацията им                                    | Пет източника, сред тях IMDb, където са известни             |
| Лимит на заявките  | Вижте документацията им                                                                 | 20, 40 или 120 заявки в минута                               |
| Търговска употреба | Лицензирана, вижте документацията им                                                    | Платени планове, вижте [цени](https://amodb.dev/bg/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

Най-вероятно имате списък с IMDb id. Съпоставете всяко с 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/bg/errors/) за другите кодове.

### Как да пазите id надеждно

- Пазете IMDb id като низове. Те започват с `tt` и носят водещи нули, както в `tt0137523`, а числовият тип губи тези нули.
- Запазвайте IMDb id и 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/bg/pricing/).

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

### Предлага ли IMDb безплатно REST API?

IMDb няма безплатно REST API с общо предназначение. Некомерсиалните му набори от данни са файлове за изтегляне, а търговският достъп е лицензиран. Вижте документацията им за текущите условия, формати и полета, преди да планирате около тях.

### Мога ли да търся заглавие по IMDb id в amodb?

Да. Извикайте /3/find/tt0137523 с external_source=imdb_id и прочетете movie_results, tv_results или person_results. Ендпойнтът в стил OMDb също приема параметъра i с IMDb id.

### Винаги ли присъства рейтингът на IMDb?

Не. Обектът ratings винаги има петте ключа imdb, kinopoisk, metacritic, rotten_tomatoes и tmdb, но всеки е null, когато оценката не е известна. Обработете null, преди да покажете число.

### Получавам ли потребителски ревюта или списъци от IMDb?

Не. amodb връща IMDb id и оценката на IMDb с броя гласове, където са известни. Не съхранява потребителски ревюта, списъци или списъци за гледане от IMDb. Ендпойнтът за ревюта в стил TMDB отговаря със 200, а за повечето заглавия връща празен списък.

### Колко време отнема съпоставянето на списък с IMDb id?

Една заявка find на id. Списък от 500 id изисква 500 заявки, така че при плана с 20 заявки в минута това са около 25 минути. Запазете резултата, защото съпоставянето рядко се променя.

## Свързани страници

- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [Рейтинги на филми и сериали](https://amodb.dev/bg/ratings/): API за рейтинги на филми връща оценки от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB за заглавие с едно извикване, с null за неизвестен източник.
- [Ендпойнт, съвместим с OMDb](https://amodb.dev/bg/omdb-endpoint/): OMDb API съвместим ендпойнт на api.amodb.dev/omdb/. Търсене по i или t, списък през s, масив Ratings. Сменете базовия URL и клиентът ви продължава да работи.
- [Алтернатива на OMDb API](https://amodb.dev/bg/omdb-api-alternative/): Стигнахте дневния лимит на OMDb или ви трябва повече от един запис на извикване? amodb отговаря в стил OMDb и дава ендпойнти на TMDB v3 със същия ключ.
- [Удостоверяване](https://amodb.dev/bg/authentication/): Как да изпратите ключа си за amodb: api_key в заявката, заглавка Authorization с Bearer или apikey за OMDb. Формат, съхранение, смяна на ключ и грешките 401.
- [Лимити на заявките](https://amodb.dev/bg/rate-limits/): amodb ограничава всеки ключ по заявки в минута в плъзгащ се прозорец от 60 секунди: 20, 40 или 120. Заглавки за лимита и обработка на 429 с Retry-After.

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