# Alternatywa dla API TheTVDB

> TheTVDB skupia się na serialach i oferuje kilka układów odcinków, takich jak emisyjny, DVD i absolutny. amodb obejmuje seriale, filmy i osoby jednym kluczem i mapuje ID TVDB na własne ID jednym wywołaniem. Wypisuje grupy odcinków serialu, ale nie ich zawartość, więc alternatywna numeracja zostaje w TheTVDB.

## Które pasuje do projektu o serialach

TheTVDB skupia się na serialach i trzyma kilka układów odcinków serialu, w tym emisyjny, DVD i absolutny, za modelem klucza API. Zanim zaplanujesz produkt komercyjny, sprawdź licencjonowanie w ich dokumentacji. Wybierz amodb, gdy chcesz seriale, filmy i osoby z jednego klucza, ścieżki TMDB v3 i 14 języków. Wybierz TheTVDB, gdy dokładna alternatywna numeracja jest sednem twojej aplikacji, bo amodb wypisuje grupy odcinków serialu, ale nie udostępnia tego, co jest w środku.

## Jak dane o serialach mapują się między oboma

Pojęcia się pokrywają, ale nazwy się różnią. Ta tabela obejmuje to, co aplikacja o serialach zwykle czyta.

| Potrzeba                  | Podejście TheTVDB                | Wywołanie amodb                                       |
| ------------------------- | -------------------------------- | ----------------------------------------------------- |
| Jeden serial              | Rekord serialu po ID z TVDB      | `GET /3/tv/1396`, po wyszukaniu `tvdb_id`             |
| Lista sezonów             | Sprawdź ich dokumentację         | Tablica `seasons` w szczegółach serialu               |
| Jeden sezon z odcinkami   | Sprawdź ich dokumentację         | `GET /3/tv/1396/season/1`                             |
| Jeden odcinek             | Sprawdź ich dokumentację         | `GET /3/tv/1396/season/1/episode/1`                   |
| Jakie układy istnieją     | Układy emisyjny, DVD i absolutny | `GET /3/tv/1396/episode_groups`                       |
| Odcinki w jednym układzie | Sprawdź ich dokumentację         | Niedostępne, `/3/tv/episode_group/{id}` odpowiada 404 |
| Następny odcinek w emisji | Sprawdź ich dokumentację         | `next_episode_to_air` w szczegółach serialu           |

Pola odcinków używają nazw z TMDB: `air_date`, `episode_number`, `season_number`, `runtime` i `still_path`. `external_ids` sezonów i odcinków mają wszystkie wartość null, więc ID z TVDB pojedynczego sezonu lub odcinka nie da się odczytać z amodb. Łącz zamiast tego po `season_number` i `episode_number`. Szczegóły są na stronie [sezony i odcinki](https://amodb.dev/pl/tv-seasons-episodes/).

## Co zwraca lista grup odcinków

Wywołanie listy pokazuje, jakie układy istnieją dla serialu. Nie zwraca odcinków w ich wnętrzu.

| Pole            | Znaczenie                                  |
| --------------- | ------------------------------------------ |
| `id`            | ID grupy, ciąg                             |
| `name`          | Nazwa układu, na przykład `DVD / PVOD`     |
| `description`   | Tekst ze źródła, często pusty              |
| `type`          | Liczba mówiąca, jakiego rodzaju jest układ |
| `episode_count` | Odcinki w układzie                         |
| `group_count`   | Bloki w układzie, na przykład sezony       |
| `network`       | Obiekt z siecią albo null                  |

To prawdziwa odpowiedź dla Breaking Bad.

```json
{
  "id": 1396,
  "results": [
    {
      "description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
      "episode_count": 62,
      "group_count": 6,
      "id": "69f50757054263b7bc87e32a",
      "name": "DVD / PVOD",
      "network": null,
      "type": 3
    }
  ]
}
```

Niektóre seriale zwracają jeden układ emisyjny, inne kilka, a niektóre zwracają pustą tablicę `results`. Sprawdź seriale, na których ci zależy. Ponieważ zawartość grupy nie jest udostępniana, aplikacja potrzebująca numeru każdego odcinka według DVD lub absolutnego nie dostanie go z amodb.

## Porównanie funkcji

| Funkcja           | TheTVDB                                                      | amodb                                                        |
| ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| Model cenowy      | Model klucza API, licencjonowanie sprawdź w ich dokumentacji | Okresy przedpłacone od 1 do 24 miesięcy                      |
| Darmowy plan      | Sprawdź ich dokumentację                                     | Brak, ani wersji próbnej                                     |
| Uwierzytelnianie  | Klucz API, przebieg sprawdź w ich dokumentacji               | `api_key` lub nagłówek Bearer                                |
| Format odpowiedzi | JSON, sprawdź ich dokumentację                               | JSON w kształcie TMDB v3                                     |
| Języki            | Sprawdź ich dokumentację                                     | 14 języków interfejsu                                        |
| Filmy             | Sprawdź ich dokumentację                                     | Tak                                                          |
| Seriale           | Tak, główny profil                                           | Tak, z sezonami i odcinkami                                  |
| Osoby             | Sprawdź ich dokumentację                                     | Tak                                                          |
| Obrazy            | Sprawdź ich dokumentację                                     | `img.amodb.dev`, klucz niepotrzebny                          |
| Oceny             | Sprawdź ich dokumentację                                     | IMDb i cztery inne źródła, gdy znane                         |
| Limit żądań       | Sprawdź ich dokumentację                                     | 20, 40 lub 120 na minutę na klucz                            |
| Użycie komercyjne | Licencjonowanie sprawdź w ich dokumentacji                   | Płatne plany, zobacz [cennik](https://amodb.dev/pl/pricing/) |
| Zgodność          | Własne API                                                   | Odczyty TMDB v3 i OMDb                                       |

## Czym amodb się różni

- **Jeden klucz do całego katalogu.** Serial, jego obsada, zwiastuny i film, który dzieli aktora, używają tego samego bazowego URL i tego samego limitu.
- **Oceny obok przewodnika po odcinkach.** `append_to_response=ratings` w szczegółach serialu dodaje IMDb i inne wyniki jednym wywołaniem.
- **Zwykłe nagłówki do regulowania tempa.** `X-RateLimit-Remaining` i `X-RateLimit-Reset` mówią zadaniu synchronizacji, ile żądań zostało w oknie 60 sekund.
- **Zachowane nazwy oryginalne.** Serial zachowuje `original_name`, a `name` podąża za twoim `language`, co pomaga, gdy pokazujesz tytuł oryginalny.

## Kiedy TheTVDB pasuje lepiej

- **Kolejność jest produktem.** Jeśli twoi użytkownicy spierają się o kolejność DVD, emisyjną i absolutną, TheTVDB traktuje to jako rdzeń swojego modelu. amodb nazywa układy serialu, ale nie zwraca ich odcinków, a to, jakie grupy istnieją, różni się w zależności od serialu.
- **Istniejące integracje.** Jeśli twój potok już zapisuje ID z TheTVDB i czyta jego układy, zachowaj tę część i dodaj amodb dla dodatkowych danych.
- **Profil serialowy.** Jeśli nigdy nie pokazujesz filmów ani osób, źródło zbudowane wokół seriali ma mniej do nauczenia.

## Przejście na amodb

Zmapuj zapisane ID z TVDB raz. Potem używaj ID amodb przy każdym wywołaniu. Endpoint find rozwiązuje tylko ID seriali. Jego tablice `tv_season_results` i `tv_episode_results` są zawsze puste, więc sezony i odcinki mapuj według numeru.

```js
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';

async function getJson(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return res.json();
}

const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);

const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
  console.log(g.name, g.type, g.episode_count);
}
```

Pierwsze żądanie zwraca Breaking Bad z ID 1396. Drugie wypisuje układy, które istnieją dla tego serialu, wraz z ich rozmiarami. Aby porównać numerację z tym, co zapisujesz teraz, odczytaj kolejność emisyjną z `/tv/{id}/season/{n}`, a alternatywną kolejność zostaw po stronie TheTVDB. Wykonaj to sprawdzenie na dziesięciu najczęściej oglądanych serialach, zanim przeniesiesz resztę.

Każde wywołanie liczy się jako jedno żądanie w oknie 60 sekund, a 429 niesie `Retry-After`. Zobacz [wyszukiwanie po zewnętrznym ID](https://amodb.dev/pl/find-by-external-id/) i [limity żądań](https://amodb.dev/pl/rate-limits/).

## Cennik

amodb jest przedpłacone, bez automatycznego odnawiania. Wybierz 1, 3, 6, 12 lub 24 miesiące i jeden z trzech planów z 20, 40 lub 120 żądaniami na minutę. Dłuższe okresy mają zniżkę 10, 20, 30 lub 40 procent, a każdy plan dostaje wszystkie dane. Nie ma darmowego planu. Kwoty są na stronie [cennik](https://amodb.dev/pl/pricing/).

## Pytania i odpowiedzi

### Czy mogę zamienić ID z TVDB na ID amodb?

Tak. Wywołaj /3/find/81189 z external_source=tvdb_id. Tablica tv_results zawiera pasujący serial, więc Breaking Bad wraca z ID 1396. Zapisz parę i od tej pory używaj ID numerycznego. Działa to też w drugą stronę: /3/tv/1396/external_ids zwraca tvdb_id.

### Czy amodb obsługuje kolejność odcinków według DVD i absolutną?

Tylko częściowo. GET /3/tv/{id}/episode_groups wypisuje grupy serialu z name, type, episode_count i group_count. Zawartość grupy nie jest udostępniana, a /3/tv/episode_group/{id} odpowiada 404. Widzisz, że układ DVD istnieje, ale nie odczytasz jego numeracji.

### Czy TheTVDB jest darmowe?

TheTVDB używa modelu klucza API, a warunki licencji ustala TheTVDB. Aktualną licencję i ewentualne opłaty sprawdź w ich dokumentacji. amodb to przedpłacone płatne API bez darmowego planu.

### Czy dostanę też dane o filmach?

Tak. Filmy, osoby, obrazy, wideo i tłumaczenia są pod tym samym kluczem i bazowym URL co seriale. Eliminuje to potrzebę drugiego dostawcy, jeśli twoja aplikacja pokazuje oba rodzaje.

### Jak sprawdzić, który odcinek będzie emitowany następny?

Szczegóły serialu zawierają next_episode_to_air i last_episode_to_air, każde z season_number, episode_number i air_date. Następny ma wartość null dla zakończonego serialu. Szczegóły są w cache na edge przez 6 godzin, więc odpytuj co najwyżej kilka razy dziennie.

## Powiązane strony

- [API sezonów i odcinków seriali](https://amodb.dev/pl/tv-seasons-episodes/): API sezonów i odcinków seriali z tymi samymi ścieżkami i JSON co TMDB v3. Odczytaj sezon ze wszystkimi odcinkami albo jeden odcinek z datą emisji i kadrem.
- [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.
- [API przewodnika po odcinkach](https://amodb.dev/pl/episode-guide-api/): API przewodnika po odcinkach z endpointami TMDB v3: nazwy, daty emisji, czas trwania, kadry i listy grup odcinków dowolnego serialu w 14 językach.
- [API szczegółów serialu](https://amodb.dev/pl/tv-series/): API szczegółów serialu z tymi samymi ścieżkami i JSON co TMDB v3. Serial po ID z sezonami, sieciami, klasyfikacją wiekową i dostawcami streamingu.
- [Szybki start](https://amodb.dev/pl/quickstart/): Pierwsze wywołanie amodb: zdobądź klucz, pobierz szczegóły filmu w curl, JavaScript, Python, PHP lub Go, potem załaduj plakat z img.amodb.dev. Poniżej 2 minut.
- [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.

Zaktualizowano: 2026-10-18. Source: https://amodb.dev/pl/thetvdb-api-alternative/
