# API vícejazyčných metadat filmů

> Toto API vícejazyčných metadat filmů vrací názvy, popisy, slogany, názvy žánrů a biografie ve 14 jazycích: angličtina, ruština, ukrajinština, běloruština, čínština, portugalština, bulharština, hebrejština, čeština, rumunština, francouzština, polština, italština a španělština. Stačí předat jeden tag TMDB, například ru-RU, v parametru language.

## Získání dat filmu ve 14 jazycích

`GET /3/movie/{movie_id}?language=ru-RU` vrací název, popis, slogan a názvy žánrů rusky. Parametr `language` přijímá tagy TMDB jako `ru-RU` nebo `pt-BR` a funguje na každém endpointu, který vrací text. ID zůstávají ve všech jazycích stejná, takže jeden řádek ve vaší databázi slouží všem.

Dostanete 14 jazyků na jeden klíč, `original_title` každého filmu, endpoint překladů, který vypíše všechny jazyky titulu, a lokalizované názvy žánrů. Úplný seznam je na stránce [jazyky](https://amodb.dev/cs/languages/).

## 14 podporovaných jazyků

| Jazyk         | Kód  | Příklad tagu |
| ------------- | ---- | ------------ |
| angličtina    | `en` | `en-US`      |
| ruština       | `ru` | `ru-RU`      |
| ukrajinština  | `uk` | `uk-UA`      |
| běloruština   | `be` | `be-BY`      |
| čínština      | `zh` | `zh-CN`      |
| portugalština | `pt` | `pt-BR`      |
| bulharština   | `bg` | `bg-BG`      |
| hebrejština   | `he` | `he-IL`      |
| čeština       | `cs` | `cs-CZ`      |
| rumunština    | `ro` | `ro-RO`      |
| francouzština | `fr` | `fr-FR`      |
| polština      | `pl` | `pl-PL`      |
| italština     | `it` | `it-IT`      |
| španělština   | `es` | `es-ES`      |

Jakýkoli jiný tag se vrátí k `en`. Japonština a korejština se jako jazyky rozhraní nepodporují. Jejich původní názvy stále přijdou v `original_title` u filmů a v `original_name` u seriálů.

## Jaká data dostanete

| Endpoint                                   | Lokalizovaný obsah                                                 |
| ------------------------------------------ | ------------------------------------------------------------------ |
| `GET /3/movie/{movie_id}`                  | `title`, `overview`, `tagline`, názvy žánrů                        |
| `GET /3/tv/{tv_id}`                        | `name`, `overview`, `tagline`, názvy žánrů                         |
| `GET /3/tv/{tv_id}/season/{season_number}` | `name` a `overview` sezóny a epizod                                |
| `GET /3/person/{person_id}`                | `biography`                                                        |
| `GET /3/genre/movie/list`                  | Názvy žánrů pro filtry a menu                                      |
| `GET /3/movie/{movie_id}/translations`     | Všechny jazyky titulu v jedné odpovědi                             |
| `GET /3/movie/{movie_id}/images`           | Plakáty označené jazykem, filtrované přes `include_image_language` |
| `GET /3/movie/{movie_id}/videos`           | Videa označená `iso_639_1`, všechny jazyky v jedné odpovědi        |

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

1. Vyberte tarif na stránce [ceník](https://amodb.dev/cs/pricing/). Počet jazyků se s tarifem nemění, mění se jen rychlost požadavků.
2. Vytvořte klíč v panelu účtu.
3. Zavolejte libovolný endpoint s tagem `language` a klíč pošlete jako `api_key` nebo v hlavičce Bearer.

## Příklad požadavku

Ukázka v bashi vypíše název filmu Fight Club (ID `550`) ve třech jazycích. K vypsání jednoho pole používá `jq`. Ukázka v PHP si vyžádá běloruštinu a když je popis prázdný, vrátí se k angličtině.

```bash
for lang in en-US ru-RU he-IL; do
  curl -s "https://api.amodb.dev/3/movie/550?language=$lang" \
    -H "Authorization: Bearer $AMODB_KEY" | jq -r '.title'
done
```

```php
<?php
function amodb(string $path, array $query = []): array
{
    $url = 'https://api.amodb.dev/3' . $path . '?' . http_build_query($query);
    $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");
    }
    return json_decode($body, true);
}

function localizedMovie(int $id, string $lang): array
{
    $movie = amodb("/movie/$id", ['language' => $lang]);
    $movie['text_language'] = $lang;
    if (trim($movie['overview'] ?? '') === '') {
        $fallback = amodb("/movie/$id", ['language' => 'en-US']);
        $movie['overview'] = $fallback['overview'] ?? '';
        $movie['text_language'] = 'en-US';
    }
    return $movie;
}

$movie = localizedMovie(550, 'be-BY');
echo $movie['title'], ' (', $movie['original_title'], ')', PHP_EOL;
echo '[', $movie['text_language'], '] ', $movie['overview'], PHP_EOL;
```

Odpověď pro `language=ru-RU`, zkrácená na několik polí. Klíč `text_language` v ukázce v PHP přidává váš kód, ne API.

```json
{
  "genres": [
    {
      "id": 18,
      "name": "драма"
    },
    {
      "id": 53,
      "name": "триллер"
    }
  ],
  "id": 550,
  "original_language": "en",
  "original_title": "Fight Club",
  "overview": "Сотрудник страховой компании страдает хронической бессонницей и отчаянно пытается вырваться из мучительно скучной жизни. Однажды в очередной командировке он...",
  "poster_path": "/66RvLrRJTm4J8l3uHXWF09AICol.jpg",
  "tagline": "«Интриги. Хаос. Мыло»",
  "title": "Бойцовский клуб"
}
```

## Záloha, když je pole prázdné

Ne každý titul má text v každém jazyce. `overview` se může vrátit prázdný, když překlad neexistuje, a `title` nebo `tagline` se mohou vrátit anglicky. API texty nevymýšlí. Použijte pevné pořadí, aby stránka vždy něco zobrazila:

1. Vyžádejte jazyk, který zobrazujete.
2. Když je pole prázdné, vyžádejte stejné ID s `en-US`, nebo přečtěte anglickou položku ze seznamu překladů.
3. Když je název prázdný, zobrazte `original_title`.
4. Ukládejte, z jakého jazyka každé pole pochází, abyste to mohli později zkusit znovu.

Cache na edge drží jednu kopii na jazyk pro každou cachovanou cestu, takže anglická záloha pro oblíbený titul se obvykle obslouží z cache.

## Výpis všech překladů titulu

`GET /3/movie/{movie_id}/translations` vrací pole `translations`, jednu položku na každý jazyk, který má data. Seznam může být delší než 14 podporovaných jazyků: Fight Club má 50 položek. Použijte jej k sestavení přepínače jazyků nebo k uložení všech textů titulu do jednoho řádku.

| Pole                                                                        | Význam                                    |
| --------------------------------------------------------------------------- | ----------------------------------------- |
| `iso_639_1`, `iso_3166_1`                                                   | Kódy jazyka a země                        |
| `english_name`                                                              | Název jazyka anglicky                     |
| `data.title` (filmy) nebo `data.name` (TV), `data.overview`, `data.tagline` | Lokalizovaný text, název může být prázdný |
| `data.homepage`, `data.runtime`                                             | Volitelné hodnoty pro daný překlad        |

Stejný endpoint existuje pro seriály a epizody. Položky seriálů nesou `data.name` a žádné `runtime`, položky epizod jen `name` a `overview`. Sezóny odpovídají prázdným seznamem a osoby ani kolekce endpoint překladů nemají. Podrobnosti jsou na stránce [překlady](https://amodb.dev/cs/translations/). Jedno volání překladů nahradí až 14 volání detailů, když chcete všechny jazyky najednou.

## Plakáty a videa podle jazyka

Obrázky a videa nesou vlastní jazykové tagy v `iso_639_1`. Na endpointech obrázků předejte seznam oddělený čárkami a pro položky bez jazyka, například plakáty bez textu, přidejte `null`. Odpověď obsahuje odpovídající položky, shody tedy řaďte ve svém kódu.

| Parametr                 | Použití           | Příklad      |
| ------------------------ | ----------------- | ------------ |
| `include_image_language` | Endpointy obrázků | `ru,en,null` |

Endpointy videí vrací všechny jazyky v jedné odpovědi a `include_video_language` ignorují, filtrujte proto podle `iso_639_1` sami. Velikosti a CDN viz [obrázky](https://amodb.dev/cs/images-api/).

## Hebrejština a text zprava doleva

Hebrejština je jediný z 14 jazyků psaný zprava doleva. Řešte to ve stránce, ne v datech:

- Nastavte `lang="he"` a `dir="rtl"` na prvku s textem.
- Latinské názvy uvnitř hebrejského textu obalte prvkem `<bdi>`, aby interpunkce neskákala na špatnou stranu.
- Používejte logické vlastnosti CSS jako `margin-inline-start` místo left a right.

## Jak si stojí v porovnání

| Schopnost               | Scrapování stránek vlastními silami | Dataset jen v angličtině           | amodb                             |
| ----------------------- | ----------------------------------- | ---------------------------------- | --------------------------------- |
| Jazyky                  | Jedna lokalizace webu na požadavek  | Angličtina                         | 14 jazyků přes `language`         |
| Stejné ID napříč jazyky | Jiné URL pro každou lokalizaci      | Netýká se                          | Všude stejné číselné ID           |
| Všechny překlady titulu | Stáhnout stránku každé lokalizace   | Netýká se                          | Jedno volání `translations`       |
| Lokalizované plakáty    | URL obrázků podle lokalizace        | Podívejte se do jejich dokumentace | Filtr `include_image_language`    |
| Původní název           | Parsovat z textu stránky            | Podívejte se do jejich dokumentace | `original_title`, `original_name` |

## Ceník

Sada jazyků je u každého tarifu stejná, platíte tedy jen za rychlost a období. Kupte si předplatné na 1, 3, 6, 12 nebo 24 měsíců, u delších je sleva 0, 10, 20, 30 nebo 40 procent a bez automatického obnovení. Tarify s 20, 40 a 120 požadavky za minutu zahrnují všechny jazyky a všechny endpointy. Web v pěti jazycích potřebuje až pět volání detailů na titul a opakované požadavky se obsluhují z cache na edge po 6 hodin. Bezplatný tarif neexistuje. Viz [ceník](https://amodb.dev/cs/pricing/).

## Otázky a odpovědi

### Které jazyky API podporuje?

Čtrnáct: angličtinu, ruštinu, ukrajinštinu, běloruštinu, čínštinu, portugalštinu, bulharštinu, hebrejštinu, češtinu, rumunštinu, francouzštinu, polštinu, italštinu a španělštinu, s kódy en ru uk be zh pt bg he cs ro fr pl it es.

### Co se stane, když pošlu jazykový tag, který se nepodporuje?

Odpověď se vrátí k angličtině. Tag jako ja-JP vrátí anglický text, zatímco původní japonský název stále přijde v original_title u filmů a v original_name u seriálů.

### Mohu získat všechny překlady titulu jedním požadavkem?

Ano. GET /3/movie/{movie_id}/translations vypíše jednu položku na každý jazyk, který má data, každou s title, overview, tagline, homepage a runtime. Seriály a epizody mají stejný endpoint, s name místo title. Sezóny, osoby a kolekce překlady nemají.

### Jak ošetřit chybějící popis ve zvoleném jazyce?

Zkontrolujte prázdný řetězec, pak vyžádejte stejné ID s en-US, nebo přečtěte anglickou položku ze seznamu překladů. Jako poslední zálohu zobrazte original_title a text označte jako anglický. Názvy a slogany mohou přijít anglicky už samy.

### Jsou plakáty také lokalizované?

Plakáty nesou jazykový tag. Vyžádejte si je přes include_image_language, například ru,en,null, a shody seřaďte ve svém kódu. Soubory obrázků pocházejí z img.amodb.dev a klíč nepotřebují.

## Související stránky

- [Jazyky](https://amodb.dev/cs/languages/): amodb vrací názvy, popisy a jména ve 14 jazycích. Do language předejte tag ve stylu TMDB, např. ru-RU nebo pt-BR; jakýkoli jiný tag použije angličtinu.
- [API překladů](https://amodb.dev/cs/translations/): API překladů filmů s cestami TMDB v3: přečtěte všechny uložené názvy, popisy a slogany filmu, seriálu nebo epizody ve všech jazycích najednou.
- [API detailu filmu](https://amodb.dev/cs/movies/): API detailu filmu se stejnými cestami a JSON jako TMDB v3. Načtěte film podle ID, přidejte obsazení, hodnocení a nálady přes append_to_response, 14 jazyků.
- [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 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.
- [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/multilingual-movie-metadata-api/
