# Alternatywa dla OMDb API

> OMDb to małe API z jednym rekordem, darmowym kluczem i dziennym limitem 1 000 (sprawdź na ich stronie). amodb pod /omdb/ odpowiada na i, t, s, type, y, plot i page z tymi samymi polami treści, limituje cię na minutę i na jednym kluczu dodaje endpointy TMDB v3. Tylko JSON, bez XML i bez odcinków.

## Wybierz według kształtu swoich wywołań

Wybierz OMDb, gdy chcesz jeden mały rekord na tytuł, a jego darmowy klucz pokrywa twój wolumen. Wybierz amodb, gdy z tego wyrośniesz albo gdy chcesz ten sam styl żądań OMDb obok obsady, obrazów i tłumaczeń na jednym kluczu. OMDb zwraca JSON lub XML, używa parametru `apikey` i oferuje darmowy klucz z dziennym limitem żądań 1 000 (sprawdź na ich stronie) oraz płatny poziom dla sympatyków. amodb jest tylko płatne i odpowiada na główne parametry OMDb, a także na TMDB v3.

## Co zostaje takie samo

Endpoint OMDb jest pod `https://api.amodb.dev/omdb/`, a końcowy ukośnik jest opcjonalny. Twój istniejący kod parsujący nie powinien wymagać zmian dla tych elementów.

| Element OMDb | W amodb                                                                                              |
| ------------ | ---------------------------------------------------------------------------------------------------- |
| `apikey`     | Ten sam parametr, wypełniony twoim kluczem amodb                                                     |
| `i` i `t`    | Wyszukiwanie po ID z IMDb lub po tytule                                                              |
| `s` i `page` | Wyszukiwanie z 10 wynikami na stronę i liczbą `totalResults`, `page` do 100                          |
| `type` i `y` | Filtr według `movie` lub `series` i według roku                                                      |
| `plot`       | `short` lub `full`                                                                                   |
| `r`          | Przyjmowane jest tylko `json`                                                                        |
| Pola treści  | Nazwane jak w OMDb, od `Title` do `Response`                                                         |
| `Ratings`    | Tablica par `Source` i `Value` dla Internet Movie Database, Rotten Tomatoes i Metacritic, gdy obecne |
| Błędy        | `{"Response":"False","Error":"..."}` ze sformułowaniem OMDb, w odpowiedzi HTTP 200                   |

## Co się nie przenosi

- **XML.** Żądanie z `r=xml` zwraca 400 z `{"Response":"False","Error":"Only r=json is supported."}`.
- **Sezony i odcinki.** `Season` i `Episode` są ignorowane, a `type=episode` nic nie znajduje. Żądanie z `i=tt0903747&Season=1` zwraca rekord serialu, a nie sezon. Do odcinków użyj `/3/tv/{id}/season/{n}`.
- **Inne parametry.** `callback` jest ignorowany.
- **Pola bez danych.** `DVD`, `Production` i `Website` mają zawsze wartość `"N/A"`. Rekordy seriali mają `totalSeasons` i pomijają `DVD`, `BoxOffice`, `Production` i `Website`.
- **Plakaty.** Pole `Poster` wskazuje na `https://img.amodb.dev/t/p/w300/...` zamiast innego hosta. Zamień `w300` na `w780`, by dostać większy obraz z tej samej ścieżki, a obrazy nie wymagają klucza.

Pełna lista parametrów i błędów jest na stronie [endpoint OMDb](https://amodb.dev/pl/omdb-endpoint/).

## Przykładowa odpowiedź

Żądanie z `t=Fight Club` zwraca płaski obiekt. Poniższa odpowiedź jest prawdziwa, skrócony jest tylko tekst `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"
}
```

Wartości są ciągami, jak w OMDb, więc `imdbRating`, `imdbVotes` i `Runtime` parsuj samodzielnie. Każde wywołanie liczy się jako jedno żądanie do limitu na minutę, niezależnie od liczby odczytywanych pól.

## Porównanie funkcji

| Funkcja           | OMDb                                                                    | amodb                                                                       |
| ----------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Model cenowy      | Darmowy klucz plus płatny poziom dla sympatyków, sprawdź na ich stronie | Okresy przedpłacone, od 1 do 24 miesięcy                                    |
| Darmowy plan      | Darmowy klucz z dziennym limitem 1 000, sprawdź na ich stronie          | Brak, ani wersji próbnej                                                    |
| Uwierzytelnianie  | Parametr `apikey`                                                       | `apikey` na `/omdb/`, `api_key` lub Bearer na `/3`                          |
| Format odpowiedzi | JSON lub XML                                                            | JSON                                                                        |
| Języki            | Sprawdź ich dokumentację                                                | 14 języków interfejsu na ścieżkach `/3`                                     |
| Filmy             | Tak                                                                     | Tak                                                                         |
| Seriale           | Seriale i odcinki, pola sprawdź w ich dokumentacji                      | Rekordy seriali na `/omdb/`, sezony i odcinki na ścieżkach `/3`             |
| Osoby             | Imiona i nazwiska jako tekst w każdym rekordzie                         | Profile, filmografia i obrazy na ścieżkach `/3`                             |
| Obrazy            | Link do plakatu w każdym rekordzie                                      | Link do plakatu plus listy obrazów, `img.amodb.dev`                         |
| Oceny             | Pola `Ratings`, `Metascore` i `imdbRating`                              | Te same pola plus obiekt `ratings` na ścieżkach `/3`                        |
| Limit żądań       | Dzienny limit na darmowym kluczu, sprawdź na ich stronie                | 20, 40 lub 120 na minutę na klucz                                           |
| Użycie komercyjne | Sprawdź na ich stronie                                                  | Sprzedawane jako płatne API, zobacz [cennik](https://amodb.dev/pl/pricing/) |
| Zgodność          | Definiuje protokół OMDb                                                 | Powyższe parametry OMDb i odczyty TMDB v3                                   |

## Czym amodb się różni

- **Limity na minutę.** Plany dopuszczają 20, 40 lub 120 żądań na minutę w przesuwanym oknie 60 sekund. Każda odpowiedź z kluczem ma `X-RateLimit-Remaining`, więc zadanie wsadowe może samo zwolnić, zanim zobaczy 429.
- **Droga w górę od pojedynczych rekordów.** Rekord OMDb ma listę obsady jako tekst. Na ścieżkach `/3` możesz poprosić o ten sam tytuł z obsadą, wideo i tłumaczeniami jednym wywołaniem, a `imdbID` znajduje rekord przez `/3/find`.
- **Większe obrazy.** Rekordy w stylu OMDb dają jeden link do plakatu. Host obrazów obsługuje dziesięć tokenów rozmiaru, od `w92` do `original`.
- **Więcej źródeł ocen.** Rozszerzenie `/3/movie/{id}/ratings` dodaje wartości z Kinopoisk, Metacritic, Rotten Tomatoes i TMDB tam, gdzie są znane.

## Kiedy OMDb pasuje lepiej

- **Małe lub darmowe projekty.** Darmowy klucz z dziennym limitem 1 000 wystarcza na prototyp lub stronę hobbystyczną, a amodb nie ma darmowego planu.
- **Konsumenci XML.** Jeśli starszy system parsuje XML, OMDb go oferuje, a amodb nie.
- **Wyszukiwanie sezonów i odcinków.** Trasa `/omdb/` w amodb nie ma trybu sezonów ani odcinków, więc klient zbudowany na niej potrzebuje zamiast tego ścieżek `/3`.
- **Prostota.** Jeden endpoint i garść parametrów łatwo się uczy. Jeśli tylko tego potrzebujesz, przejściem niewiele zyskasz.

## Przejście na amodb

Zmieniają się tylko bazowy URL i klucz. Resztę żądania zostaw, gdy przeszukasz kod pod kątem `r=xml`, `Season`, `Episode` i `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);
```

Dalej sprawdzaj pole `Response`, tak jak w OMDb. Gdy wartością jest ciąg `"False"`, komunikat niesie pole `Error`. Dla odcinków zmapuj `imdbID` raz przez `/3/find` i czytaj sezony ze strony `/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"
```

Dla strony w stylu TMDB zobacz [uwierzytelnianie](https://amodb.dev/pl/authentication/) i [szybki start](https://amodb.dev/pl/quickstart/).

## Cennik

amodb jest płatne i odnawia się tylko wtedy, gdy kupisz kolejny okres. Trzy plany różnią się wyłącznie tempem, 20, 40 lub 120 żądań na minutę, a każdy zwraca wszystkie dane. Okresy to 1, 3, 6, 12 lub 24 miesiące, a dłuższe mają zniżkę od 10 do 40 procent. Aktualne kwoty sprawdź na stronie [cennik](https://amodb.dev/pl/pricing/).

## Pytania i odpowiedzi

### Czy muszę przepisać mojego klienta OMDb?

Nie, jeśli używa i, t, s, type, y, plot i page. Zmień bazowy URL na https://api.amodb.dev/omdb/ i wstaw swój klucz amodb do parametru apikey. Treść zachowuje nazwy pól OMDb, takie jak imdbRating. Parametry Season i Episode oraz r=xml nie są obsługiwane.

### Czy endpoint OMDb w amodb zwraca XML?

Nie. Zwraca tylko JSON. Żądanie z r=xml dostaje odpowiedź 400 z błędem Only r=json is supported, więc usuń parametr r albo ustaw r=json przed przełączeniem.

### Czy mogę na endpoincie OMDb wyszukiwać sezony i odcinki?

Nie. Parametry Season i Episode są ignorowane, więc żądanie z i oraz Season=1 zwraca rekord serialu, a type=episode nic nie znajduje. Odcinki czytaj z /3/tv/{id}/season/{n} tym samym kluczem.

### Czym limit różni się od darmowego klucza OMDb?

OMDb podaje dla darmowego klucza dzienny limit 1 000, więc aktualne warunki sprawdź na ich stronie. amodb limituje żądania na minutę na klucz, według planu na 20, 40 lub 120.

### Skąd ładują się obrazy plakatów?

Pole Poster wskazuje na img.amodb.dev w rozmiarze w300. Aby dostać większy obraz, zamień w tym samym URL w300 na inny rozmiar, na przykład w780. Obrazy nie wymagają klucza.

### Czy mogę użyć tego samego klucza do wywołań w stylu TMDB?

Tak. Jeden klucz działa na /omdb/ i na ścieżkach /3. Dzięki temu możesz pobrać obsadę, zwiastuny lub tłumaczenia dla imdbID bez drugiej subskrypcji.

## Powiązane strony

- [Endpoint zgodny z OMDb](https://amodb.dev/pl/omdb-endpoint/): Endpoint zgodny z OMDb API pod api.amodb.dev/omdb/. Szukaj przez i lub t, wyszukuj przez s, czytaj tablicę Ratings i zachowaj klienta, zmieniając bazowy URL.
- [Alternatywa dla API IMDb](https://amodb.dev/pl/imdb-api-alternative/): IMDb nie ma darmowego uniwersalnego REST API. Wyszukuj tytuły po ID z IMDb, czytaj ocenę IMDb oraz pobieraj obsadę i zwiastuny z płatnego API JSON.
- [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.
- [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.
- [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/omdb-api-alternative/
