# API seriálů pro seriály, sezóny a epizody

> API seriálů vrací seriál na GET /3/tv/{series_id} se stavem, televizními sítěmi, seznamem sezón a next_episode_to_air. Endpointy sezón a epizod doplňují data vysílání, délky a záběry. JSON odpovídá TMDB v3, ve 14 jazycích, v předplacených tarifech s 20, 40 nebo 120 požadavky za minutu.

## API seriálů se stavem, sezónami a další epizodou

`GET /3/tv/{series_id}` vrací seriál s jeho `status`, `networks`, seznamem `seasons`, `last_episode_to_air` a `next_episode_to_air`. Endpointy sezón a epizod doplňují data vysílání, délky a záběry. amodb je nezávislé API mluvící protokolem TMDB v3, takže klient napsaný pro TMDB funguje po změně základní URL na `https://api.amodb.dev/3`.

Co dostanete:

- Záznamy seriálů s počtem sezón a epizod a daty prvního a posledního vysílání.
- Řetězec `status` a příznak `in_production`.
- Televizní sítě s ID, logy a zemí původu.
- Jedno volání na sezónu, které vrací všechny epizody dané sezóny.
- Seznamy seriálů, které se vysílají dnes nebo během příštích 7 dní.

## Jaká data dostanete

| Co potřebujete           | Volání                                                                  | Klíčová pole                                                                                  |
| ------------------------ | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| Záznam seriálu           | `GET /3/tv/{series_id}`                                                 | `name`, `original_name`, `status`, `in_production`, `number_of_seasons`, `number_of_episodes` |
| Další a poslední epizoda | stejné volání                                                           | `next_episode_to_air`, `last_episode_to_air`                                                  |
| Jedna sezóna             | `GET /3/tv/{series_id}/season/{season_number}`                          | `episodes`, `air_date`, `poster_path`                                                         |
| Jedna epizoda            | `GET /3/tv/{series_id}/season/{season_number}/episode/{episode_number}` | `name`, `overview`, `runtime`, `still_path`, `air_date`                                       |
| Televizní síť            | `GET /3/network/{network_id}`                                           | `name`, `headquarters`, `origin_country`                                                      |

Úplné seznamy polí jsou na stránkách [seriály](https://amodb.dev/cs/tv-series/) a [sezóny a epizody](https://amodb.dev/cs/tv-seasons-episodes/).

## Začněte ve 3 krocích

1. Otevřete [ceník](https://amodb.dev/cs/pricing/) a vyberte tarif s potřebnou rychlostí požadavků: 20, 40 nebo 120 za minutu.
2. Vytvořte klíč API v panelu účtu.
3. Pošlete `GET /3/tv/{series_id}` s `Authorization: Bearer YOUR_API_KEY` nebo přidejte `api_key` jako parametr dotazu.

## Příklad požadavku

Skript přečte Breaking Bad (ID seriálu 1396), vypíše jeho stav a další epizodu a pak vypíše sezónu 1. Uložte jej jako `check.mjs` a spusťte v Node 18 nebo novějším.

```bash
curl -s "https://api.amodb.dev/3/tv/1396?language=en-US&append_to_response=ratings" \
  -H "Authorization: Bearer $AMODB_KEY"

curl -s "https://api.amodb.dev/3/tv/1396/season/1?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };

async function get(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`amodb returned ${res.status} for ${path}`);
  return res.json();
}

const show = await get('/tv/1396?language=en-US');
const next = show.next_episode_to_air;
console.log(`${show.name}: ${show.status}, ${show.number_of_seasons} seasons`);
console.log(next
  ? `Next: S${next.season_number}E${next.episode_number} on ${next.air_date}`
  : 'No upcoming episode is scheduled');

const season = await get('/tv/1396/season/1?language=en-US');
for (const ep of season.episodes) {
  console.log(`E${ep.episode_number} ${ep.air_date} ${ep.name}`);
}
```

Zkrácená odpověď seriálu pro `language=en-US`. Zůstala jen část polí a `seasons` ukazuje první 2 ze 6 položek. Některé názvy v těchto datech `language` nedodržují: název sezóny 0 je čínsky a `name` uvnitř `last_episode_to_air` je hebrejsky.

```json
{
  "first_air_date": "2008-01-20",
  "id": 1396,
  "in_production": false,
  "last_air_date": "2013-09-29",
  "last_episode_to_air": {
    "air_date": "2013-09-29",
    "episode_number": 16,
    "episode_type": "standard",
    "id": 62161,
    "name": "פלינה",
    "overview": "הסדרה זוכת הפרסים מגיעה לסיום דרמתי בפרק החותם אותה.",
    "production_code": "",
    "runtime": 56,
    "season_number": 5,
    "show_id": 1396,
    "still_path": "/pA0YwyhvdDXP3BEGL2grrIhq8aM.jpg",
    "vote_average": 0,
    "vote_count": 0
  },
  "name": "Breaking Bad",
  "next_episode_to_air": null,
  "number_of_episodes": 62,
  "number_of_seasons": 5,
  "original_name": "Breaking Bad",
  "seasons": [
    {
      "air_date": "2009-02-17",
      "episode_count": 9,
      "id": 3577,
      "name": "特别篇",
      "overview": "",
      "poster_path": "/ikBSCmgG5Z4jequUUAjKpf1QG3T.jpg",
      "season_number": 0,
      "vote_average": 0
    },
    {
      "air_date": "2008-01-20",
      "episode_count": 7,
      "id": 3572,
      "name": "Season 1",
      "overview": "High school chemistry teacher Walter White's life is suddenly transformed by a dire medical diagn...",
      "poster_path": "/91EIXdWxmp2mHNRsSuDW3WyDJLj.jpg",
      "season_number": 1,
      "vote_average": 0
    }
  ],
  "status": "Ended"
}
```

## Čtení stavu a další epizody

Řetězec `status` říká, jak seriál označit. `next_episode_to_air` je objekt jen tehdy, když je epizoda naplánovaná, takže je null mezi sezónami i po skončení. Než zobrazíte „skončil“, otestujte `status`.

| `status`         | Význam                           | Co zobrazit                                                   |
| ---------------- | -------------------------------- | ------------------------------------------------------------- |
| Returning Series | Očekávají se další epizody       | Datum další epizody, pokud objekt existuje, jinak „pokračuje“ |
| In Production    | Vzniká, ještě se nevysílá        | „Ve výrobě“                                                   |
| Planned          | Jen oznámeno                     | „Plánováno“                                                   |
| Pilot            | Existuje jen pilot               | „Pilot“                                                       |
| Ended            | Vysílání skončilo                | „Skončil“ a `last_air_date`                                   |
| Canceled         | Zastaveno před plánovaným koncem | „Zrušen“                                                      |

Pole uvnitř `next_episode_to_air` a `last_episode_to_air`: `air_date`, `season_number`, `episode_number`, `episode_type`, `id`, `show_id`, `name`, `overview`, `runtime` a `still_path`. Řetězec `status` může být u několika titulů také prázdný, mějte proto připravený neutrální popisek.

Detaily se na edge cachují 6 hodin, takže dotaz na stejný seriál více než čtyřikrát denně vrátí stejné tělo. Sledované seriály kontrolujte jednou nebo dvakrát denně a obnovujte ten, který uživatel otevře.

## Sezóny, epizody a co se právě vysílá

Sezóna 0, pokud ji seriál má, obsahuje speciály. Běžné sezóny začínají od 1.

| Volání                                         | Vrací                                          | Parametry                                         |
| ---------------------------------------------- | ---------------------------------------------- | ------------------------------------------------- |
| `GET /3/tv/{series_id}/season/{season_number}` | Záznam sezóny s polem `episodes`               | `language`, `append_to_response`                  |
| `GET /3/tv/airing_today`                       | Seriály s epizodou vysílanou dnes              | `page`, `language`                                |
| `GET /3/tv/on_the_air`                         | Seriály vysílané v nadcházejícím týdnu         | `page`, `language`                                |
| `GET /3/discover/tv`                           | Seriály filtrované podle sítě, stavu a dalších | `with_networks`, `with_status`, `sort_by`, `page` |

Seznamy a výsledky discover se cachují 30 minut, takže jeden požadavek za půl hodiny stačí pro odznak „brzy ve vysílání“. Vrácená ID porovnejte se seriály, které vaši uživatelé sledují. Detaily sezón a epizod pokrývá stránka [průvodce epizodami](https://amodb.dev/cs/episode-guide-api/).

## Seznam sledovaných seriálů s odpočty

Obrazovka „seriály, které sleduji“ potřebuje jedno uložené ID na seriál a malou denní úlohu.

1. Uložte `id` seriálu, když ho uživatel začne sledovat.
2. Jednou denně zavolejte `/3/tv/{series_id}` pro každé sledované ID a uložte `status`, `next_episode_to_air` a `last_air_date`.
3. Když je `next_episode_to_air` objekt, zobrazte `air_date` jako datum. Nenese denní dobu ani časové pásmo, neodpočítávejte proto na minuty.
4. Když je null a `status` je Returning Series, zobrazte „nová sezóna není naplánována“.
5. Volání sezóny načtěte jen tehdy, když uživatel seriál otevře, protože je to největší odpověď.

404 se `status_code` 34 znamená neznámé ID a 429 znamená překročení počtu požadavků za minutu: počkejte `Retry-After` sekund. Při 200 sledovaných seriálech je jeden denní průchod 200 požadavků, asi deset minut při 20 požadavcích za minutu. Viz [limity požadavků](https://amodb.dev/cs/rate-limits/) a [chyby](https://amodb.dev/cs/errors/).

## Jak si stojí v porovnání

| Schopnost                | Scrapování stránek vlastními silami | Metadata API s bezplatným tarifem    | amodb                                                  |
| ------------------------ | ----------------------------------- | ------------------------------------ | ------------------------------------------------------ |
| Struktura sezón a epizod | Skládaná z rozvržení stránek        | Různé, ověřte v dokumentaci          | Volání sezóny s polem `episodes`                       |
| Datum další epizody      | Parsované ze stránky s rozvrhem     | Různé, ověřte v dokumentaci          | `next_episode_to_air`, null, když nic není naplánováno |
| Stav seriálu             | Volný text na stránce               | Různé, ověřte v dokumentaci          | Řetězec `status` a příznak `in_production`             |
| Vysílání tento týden     | Scrapovat rozvrh                    | Různé, ověřte v dokumentaci          | `/3/tv/on_the_air` a `/3/tv/airing_today`              |
| Jazyky                   | Co stránka nabízí                   | Různé                                | 14, vybírané přes `language`                           |
| Podmínky přístupu        | Platí podmínky webu                 | Bezplatný tarif s podmínkami užívání | Placený, předplacený, bez bezplatného tarifu           |

## Ceník

Platíte jednou za 1, 3, 6, 12 nebo 24 měsíců. U delších období je sleva 10, 20, 30 nebo 40 procent a nic se neobnovuje automaticky. Každý tarif dostane všechna data seriálů, jediný rozdíl je 20, 40 nebo 120 požadavků za minutu. Viz [ceník](https://amodb.dev/cs/pricing/), vytvořte klíč a první volání seriálu stojí jeden požadavek.

## Otázky a odpovědi

### Jak poznám, zda se seriál ještě vysílá?

Přečtěte status na /3/tv/{id}. Returning Series znamená, že se očekávají další epizody, zatímco Ended a Canceled znamenají, že žádné nebudou. Pole next_episode_to_air obsahuje další naplánovanou epizodu a je null, když není nic naplánováno.

### Mohu načíst všechny epizody seriálu jedním požadavkem?

Jedna sezóna na volání. GET /3/tv/{id}/season/{n} vrací všechny epizody dané sezóny v poli episodes, takže seriál o pěti sezónách vyžaduje pět volání sezón plus jedno volání seriálu.

### Co dostanu u televizní sítě?

Pole networks u seriálu uvádí id, name, logo_path a origin_country. GET /3/network/{id} přidá detaily a with_networks v /3/discover/tv vypíše seriály jedné sítě.

### Mohu vypsat seriály, které se vysílají dnes?

Ano. /3/tv/airing_today vypíše seriály s epizodou vysílanou dnes a /3/tv/on_the_air pokrývá dalších 7 dní. Obojí je stránkované, přijímá language a leží v cache na edge 30 minut.

### Existuje bezplatný tarif pro API seriálů?

Bezplatný tarif ani zkušební verze neexistují. Platíte předem za 1, 3, 6, 12 nebo 24 měsíců a nic se neobnovuje samo. Každý tarif vrací všechna data a tarify se liší jen počtem požadavků za minutu.

## Související stránky

- [API detailu seriálu](https://amodb.dev/cs/tv-series/): API detailu seriálu se stejnými cestami a JSON jako TMDB v3. Seriál podle ID se sezónami, sítěmi, věkovým hodnocením a poskytovateli streamování.
- [API sezón a epizod seriálů](https://amodb.dev/cs/tv-seasons-episodes/): API sezón a epizod seriálů se stejnými cestami a JSON jako TMDB v3. Načtěte sezónu se všemi epizodami nebo jednu epizodu s datem vysílání, délkou a záběrem.
- [API průvodce epizodami](https://amodb.dev/cs/episode-guide-api/): API průvodce epizodami s endpointy sezón a epizod TMDB v3: názvy, data vysílání, délky, záběry a seznamy skupin epizod pro libovolný seriál ve 14 jazycích.
- [Společnosti a televizní sítě](https://amodb.dev/cs/companies-networks/): Produkční společnosti a televizní sítě přes cesty TMDB v3. Přečtěte název, zemi a logo podle ID a filtrujte discover podle ID společnosti nebo sítě.
- [Trendy a seznamy](https://amodb.dev/cs/trending-lists/): API trendů filmů s cestami TMDB v3: denní a týdenní žebříčky a seznamy now playing, popular, top rated a upcoming pro filmy a seriály, cachované 30 minut.
- [Rychlý start](https://amodb.dev/cs/quickstart/): První volání amodb: získejte klíč, vyžádejte detail filmu v curl, JavaScriptu, Pythonu, PHP nebo Go a načtěte plakát z img.amodb.dev. Za méně než 2 minuty.

Aktualizováno: 2026-10-18. Source: https://amodb.dev/cs/tv-show-api/
