# amodb срещу TMDB

> amodb запазва пътищата, параметрите на заявката и JSON на TMDB v3 за повечето ендпойнти за четене, така че клиентът има нужда от нов базов URL и ключ. Записът отговаря с 405, а changes, aggregate credits и търсенията на ревюта не се предлагат. Другите разлики са условията, 14 езика, пет разширения и лимити на ключ.

## Кратко сравнение

amodb е независимо API, което работи със същия протокол като TMDB v3. Клиент, написан за TMDB, чете от amodb, след като смените базовия URL и ключа, стига да не вика път от таблицата „не се предлагат“ по-долу. Така изборът е въпрос на условия, допълнения и няколко пропуска. TMDB предлага безплатно API за допустимо ползване по собствените си условия. amodb е платено API само за четене с 14 езика, пет допълнителни блока с данни и лимит на ключ.

## Паритет на ендпойнтите

Всеки ред показва път за четене на TMDB v3 и как се държи на `https://api.amodb.dev/3`.

| Област               | Път на TMDB v3                           | В amodb                                                                                                         |
| -------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Детайли на филм      | `/movie/{movie_id}`                      | Същото, с пет допълнителни стойности за `append_to_response`                                                    |
| Детайли на сериал    | `/tv/{series_id}`                        | Същото, но без поле `type`, а `created_by` е празно за повечето сериали                                         |
| Сезони и епизоди     | `/tv/{series_id}/season/{season_number}` | Същата форма. Изображенията, видеата и преводите на сезон са празни, а `external_ids` на сезон и епизод са null |
| Личности             | `/person/{person_id}`                    | Същото, с `combined_credits`, `movie_credits`, `tv_credits`, `external_ids` и `images` (само профили)           |
| Участници            | `/movie/{movie_id}/credits`              | Същото. При епизоди `cast` е празен                                                                             |
| Търсене              | `/search/multi`                          | Същото, кеш 10 минути                                                                                           |
| Откриване по филтри  | `/discover/movie`                        | Същото, кеш 30 минути                                                                                           |
| Тенденции            | `/trending/{media_type}/{time_window}`   | Същото, кеш 30 минути                                                                                           |
| Списъци              | `/movie/popular`                         | Същото, `page` от 1 до 500                                                                                      |
| Изображения          | `/movie/{movie_id}/images`               | Същата форма, файловете се зареждат от `img.amodb.dev`                                                          |
| Видеа                | `/movie/{movie_id}/videos`               | Същото                                                                                                          |
| Преводи              | `/movie/{movie_id}/translations`         | Същото, обслужват се 14 езика                                                                                   |
| Ключови думи         | `/movie/{movie_id}/keywords`             | Същото                                                                                                          |
| Ревюта               | `/movie/{movie_id}/reviews`              | Отговаря със 200, но само няколко заглавия имат ревюта, така че празен списък е нормален                        |
| Колекции             | `/collection/{collection_id}`            | Същото, `parts` подредени по дата на излизане                                                                   |
| Компании и мрежи     | `/company/{company_id}`                  | Същите ключове. `description` на компания е празно, а `parent_company` е null                                   |
| Жанрове              | `/genre/movie/list`                      | Същото                                                                                                          |
| Конфигурация         | `/configuration`                         | Същите ключове, хостът за изображения е `img.amodb.dev`                                                         |
| Търсене по външен id | `/find/{external_id}`                    | Същият ендпойнт, плюс `kinopoisk_id`. `tv_episode_results` и `tv_season_results` винаги са празни               |
| Групи епизоди        | `/tv/{series_id}/episode_groups`         | Изброява групите на сериал, без съдържанието им                                                                 |

## Не се предлагат в amodb

Тези извиквания на TMDB v3 нямат еквивалент. Непознатите пътища отговарят с 404 и `status_code` 34, а методите за запис отговарят с 405 и `status_code` 37.

| Извикване на TMDB v3                                                                                          | Отговор на amodb      |
| ------------------------------------------------------------------------------------------------------------- | --------------------- |
| `/movie/changes`, `/tv/changes`, `/person/changes` и `changes` под едно id                                    | 404, `status_code` 34 |
| `aggregate_credits` под сериал или сезон                                                                      | 404, `status_code` 34 |
| `/credit/{credit_id}` и `/review/{review_id}`                                                                 | 404, `status_code` 34 |
| `/tv/episode_group/{id}`                                                                                      | 404, `status_code` 34 |
| `/person/{person_id}/translations`, `tagged_images` и `/person/latest`                                        | 404, `status_code` 34 |
| `images`, `translations` и `alternative_names` за колекции, компании и мрежи                                  | 404, `status_code` 34 |
| `/configuration/timezones`                                                                                    | 404, `status_code` 34 |
| Всичко под `account`, `authentication`, `guest_session` и `list`, и всеки път `/rating` или `/account_states` | 405, `status_code` 37 |

Ако добавите `aggregate_credits` или `changes` към `append_to_response`, amodb игнорира името без грешка, така че ключът просто липсва в тялото.

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

| Функция            | TMDB                                                                   | amodb                                                        |
| ------------------ | ---------------------------------------------------------------------- | ------------------------------------------------------------ |
| Модел на цените    | Безплатно за допустимо ползване, по условията на TMDB                  | Предплатен, от 1 до 24 месеца на покупка                     |
| Безплатен план     | Да, за допустимо ползване                                              | Няма, и няма пробен период                                   |
| Удостоверяване     | Ключ v3 в `api_key` или токен v4 като Bearer                           | `api_key` или Bearer с шестнайсетичен ключ от 32 символа     |
| Формат на отговора | JSON                                                                   | JSON, същите полета на обслужваните пътища                   |
| Езици              | Вижте документацията им                                                | Обслужват се 14, другите тагове се заменят с `en`            |
| Филми              | Да                                                                     | Да                                                           |
| Сериали            | Да                                                                     | Да                                                           |
| Личности           | Да                                                                     | Да                                                           |
| Изображения        | Да                                                                     | `img.amodb.dev`, размери от `w92` до `original`              |
| Рейтинги           | Потребителска оценка на TMDB, други източници: вижте документацията им | Пет източника в един обект, където са известни               |
| Методи за запис    | Методи за акаунт, списъци и оценки                                     | Няма, отговарят с 405                                        |
| Лимит на заявките  | Вижте документацията им                                                | 20, 40 или 120 в минута на ключ                              |
| Търговска употреба | Вижте условията им за търговска употреба и посочване на авторство      | Платени планове, вижте [цени](https://amodb.dev/bg/pricing/) |
| Съвместимост       | Определя TMDB v3                                                       | Повечето пътища за четене на TMDB v3 и маршрут за OMDb       |

## Разликите в детайли

- **Условия.** TMDB иска да прочетете условията му за търговска употреба и посочване на авторство. amodb се продава по предплатени периоди, без автоматично подновяване, без безплатен план и без пробен период.
- **Езици.** amodb обслужва en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it и es. Приема тагове на TMDB като `ru-RU` и `pt-BR`. Немски, японски и корейски се заменят с `en`, а `original_title` пази оригиналното заглавие. За покритието на езиците в TMDB вижте документацията им. Вижте [езици](https://amodb.dev/bg/languages/).
- **Разширения.** `append_to_response` приема още `moods`, `soundtracks`, `ratings`, `wikidata` и `showtimes`, като всяко има собствен път под филмите и сериалите.
- **Външни id.** `/3/find` разрешава `imdb_id`, `tvdb_id`, `wikidata_id`, `kinopoisk_id`, `facebook_id`, `twitter_id` и `instagram_id`. Източниците `freebase_mid`, `freebase_id`, `tvrage_id`, `tiktok_id` и `youtube_id` се приемат, но връщат празни масиви. Липсващ или непознат `external_source` отговаря с 400 и `status_code` 22.
- **Празни по замисъл.** Изображенията, видеата и преводите на сезони и `description` на компания винаги са празни. Ревютата и `created_by` на сериал са попълнени само за няколко заглавия. `external_ids` на сезон и епизод са все null.
- **Заглавия за възрастни.** `include_adult` се игнорира. Заглавия и личности за възрастни никога не се обслужват и отговарят с 404.
- **Изображения.** Пътят на CDN е `https://img.amodb.dev/t/p/{size}/{file}`. Не е нужен ключ, а файловете се кешират за 30 дни.
- **Лимити.** Прозорецът е плъзгащ се, 60 секунди на ключ. Заглавките показват оставащия брой, а попаденията в кеша все пак се броят, защото проверката на лимита се изпълнява първа.
- **Независимост.** Каталогът идва от публични и отворени източници и от собствено обогатяване. Споделената форма не гарантира еднакви стойности за всяко поле на всяко заглавие.

## Къде TMDB пасва по-добре

- **Безплатно допустимо ползване.** Не е нужно плащане и amodb не може да се мери с това.
- **Запис.** Оценяването на заглавие, съставянето на списък и сесиите на акаунт работят в TMDB. В amodb връщат 405.
- **Потоци с промени.** TMDB изброява id, които са се променили. amodb няма такъв поток, затова обновявате по собствен график.
- **Aggregate credits и търсене на credit.** И двете отговарят с 404 в amodb. Ползвайте `/credits` на заглавието.
- **По-широки езикови нужди.** Ако интерфейсът ви изисква език извън 14-те, проверете първо TMDB.
- **Съществуващо одобрение.** Екип, който е минал TMDB през юридическа проверка, трябва да прецени цената на втора проверка.

## Миграция към amodb

Промяната е един ред на заявка.

```bash
# before: TMDB_BASE is your current TMDB v3 base URL
curl -s "$TMDB_BASE/movie/550?api_key=$TMDB_KEY"

# after
curl -s "https://api.amodb.dev/3/movie/550?api_key=$AMODB_KEY"
```

Преди прехода сравнете формата на няколко отговора един до друг. Този скрипт отпечатва ключовете на най-горно ниво, които едната страна връща, а другата не.

```js
async function topLevelKeys(base, key, path) {
  const res = await fetch(`${base}${path}?api_key=${key}`);
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return Object.keys(await res.json()).sort();
}

for (const path of ['/movie/550', '/tv/1396', '/person/31']) {
  const current = await topLevelKeys(process.env.TMDB_BASE, process.env.TMDB_KEY, path);
  const next = await topLevelKeys('https://api.amodb.dev/3', process.env.AMODB_KEY, path);
  const missing = current.filter((k) => !next.includes(k));
  console.log(path, missing.length ? `missing: ${missing.join(', ')}` : 'same keys');
}
```

Незадължителните полета могат да се различават за конкретно заглавие, затова четете липсващ ключ като следа за проверка, а не като присъда. После минете през този списък:

1. Изберете план на страницата с [цените](https://amodb.dev/bg/pricing/), после създайте ключ в личния си профил.
2. Преместете базовия URL и ключа в конфигурацията.
3. Прочетете `images.secure_base_url` от `/3/configuration`.
4. Потърсете в кода си извиквания за запис и пътищата от таблицата „не се предлагат“. Оставете записа в TMDB, а останалото заменете.
5. Добавете обработка на 429, която изчаква `Retry-After` секунди. Вижте [лимити на заявките](https://amodb.dev/bg/rate-limits/) и [грешки](https://amodb.dev/bg/errors/).

## Цени

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

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

### Всички ли ендпойнти за четене на TMDB v3 са налични в amodb?

Не. Повечето пътища за четене запазват същия път, параметри на заявката и форма на JSON, а таблицата за паритет на тази страница ги групира по области. Записът отговаря с 405 и status_code 37. Потоците changes, aggregate credits, търсенията на credit и review, съдържанието на групите епизоди и преводите на личности отговарят с 404 и status_code 34.

### Какво се променя в кода ми, когато мина от TMDB?

Три неща: базовият URL става https://api.amodb.dev/3, ключът става вашият ключ за amodb, а адресите на изображенията ползват img.amodb.dev. Четете базата на изображенията от ендпойнта за конфигурация. Пътищата остават същите, освен извикванията, изброени като непредлагани.

### Ще останат ли id на филми и сериали същите?

Id следват номерацията на TMDB. Fight Club е 550, а Breaking Bad е 1396 и в двете. Стойностите на отделни полета все пак могат да се различават при някои заглавия, затова сравнете извадка от вашия каталог преди прехода.

### Мога ли да ползвам двете услуги заедно?

Да. Тъй като протоколът е един и същ, можете да запазите TMDB за функциите за акаунт и списъци, потоците changes и aggregate credits, а amodb да ползвате за четене на каталога. Дръжте в конфигурацията два базови URL адреса и два ключа.

### Коя услуга е по-евтина?

TMDB предлага безплатно API за допустимо ползване по собствените си условия, така че не струва нищо, когато отговаряте на условията. amodb е платен от първата заявка, с предплатени периоди от 1 до 24 месеца и отстъпка до 40 процента.

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

- [Алтернатива на TMDB API](https://amodb.dev/bg/tmdb-api-alternative/): Търсите алтернатива на TMDB API? Сравнете условия, лимити, езици и рейтинги, после минете към платено API с пътищата за четене на TMDB v3 и JSON.
- [API за база данни за филми за вашия каталог](https://amodb.dev/bg/movie-database-api/): API за база данни за филми за локално копие: филми, личности, компании, колекции и ключови думи със свързани id, прозорци в discover и търсене по id.
- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [Удостоверяване](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.
- [Цени](https://amodb.dev/bg/pricing/): Планове на amodb, различни само по заявките в минута: 20, 40 или 120. Всеки включва всички данни, съвместими с TMDB v3 и OMDb. Предплатено, без подновяване.

Обновено: 2026-10-18. Source: https://amodb.dev/bg/amodb-vs-tmdb/
