# amodb супраць TMDB

> amodb захоўвае шляхі TMDB v3, параметры запыту і JSON для большасці эндпоінтаў чытання, таму кліенту патрэбныя новы базавы 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/be/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/be/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/be/pricing/), потым стварыце ключ у асабістым кабінеце.
2. Перанясіце базавы URL і ключ у канфігурацыю.
3. Прачытайце `images.secure_base_url` з `/3/configuration`.
4. Пашукайце ў кодзе выклікі запісу і шляхі з табліцы «не прапануюцца». Пакіньце запіс у TMDB, а астатняе замяніце.
5. Дадайце апрацоўшчык 429, які чакае `Retry-After` секунд. Гл. [ліміты запытаў](https://amodb.dev/be/rate-limits/) і [памылкі](https://amodb.dev/be/errors/).

## Цэны

amodb працуе з аплатай наперад. Абярыце 1, 3, 6, 12 або 24 месяцы са зніжкай 0, 10, 20, 30 або 40 працэнтаў і адзін з трох планаў на 20, 40 або 120 запытаў у хвіліну. Кожны план вяртае ўсе даныя, і ніводзін не прадаўжаецца сам. Сумы гл. на старонцы [цэны](https://amodb.dev/be/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, а URL выяў выкарыстоўваюць 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/be/tmdb-api-alternative/): Шукаеце альтэрнатыву TMDB API? Параўнайце ўмовы, ліміты, мовы і рэйтынгі, потым перайдзіце на платнае API з шляхамі чытання TMDB v3 і JSON. Гл. прабелы.
- [API базы даных фільмаў для вашага каталога](https://amodb.dev/be/movie-database-api/): API базы даных фільмаў для ўласнай лакальнай копіі: фільмы, людзі, кампаніі, калекцыі і ключавыя словы са звязанымі id, вокны дат у discover і пошук па id.
- [Пошук па вонкавым ідэнтыфікатары](https://amodb.dev/be/find-by-external-id/): Шукайце фільм, серыял або персону па IMDb, TVDB, Wikidata ці Kinopoisk id праз эндпоінт find TMDB і чытайце вонкавыя id і факты Wikidata для назвы.
- [Аўтэнтыфікацыя](https://amodb.dev/be/authentication/): Як перадаваць ключ amodb: api_key у запыце, загаловак Authorization Bearer або apikey для выклікаў OMDb. Фармат ключа, захоўванне, замена і памылкі 401.
- [Ліміты запытаў](https://amodb.dev/be/rate-limits/): amodb абмяжоўвае ключ па запытах у хвіліну ў слізгальным акне 60 секунд: 20, 40 або 120 па плане. Чытайце загалоўкі лімітаў і апрацоўвайце 429 праз Retry-After.
- [Цэны](https://amodb.dev/be/pricing/): Планы amodb адрозніваюцца толькі лікам запытаў у хвіліну: 20, 40 або 120. Усе даныя TMDB v3 і OMDb у кожным плане. Аплата наперад, без аўтапрадаўжэння.

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