# amodb vs TMDB

> amodb zachowuje ścieżki, parametry zapytania i JSON z TMDB v3 w większości endpointów odczytu, więc klient potrzebuje nowego bazowego URL i klucza. Zapisy odpowiadają 405, a changes, aggregate credits i wyszukiwanie recenzji nie są dostępne. Inne różnice to warunki, 14 języków, pięć rozszerzeń i limity na klucz.

## Krótkie porównanie

amodb to niezależne API mówiące tym samym protokołem co TMDB v3. Klient napisany dla TMDB czyta z amodb po zmianie bazowego URL i klucza, o ile nie wywołuje ścieżki z poniższej tabeli niedostępnych. Wybór zależy więc od warunków, dodatków i kilku luk. TMDB oferuje darmowe API dla kwalifikowanego użycia według własnych warunków. amodb to płatne API tylko do odczytu z 14 językami, pięcioma dodatkowymi blokami danych i limitem liczonym na klucz.

## Zgodność endpointów

Każdy wiersz pokazuje ścieżkę odczytu TMDB v3 i to, jak zachowuje się na `https://api.amodb.dev/3`.

| Obszar                         | Ścieżka TMDB v3                          | W amodb                                                                                                              |
| ------------------------------ | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Szczegóły filmu                | `/movie/{movie_id}`                      | To samo, z pięcioma dodatkowymi wartościami `append_to_response`                                                     |
| Szczegóły serialu              | `/tv/{series_id}`                        | To samo, ale bez pola `type`, a `created_by` jest puste dla większości seriali                                       |
| Sezony i odcinki               | `/tv/{series_id}/season/{season_number}` | Ten sam kształt. Obrazy, wideo i tłumaczenia sezonów są puste, a `external_ids` sezonów i odcinków mają wartość null |
| Osoby                          | `/person/{person_id}`                    | To samo, z `combined_credits`, `movie_credits`, `tv_credits`, `external_ids` i `images` (tylko profile)              |
| Obsada i ekipa                 | `/movie/{movie_id}/credits`              | To samo. W odcinkach `cast` jest puste                                                                               |
| Wyszukiwanie                   | `/search/multi`                          | To samo, w cache 10 minut                                                                                            |
| Discover                       | `/discover/movie`                        | To samo, w cache 30 minut                                                                                            |
| Trendy                         | `/trending/{media_type}/{time_window}`   | To samo, w cache 30 minut                                                                                            |
| Listy                          | `/movie/popular`                         | To samo, `page` od 1 do 500                                                                                          |
| Obrazy                         | `/movie/{movie_id}/images`               | Ten sam kształt, pliki ładują się z `img.amodb.dev`                                                                  |
| Wideo                          | `/movie/{movie_id}/videos`               | To samo                                                                                                              |
| Tłumaczenia                    | `/movie/{movie_id}/translations`         | To samo, obsługiwanych 14 języków                                                                                    |
| Słowa kluczowe                 | `/movie/{movie_id}/keywords`             | To samo                                                                                                              |
| Recenzje                       | `/movie/{movie_id}/reviews`              | Odpowiada 200, ale recenzje ma tylko kilka tytułów, więc pusta lista jest normalna                                   |
| Kolekcje                       | `/collection/{collection_id}`            | To samo, `parts` uporządkowane według daty premiery                                                                  |
| Firmy i sieci                  | `/company/{company_id}`                  | Te same klucze. `description` firmy jest puste, a `parent_company` ma wartość null                                   |
| Gatunki                        | `/genre/movie/list`                      | To samo                                                                                                              |
| Konfiguracja                   | `/configuration`                         | Te same klucze, host obrazów to `img.amodb.dev`                                                                      |
| Wyszukiwanie po zewnętrznym ID | `/find/{external_id}`                    | Ten sam endpoint plus `kinopoisk_id`. `tv_episode_results` i `tv_season_results` są zawsze puste                     |
| Grupy odcinków                 | `/tv/{series_id}/episode_groups`         | Wypisuje grupy serialu, bez ich zawartości                                                                           |

## Niedostępne w amodb

Te wywołania TMDB v3 nie mają odpowiednika. Nieznane ścieżki odpowiadają 404 z `status_code` 34, a metody zapisu odpowiadają 405 z `status_code` 37.

| Wywołanie TMDB v3                                                                                                     | Odpowiedź amodb       |
| --------------------------------------------------------------------------------------------------------------------- | --------------------- |
| `/movie/changes`, `/tv/changes`, `/person/changes` i `changes` pod jednym ID                                          | 404, `status_code` 34 |
| `aggregate_credits` pod serialem lub sezonem                                                                          | 404, `status_code` 34 |
| `/credit/{credit_id}` i `/review/{review_id}`                                                                         | 404, `status_code` 34 |
| `/tv/episode_group/{id}`                                                                                              | 404, `status_code` 34 |
| `/person/{person_id}/translations`, `tagged_images` i `/person/latest`                                                | 404, `status_code` 34 |
| `images`, `translations` i `alternative_names` dla kolekcji, firm i sieci                                             | 404, `status_code` 34 |
| `/configuration/timezones`                                                                                            | 404, `status_code` 34 |
| Wszystko pod `account`, `authentication`, `guest_session` i `list` oraz każda ścieżka `/rating` lub `/account_states` | 405, `status_code` 37 |

Jeśli dodasz `aggregate_credits` lub `changes` do `append_to_response`, amodb ignoruje nazwę bez błędu, więc klucza po prostu brakuje w treści.

## Porównanie funkcji

| Funkcja           | TMDB                                                           | amodb                                                        |
| ----------------- | -------------------------------------------------------------- | ------------------------------------------------------------ |
| Model cenowy      | Za darmo dla kwalifikowanego użycia, według warunków TMDB      | Przedpłata, od 1 do 24 miesięcy na zakup                     |
| Darmowy plan      | Tak, dla kwalifikowanego użycia                                | Brak, ani wersji próbnej                                     |
| Uwierzytelnianie  | Klucz v3 w `api_key` albo token v4 jako Bearer                 | `api_key` lub Bearer z 32-znakowym kluczem szesnastkowym     |
| Format odpowiedzi | JSON                                                           | JSON, te same pola na udostępnianych ścieżkach               |
| Języki            | Sprawdź ich dokumentację                                       | 14 obsługiwanych, inne tagi wracają do `en`                  |
| Filmy             | Tak                                                            | Tak                                                          |
| Seriale           | Tak                                                            | Tak                                                          |
| Osoby             | Tak                                                            | Tak                                                          |
| Obrazy            | Tak                                                            | `img.amodb.dev`, rozmiary od `w92` do `original`             |
| Oceny             | Ocena użytkowników TMDB, inne źródła: sprawdź ich dokumentację | Pięć źródeł w jednym obiekcie, gdy znane                     |
| Metody zapisu     | Metody konta, list i ocen                                      | Brak, odpowiadają 405                                        |
| Limit żądań       | Sprawdź ich dokumentację                                       | 20, 40 lub 120 na minutę na klucz                            |
| Użycie komercyjne | Sprawdź ich warunki użycia komercyjnego i atrybucji            | Płatne plany, zobacz [cennik](https://amodb.dev/pl/pricing/) |
| Zgodność          | Definiuje TMDB v3                                              | Większość ścieżek odczytu TMDB v3 i trasa OMDb               |

## Czym różnią się szczegółowo

- **Warunki.** TMDB prosi o zapoznanie się z jego warunkami użycia komercyjnego i atrybucji. amodb jest sprzedawane w okresach przedpłaconych, nie ma automatycznego odnawiania, darmowego planu ani wersji próbnej.
- **Języki.** amodb obsługuje en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it i es. Przyjmuje tagi TMDB, takie jak `ru-RU` i `pt-BR`. Niemiecki, japoński i koreański wracają do `en`, a `original_title` zachowuje tytuł źródłowy. Zakres języków TMDB sprawdź w ich dokumentacji. Zobacz [języki](https://amodb.dev/pl/languages/).
- **Rozszerzenia.** `append_to_response` przyjmuje też `moods`, `soundtracks`, `ratings`, `wikidata` i `showtimes`, a każde ma własną ścieżkę pod filmami i serialami.
- **Zewnętrzne ID.** `/3/find` rozwiązuje `imdb_id`, `tvdb_id`, `wikidata_id`, `kinopoisk_id`, `facebook_id`, `twitter_id` i `instagram_id`. Źródła `freebase_mid`, `freebase_id`, `tvrage_id`, `tiktok_id` i `youtube_id` są przyjmowane, ale zwracają puste tablice. Brakujące lub nieznane `external_source` odpowiada 400 z `status_code` 22.
- **Puste z założenia.** Obrazy, wideo i tłumaczenia sezonów oraz `description` firmy są zawsze puste. Recenzje i `created_by` w serialu są wypełnione tylko dla kilku tytułów. `external_ids` sezonów i odcinków mają wszystkie wartość null.
- **Tytuły dla dorosłych.** `include_adult` jest ignorowane. Tytuły i osoby dla dorosłych nigdy nie są udostępniane i odpowiadają 404.
- **Obrazy.** Ścieżka CDN to `https://img.amodb.dev/t/p/{size}/{file}`. Klucz nie jest potrzebny, a pliki są w cache przez 30 dni.
- **Limity.** Okno to przesuwane 60 sekund na klucz. Nagłówki pokazują pozostałą liczbę, a trafienia w cache też się liczą, bo sprawdzenie limitu działa pierwsze.
- **Niezależność.** Katalog pochodzi z publicznych i otwartych źródeł oraz z naszego własnego wzbogacania. Wspólny kształt nie gwarantuje identycznych wartości każdego pola każdego tytułu.

## Kiedy TMDB pasuje lepiej

- **Darmowe kwalifikowane użycie.** Nie trzeba płacić i amodb nie może tego dorównać.
- **Zapisy.** Ocenianie tytułu, budowanie list i sesje konta działają w TMDB. W amodb zwracają 405.
- **Kanały zmian.** TMDB wymienia ID, które się zmieniły. amodb nie ma takiego kanału, więc odświeżasz według własnego harmonogramu.
- **Aggregate credits i wyszukiwanie wpisów obsady.** Oba odpowiadają w amodb 404. Użyj `/credits` na tytule.
- **Szersze potrzeby językowe.** Jeśli interfejs potrzebuje języka spoza 14, najpierw sprawdź TMDB.
- **Istniejąca akceptacja.** Zespół, który przeszedł TMDB przez przegląd prawny, powinien rozważyć koszt drugiego przeglądu.

## Przejście na amodb

Zmiana to jedna linia na żądanie.

```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"
```

Przed przełączeniem porównaj kształt kilku odpowiedzi obok siebie. Ten skrypt wypisuje klucze najwyższego poziomu, które jedna strona zwraca, a druga nie.

```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');
}
```

Pola opcjonalne mogą różnić się dla danego tytułu, więc brakujący klucz traktuj jako trop do sprawdzenia, a nie wyrok. Potem przejdź tę listę:

1. Wybierz plan na stronie [cennik](https://amodb.dev/pl/pricing/), a potem utwórz klucz w panelu konta.
2. Przenieś bazowy URL i klucz do konfiguracji.
3. Odczytaj `images.secure_base_url` z `/3/configuration`.
4. Przeszukaj kod pod kątem wywołań zapisu i ścieżek z tabeli niedostępnych. Zapisy zostaw na TMDB, a resztę zastąp.
5. Dodaj obsługę 429, która czeka `Retry-After` sekund. Zobacz [limity żądań](https://amodb.dev/pl/rate-limits/) i [błędy](https://amodb.dev/pl/errors/).

## Cennik

amodb jest przedpłacone. Wybierz 1, 3, 6, 12 lub 24 miesiące, za które jest zniżka 0, 10, 20, 30 lub 40 procent, oraz jeden z trzech planów z 20, 40 lub 120 żądaniami na minutę. Każdy plan zwraca wszystkie dane i żaden nie odnawia się sam. Kwoty zobacz w [cennik](https://amodb.dev/pl/pricing/).

## Pytania i odpowiedzi

### Czy wszystkie endpointy odczytu TMDB v3 są dostępne w amodb?

Nie. Większość ścieżek odczytu zachowuje tę samą ścieżkę, parametry zapytania i kształt JSON, a tabela zgodności na tej stronie grupuje je według obszarów. Zapisy odpowiadają 405 z status_code 37. Kanały zmian, aggregate credits, wyszukiwanie wpisów obsady i recenzji, zawartość grup odcinków i tłumaczenia osób odpowiadają 404 z status_code 34.

### Co zmieni się w moim kodzie po przejściu z TMDB?

Trzy rzeczy: bazowy URL zmieni się na https://api.amodb.dev/3, klucz będzie twoim kluczem amodb, a adresy obrazów używają img.amodb.dev. Bazę obrazów odczytaj z endpointu konfiguracji. Ścieżki pozostają te same, poza wywołaniami wymienionymi jako niedostępne.

### Czy ID filmów i seriali pozostaną takie same?

ID podążają za numeracją TMDB. Fight Club to 550, a Breaking Bad to 1396 w obu. Wartości poszczególnych pól mogą mimo to różnić się dla niektórych tytułów, więc przed przełączeniem porównaj próbkę z własnego katalogu.

### Czy mogę używać obu usług razem?

Tak. Ponieważ protokół jest ten sam, możesz zostawić TMDB dla funkcji konta i list, kanałów zmian i aggregate credits, a amodb używać do odczytu katalogu. W konfiguracji trzymaj dwa bazowe URL i dwa klucze.

### Która usługa jest tańsza?

TMDB oferuje darmowe API dla kwalifikowanego użycia według własnych warunków, więc gdy je spełniasz, nic nie kosztuje. amodb jest płatne od pierwszego żądania, z przedpłaconymi okresami od 1 do 24 miesięcy i zniżką do 40 procent.

## Powiązane strony

- [Alternatywa dla API TMDB](https://amodb.dev/pl/tmdb-api-alternative/): Szukasz alternatywy dla API TMDB? Sprawdź warunki, limity, języki i oceny, potem przejdź na płatne API z większością ścieżek odczytu i JSON z TMDB v3.
- [API bazy filmów do twojego własnego katalogu](https://amodb.dev/pl/movie-database-api/): API bazy filmów do własnej lokalnej kopii: filmy, osoby, firmy, kolekcje i słowa kluczowe z powiązanymi ID, okna dat w discover i wyszukiwanie po ID.
- [Wyszukiwanie po zewnętrznym ID](https://amodb.dev/pl/find-by-external-id/): Znajdź film, serial lub osobę po ID z IMDb, TVDB, Wikidata lub Kinopoisk przez endpoint find z TMDB oraz odczytaj zewnętrzne ID i fakty z Wikidata o tytule.
- [Uwierzytelnianie](https://amodb.dev/pl/authentication/): Jak wysłać klucz amodb: api_key w zapytaniu, nagłówek Authorization Bearer albo apikey dla wywołań OMDb. Format klucza, przechowywanie, rotacja i błędy 401.
- [Limity żądań](https://amodb.dev/pl/rate-limits/): amodb limituje klucz liczbą żądań na minutę w przesuwanym oknie 60 sekund: 20, 40 lub 120 zależnie od planu. Czytaj nagłówki limitu i obsłuż 429 z Retry-After.
- [Cennik](https://amodb.dev/pl/pricing/): Plany amodb płatne z góry różnią się tylko limitem żądań na minutę: 20, 40 lub 120. Każdy plan ma wszystkie dane TMDB v3 i OMDb. Bez odnowień i okresu próbnego.

Zaktualizowano: 2026-10-18. Source: https://amodb.dev/pl/amodb-vs-tmdb/
