# API detailu filmu

> Endpoint detailu filmu vrací jeden film podle ID na GET /3/movie/{movie_id}. JSON odpovídá TMDB v3, takže stávající klienti potřebují jen novou základní URL. Přidejte append_to_response a v jednom požadavku získáte obsazení, videa, obrázky a doplňky amodb: hodnocení, nálady, soundtracky, wikidata a promítací časy.

## Endpoint

`GET /3/movie/{movie_id}`

```bash
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

Odpověď:

```json
{
  "adult": false,
  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg",
  "belongs_to_collection": null,
  "budget": 63000000,
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 53,
      "name": "Thriller"
    }
  ],
  "homepage": "https://www.20thcenturystudios.com/movies/fight-club",
  "id": 550,
  "imdb_id": "tt0137523",
  "origin_country": [
    "US",
    "DE"
  ],
  "original_language": "en",
  "original_title": "Fight Club",
  "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy. Their concept catches on, with underground \"fight clubs\" forming in every town, until an eccentric gets in the wa...",
  "popularity": 39.0054,
  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",
  "production_companies": [
    {
      "id": 25,
      "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
      "name": "20th Century Fox",
      "origin_country": "US"
    },
    {
      "id": 508,
      "logo_path": "/4sGWXoboEkWPphI6es6rTmqkCBh.png",
      "name": "Regency Enterprises",
      "origin_country": "US"
    },
    {
      "id": 711,
      "logo_path": "/tEiIH5QesdheJmDAqQwvtN60727.png",
      "name": "Fox 2000 Pictures",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    },
    {
      "iso_3166_1": "DE",
      "name": "Germany"
    }
  ],
  "release_date": "1999-10-15",
  "revenue": 101209702,
  "runtime": 139,
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    }
  ],
  "status": "Released",
  "tagline": "Mischief. Mayhem. Soap.",
  "title": "Fight Club",
  "video": false,
  "vote_average": 8.437,
  "vote_count": 33042
}
```

## Získání detailů filmu

`GET /3/movie/{movie_id}` vrací základní záznam jednoho filmu: názvy, popis, délku, žánry, datum vydání, rozpočet, tržby, produkční společnosti a cesty k obrázkům. ID je stejné číselné ID, které používá TMDB, takže film, který už ukládáte jako `550`, si ho zde ponechá.

Příklad níže si vyžádá film v angličtině a ve stejném volání přidá jeho hodnocení.

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

```js
const url = 'https://api.amodb.dev/3/movie/550?language=en-US&append_to_response=ratings';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.runtime, movie.ratings.imdb?.value);
```

```python
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US", "append_to_response": "ratings"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
movie = r.json()
imdb = movie["ratings"]["imdb"]
print(movie["title"], movie["runtime"], imdb and imdb["value"])
```

```php
<?php
$url = 'https://api.amodb.dev/3/movie/550?language=en-US&append_to_response=ratings';
$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
    throw new RuntimeException("amodb returned $status");
}
$movie = json_decode($body, true);
echo $movie['title'], ' ', $movie['runtime'], ' ', $movie['ratings']['imdb']['value'] ?? 'n/a', PHP_EOL;
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)

type Movie struct {
	Title   string `json:"title"`
	Runtime int    `json:"runtime"`
}

func main() {
	url := "https://api.amodb.dev/3/movie/550?language=en-US"
	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	if res.StatusCode != http.StatusOK {
		panic(res.Status)
	}
	var m Movie
	json.NewDecoder(res.Body).Decode(&m)
	fmt.Println(m.Title, m.Runtime)
}
```

### Parametry

| Parametr             | Kde   | Povinný       | Popis                                                                                                  |
| -------------------- | ----- | ------------- | ------------------------------------------------------------------------------------------------------ |
| `movie_id`           | path  | ano           | Číselné ID filmu, například `550`.                                                                     |
| `api_key`            | query | jeden ze dvou | Váš klíč. Použijte jej, nebo hlavičku `Authorization: Bearer`.                                         |
| `language`           | query | ne            | Tag TMDB, například `en-US`, `ru-RU` nebo `pt-BR`. Podporuje se 14 základních jazyků. Výchozí `en-US`. |
| `append_to_response` | query | ne            | Seznam až 20 dílčích zdrojů oddělených čárkami, které se sloučí do odpovědi.                           |

### Pole odpovědi

| Pole                           | Typ              | Poznámky                                                                                        |
| ------------------------------ | ---------------- | ----------------------------------------------------------------------------------------------- |
| `id`                           | integer          | ID filmu.                                                                                       |
| `imdb_id`                      | string nebo null | ID z IMDb, například `tt0137523`.                                                               |
| `title`, `original_title`      | string           | Lokalizovaný a původní název.                                                                   |
| `original_language`            | string           | Kód jazyka, například `en`.                                                                     |
| `overview`, `tagline`          | string           | Lokalizovaný text, prázdný, když překlad neexistuje.                                            |
| `homepage`                     | string           | Oficiální web, prázdný, když není znám.                                                         |
| `release_date`                 | string           | `YYYY-MM-DD`, prázdné, když není známo.                                                         |
| `status`                       | string           | Stav vydání, například `Released` nebo `In Production`.                                         |
| `runtime`                      | integer          | Minuty.                                                                                         |
| `budget`, `revenue`            | integer          | Americké dolary, `0`, když není známo.                                                          |
| `genres`                       | array            | Objekty s `id` a `name`.                                                                        |
| `belongs_to_collection`        | object nebo null | `id`, `name`, `poster_path`, `backdrop_path`. Viz [kolekce](https://amodb.dev/cs/collections/). |
| `production_companies`         | array            | `id`, `logo_path`, `name`, `origin_country`.                                                    |
| `production_countries`         | array            | `iso_3166_1`, `name`.                                                                           |
| `spoken_languages`             | array            | `english_name`, `iso_639_1`, `name`.                                                            |
| `origin_country`               | array            | Kódy zemí, například `US`.                                                                      |
| `poster_path`, `backdrop_path` | string nebo null | Připojte k `https://img.amodb.dev/t/p/{size}`. Viz [obrázky](https://amodb.dev/cs/images-api/). |
| `popularity`                   | number           | Relativní skóre používané seznamem populárních.                                                 |
| `vote_average`, `vote_count`   | number, integer  | Souhrnné skóre uživatelů.                                                                       |
| `adult`, `video`               | boolean          | Obojí je `false`. Tituly pro dospělé se nikdy neposkytují.                                      |

### Příklad odpovědi

`GET /3/movie/550?language=en-US&append_to_response=ratings`, s dlouhými poli a texty zkrácenými:

```json
{
  "adult": false,
  "backdrop_path": "/b9HyPoxwxjxkWEUL5ErZdhApQe2.jpg",
  "belongs_to_collection": null,
  "budget": 63000000,
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 53,
      "name": "Thriller"
    }
  ],
  "homepage": "https://www.20thcenturystudios.com/movies/fight-club",
  "id": 550,
  "imdb_id": "tt0137523",
  "origin_country": [
    "US",
    "DE"
  ],
  "original_language": "en",
  "original_title": "Fight Club",
  "overview": "A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking n...",
  "popularity": 39.0054,
  "poster_path": "/jSziioSwPVrOy9Yow3XhWIBDjq1.jpg",
  "production_companies": [
    {
      "id": 25,
      "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
      "name": "20th Century Fox",
      "origin_country": "US"
    },
    {
      "id": 508,
      "logo_path": "/4sGWXoboEkWPphI6es6rTmqkCBh.png",
      "name": "Regency Enterprises",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    },
    {
      "iso_3166_1": "DE",
      "name": "Germany"
    }
  ],
  "release_date": "1999-10-15",
  "revenue": 101209702,
  "runtime": 139,
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    }
  ],
  "status": "Released",
  "tagline": "Mischief. Mayhem. Soap.",
  "title": "Fight Club",
  "video": false,
  "vote_average": 8.437,
  "vote_count": 33039,
  "ratings": {
    "imdb": {
      "value": 8.8,
      "votes": 2669989
    },
    "kinopoisk": {
      "value": 8.7,
      "votes": null
    },
    "metacritic": {
      "value": 67,
      "votes": null
    },
    "rotten_tomatoes": {
      "value": 81,
      "votes": null
    },
    "tmdb": {
      "value": 8.437,
      "votes": 33039
    }
  }
}
```

Blok `ratings` pochází z `append_to_response`. Každý poskytovatel je objekt `{value, votes}` nebo `null`, jak popisuje stránka [hodnocení](https://amodb.dev/cs/ratings/).

## Kombinování dat přes append_to_response

Jedno volání může nahradit šest. Vypište dílčí zdroje, které potřebujete, a každý přijde pod vlastním klíčem. Fungují standardní hodnoty TMDB: `credits`, `videos`, `images`, `keywords`, `translations`, `external_ids`, `release_dates`, `alternative_titles`, `recommendations`, `similar`, `reviews`, `lists` a `watch/providers`. amodb přidává dalších pět.

| Hodnota       | Přidává                                                     | Podrobnosti                                                             |
| ------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------- |
| `ratings`     | Skóre z IMDb, Kinopoisk, Metacritic, Rotten Tomatoes a TMDB | [Hodnocení](https://amodb.dev/cs/ratings/)                              |
| `moods`       | Měřiče nálady                                               | [Nálady](https://amodb.dev/cs/moods/)                                   |
| `soundtracks` | Skladby, které ve filmu zazní                               | [Soundtracky](https://amodb.dev/cs/soundtracks/)                        |
| `wikidata`    | ID Wikidata, rozpočet, tržby, ocenění, místa natáčení       | [Hledání podle externího ID](https://amodb.dev/cs/find-by-external-id/) |
| `showtimes`   | Promítací časy kin, kde jsou známé                          | [Promítací časy](https://amodb.dev/cs/showtimes/)                       |

Každý přidaný blok se počítá jako součást jednoho požadavku HTTP. Požadavek s deseti přidanými hodnotami stále spotřebuje jeden z vašich 20, 40 nebo 120 požadavků za minutu. Přidané bloky `ratings`, `moods` a `soundtracks` vynechávají klíč `id`, který samostatné cesty vracejí.

## Související endpointy filmů

Všechny cesty níže sdílejí základ `https://api.amodb.dev/3` a parametr `language`.

| Metoda a cesta                             | Vrací                                            | Další parametry |
| ------------------------------------------ | ------------------------------------------------ | --------------- |
| `GET /movie/{movie_id}/alternative_titles` | `{id, titles}`, často prázdné pole               | žádné           |
| `GET /movie/{movie_id}/release_dates`      | Data vydání a věková hodnocení podle zemí        | žádné           |
| `GET /movie/{movie_id}/recommendations`    | Seznam 20 doporučených filmů                     | žádné           |
| `GET /movie/{movie_id}/similar`            | Seznam 20 podobných filmů                        | žádné           |
| `GET /movie/{movie_id}/reviews`            | `results` je u většiny titulů prázdné            | žádné           |
| `GET /movie/{movie_id}/lists`              | Veřejné seznamy, které film obsahují             | `page`          |
| `GET /movie/{movie_id}/watch/providers`    | Poskytovatelé streamování a půjčování podle zemí | žádné           |
| `GET /movie/latest`                        | Nejnovější přidaný záznam filmu                  | žádné           |

Seznamy doporučení a podobných filmů vždy vracejí stránku 1 s 20 položkami. Odpověď `lists` je stránkovaná přes `page`, 20 seznamů na stránku. Stránkované seznamy jinde v API přijímají `page` od 1 do 500.

Obsazení, obrázky, videa, překlady, klíčová slova a externí ID mají vlastní stránky: [obsazení a štáb](https://amodb.dev/cs/credits/), [obrázky](https://amodb.dev/cs/images-api/), [videa a trailery](https://amodb.dev/cs/videos-trailers/), [překlady](https://amodb.dev/cs/translations/), [klíčová slova](https://amodb.dev/cs/keywords/) a [hledání podle externího ID](https://amodb.dev/cs/find-by-external-id/). amodb nenabízí cesty `changes` z TMDB.

## Chyby

Chyby používají tělo TMDB, například `{"success": false, "status_code": 34, "status_message": "The resource you requested could not be found."}`.

| HTTP | status_code | Kdy                                                                                         |
| ---- | ----------- | ------------------------------------------------------------------------------------------- |
| 401  | 7           | Klíč chybí nebo je nesprávný.                                                               |
| 402  | 36          | Platnost tarifu skončila.                                                                   |
| 404  | 34          | Film s tímto ID neexistuje, cesta, která se nenabízí, nebo titul pro dospělé.               |
| 405  | 37          | Zavolali jste metodu pro zápis, například hodnocení filmu.                                  |
| 429  | 25          | Překročili jste počet požadavků za minutu. Počkejte tolik sekund, kolik říká `Retry-After`. |

Úplný seznam je na stránce [chyby](https://amodb.dev/cs/errors/) a limity podle tarifu na stránce [limity požadavků](https://amodb.dev/cs/rate-limits/).

## Praktické poznámky

- Ukládejte `id` a `imdb_id` společně. Kterýmkoli film znovu najdete přes [hledání podle externího ID](https://amodb.dev/cs/find-by-external-id/).
- Vyžádejte jazyk, který zobrazujete. Textové pole může být prázdné, když v daném jazyce překlad neexistuje, zkontrolujte proto prázdný řetězec a pro zálohu požádejte znovu s `en-US`.
- Detaily cachujte u sebe několik hodin. Cache na serveru je drží 6 hodin, takže kratší cache u klienta nic nepřináší.
- Chcete-li filmy vypsat, a ne číst jeden, viz [vyhledávání](https://amodb.dev/cs/search/), [discover](https://amodb.dev/cs/discover/) a [trendy a seznamy](https://amodb.dev/cs/trending-lists/).

## Otázky a odpovědi

### Musím měnit kód svého klienta TMDB?

Ne, u cest, které amodb poskytuje. Cesty, parametry dotazu a pole JSON jsou stejné jako u TMDB v3. Změňte základní URL na https://api.amodb.dev/3 a použijte svůj klíč amodb v api_key nebo v hlavičce Bearer.

### Kolik dílčích požadavků může append_to_response spojit?

Až 20 hodnot v jednom seznamu oddělených čárkami, stejně jako u TMDB. Celé volání je jeden požadavek HTTP, takže se do limitu požadavků za minutu počítá jednou. Neznámé názvy se bez chyby ignorují.

### Jaký jazyk se použije, když vynechám parametr language?

Angličtina (en-US). Parametr language přijímá tagy TMDB jako ru-RU nebo pt-BR. Podporuje se jen 14 základních jazyků a jakýkoli jiný tag se vrátí k angličtině.

### Podporují se zapisovací metody TMDB, například hodnocení filmu?

Ne. Metody pro zápis účtu, relace, hodnocení a seznamů vracejí 405 se status_code 37 v těle chyby TMDB. Poskytují se cesty pro čtení titulů, osob, seznamů a hledání. Několik cest TMDB, například changes, se nenabízí.

### Jak čerstvá jsou data?

Detaily filmů se cachují 6 hodin a endpoint nejnovějšího filmu 10 minut. Změna záznamu se může v detailu projevit až po 6 hodinách.

## 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 obsazení a štábu](https://amodb.dev/cs/credits/): API obsazení a štábu se stejnými cestami a JSON jako TMDB v3. Získejte herce a štáb filmů, seriálů, sezón a epizod s poli order, department a job.
- [API obrázků a hostitel obrázků](https://amodb.dev/cs/images-api/): API obrázků filmů s cestami TMDB v3: vypište plakáty, pozadí, loga a záběry každého titulu a načtěte je z img.amodb.dev v 10 velikostech bez klíče.
- [Hodnocení filmů a seriálů](https://amodb.dev/cs/ratings/): API hodnocení filmů, které vrací skóre z IMDb, Kinopoisk, Metacritic, Rotten Tomatoes a TMDB pro titul jedním voláním, s null u každého neznámého zdroje.
- [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-19. Source: https://amodb.dev/cs/movies/
