# Společnosti a televizní sítě

> Endpointy společností a sítí vrací název, zemi původu a cestu k logu studia nebo televizní sítě podle ID na GET /3/company/{company_id} a GET /3/network/{network_id}. Cesty a JSON odpovídají TMDB v3. ID předejte do with_companies a with_networks v discover a vypíšete jejich tituly.

## Endpoint

`GET /3/company/{company_id}`

```bash
curl "https://api.amodb.dev/3/company/25" \
  -H "Authorization: Bearer $AMODB_KEY"
```

Odpověď:

```json
{
  "description": "",
  "headquarters": "",
  "homepage": "",
  "id": 25,
  "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
  "name": "20th Century Fox",
  "origin_country": "US",
  "parent_company": null
}
```

## Získání detailů společnosti

`GET /3/company/{company_id}` vrací jednu produkční společnost: název, zemi původu a cestu k logu. Nese také `description`, `headquarters`, `homepage` a `parent_company`, ale amodb je ponechává prázdné. ID je ID společnosti z TMDB, takže dříve uložená ID dál fungují.

Ukázka níže přečte první produkční společnost filmu 550 a pak tuto společnost načte.

```bash
COMPANY_ID=$(curl -sf "https://api.amodb.dev/3/movie/550" \
  -H "Authorization: Bearer $AMODB_KEY" | jq '.production_companies[0].id')
curl -sf "https://api.amodb.dev/3/company/$COMPANY_ID" \
  -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 movie = await get('/movie/550');
const company = await get(`/company/${movie.production_companies[0].id}`);
console.log(company.name, company.origin_country, company.logo_path);
```

```python
import os
import requests

BASE = "https://api.amodb.dev/3"
HEADERS = {"Authorization": f"Bearer {os.environ['AMODB_KEY']}"}


def get(path):
    r = requests.get(BASE + path, headers=HEADERS, timeout=10)
    r.raise_for_status()
    return r.json()


movie = get("/movie/550")
company = get(f"/company/{movie['production_companies'][0]['id']}")
print(company["name"], company["origin_country"], company["logo_path"])
```

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

$movie = amodb_get('/movie/550');
$company = amodb_get('/company/' . $movie['production_companies'][0]['id']);
echo $company['name'], ' ', $company['origin_country'], PHP_EOL;
```

```go
package main

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

var client = &http.Client{Timeout: 10 * time.Second}

func get(path string, out any) error {
	req, err := http.NewRequest("GET", "https://api.amodb.dev/3"+path, nil)
	if err != nil {
		return err
	}
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
	res, err := client.Do(req)
	if err != nil {
		return err
	}
	defer res.Body.Close()
	if res.StatusCode != http.StatusOK {
		return fmt.Errorf("amodb returned %s for %s", res.Status, path)
	}
	return json.NewDecoder(res.Body).Decode(out)
}

func main() {
	var movie struct {
		Companies []struct {
			ID int `json:"id"`
		} `json:"production_companies"`
	}
	if err := get("/movie/550", &movie); err != nil || len(movie.Companies) == 0 {
		panic("movie has no production companies")
	}
	var company struct {
		Name          string `json:"name"`
		OriginCountry string `json:"origin_country"`
	}
	if err := get(fmt.Sprintf("/company/%d", movie.Companies[0].ID), &company); err != nil {
		panic(err)
	}
	fmt.Println(company.Name, company.OriginCountry)
}
```

### Parametry

| Parametr     | Kde   | Povinný       | Popis                                                          |
| ------------ | ----- | ------------- | -------------------------------------------------------------- |
| `company_id` | path  | ano           | Číselné ID společnosti, například `25`.                        |
| `api_key`    | query | jeden ze dvou | Váš klíč. Použijte jej, nebo hlavičku `Authorization: Bearer`. |

### Pole odpovědi

| Pole             | Typ              | Poznámky                                            |
| ---------------- | ---------------- | --------------------------------------------------- |
| `description`    | string           | Vždy prázdný řetězec.                               |
| `headquarters`   | string           | Město nebo region. U většiny společností prázdné.   |
| `homepage`       | string           | Adresa webu. U většiny společností prázdná.         |
| `id`             | integer          | ID společnosti.                                     |
| `logo_path`      | string nebo null | Připojte k `https://img.amodb.dev/t/p/{size}`.      |
| `name`           | string           | Název společnosti.                                  |
| `origin_country` | string           | Kód ISO 3166-1, například `US`. Může být prázdný.   |
| `parent_company` | null             | Vždy `null`. amodb mateřskou společnost nevyplňuje. |

### Příklad odpovědi

```json
{
  "description": "",
  "headquarters": "",
  "homepage": "",
  "id": 25,
  "logo_path": "/nM2MfoMqzJQRiSynsDabOtFKetD.png",
  "name": "20th Century Fox",
  "origin_country": "US",
  "parent_company": null
}
```

Stejný tvar se vrací pro každé ID společnosti, například `/3/company/1` pro Lucasfilm.

## Získání detailů televizní sítě

`GET /3/network/{network_id}` vrací televizní síť: název, zemi původu, cestu k logu, `headquarters` a `homepage`. Nemá `description` ani `parent_company`. ID sítě přečtěte z pole `networks` seriálu. Seriál `/3/tv/1399` uvádí HBO s ID 49.

```json
{
  "headquarters": "",
  "homepage": "",
  "id": 49,
  "logo_path": "/tuomPhY2UtuPTqqFnKMVHvSb724.png",
  "name": "HBO",
  "origin_country": "US"
}
```

| Pole             | Typ              | Poznámky                                                                              |
| ---------------- | ---------------- | ------------------------------------------------------------------------------------- |
| `headquarters`   | string           | U většiny sítí prázdné.                                                               |
| `homepage`       | string           | U většiny sítí prázdná.                                                               |
| `id`             | integer          | ID sítě.                                                                              |
| `logo_path`      | string nebo null | Cesta k souboru loga.                                                                 |
| `name`           | string           | Název sítě.                                                                           |
| `origin_country` | string           | Kód ISO 3166-1. Prázdný řetězec u globálních streamovacích služeb, například Netflix. |

## Endpointy v této skupině

Všechny cesty sdílejí základ `https://api.amodb.dev/3` a stejné ověření jako ostatní endpointy.

| Metoda a cesta              | Vrací                                                                        | Parametry       |
| --------------------------- | ---------------------------------------------------------------------------- | --------------- |
| `GET /company/{company_id}` | Záznam společnosti                                                           | `company_id`    |
| `GET /network/{network_id}` | Záznam sítě                                                                  | `network_id`    |
| `GET /search/company`       | Stránkovaný seznam společností s `id`, `name`, `logo_path`, `origin_country` | `query`, `page` |

amodb nenabízí cesty `alternative_names` ani `images` pro společnosti a sítě. Logo je `logo_path` přímo v záznamu.

### Loga

Adresu loga sestavte jako `https://img.amodb.dev/t/p/w185` plus `logo_path`. `GET /3/configuration` uvádí velikosti log: `w92`, `w154`, `w185`, `w300`, `w500` a `original`. Úplná tabulka velikostí je na stránce [obrázky](https://amodb.dev/cs/images-api/). Soubory log jsou většinou PNG a soubory obrázků klíč nepotřebují. Společnost bez loga má `logo_path` nastavené na `null`.

## Filtrování discover podle společnosti nebo sítě

ID společností a sítí jsou nejužitečnější jako filtry. Discover mění ID na seznam titulů.

| Filtr            | Funguje na                         | Význam                                                           |
| ---------------- | ---------------------------------- | ---------------------------------------------------------------- |
| `with_companies` | `/discover/movie` a `/discover/tv` | Tituly natočené těmito společnostmi.                             |
| `with_networks`  | `/discover/tv`                     | Seriály vysílané těmito sítěmi. Discover pro filmy jej ignoruje. |

Více ID oddělte čárkou, pokud požadujete všechna, nebo znakem svislé čáry (kódovaným jako `%7C`), pokud stačí kterékoli. Volání níže vypíše filmy jedné společnosti seřazené podle popularity. Druhé volání vypíše seriály, které vysílala HBO.

```bash
curl -sf "https://api.amodb.dev/3/discover/movie?with_companies=$COMPANY_ID&sort_by=popularity.desc&page=1" \
  -H "Authorization: Bearer $AMODB_KEY"

curl -sf "https://api.amodb.dev/3/discover/tv?with_networks=49&sort_by=popularity.desc" \
  -H "Authorization: Bearer $AMODB_KEY"
```

Výsledky discover se na edge cachují 30 minut a přicházejí po 20 na stránku. Úplný seznam filtrů je na stránce [discover](https://amodb.dev/cs/discover/).

## Hledání společnosti podle názvu

`GET /3/search/company?query=lucasfilm` vrací stránkovaný seznam. Každý řádek má `id`, `logo_path`, `name` a `origin_country`. Řádky nejsou řazeny podle přesné shody: studio s názvem `Lucasfilm Ltd.` má ID 1 a je třetím řádkem, za dvěma podobnými názvy. Než ID vezmete, porovnejte `name` a `origin_country`. Pravidla dotazu jsou na stránce [vyhledávání](https://amodb.dev/cs/search/). Cesta pro hledání sítí neexistuje.

## Chyby

Neexistující společnost nebo síť vrací tělo chyby TMDB se `status_code` 34. Ostatní selhání používají stejné tělo.

| HTTP | status_code | Kdy                                                                                   |
| ---- | ----------- | ------------------------------------------------------------------------------------- |
| 401  | 7           | Klíč chybí nebo je nesprávný.                                                         |
| 402  | 36          | Platnost tarifu skončila.                                                             |
| 404  | 34          | Společnost ani síť s tímto ID neexistuje, nebo ID není číslo.                         |
| 405  | 37          | Poslali jste metodu pro zápis.                                                        |
| 429  | 25          | Překročen počet požadavků za minutu. Počkejte tolik sekund, kolik říká `Retry-After`. |

Úplný seznam viz [chyby](https://amodb.dev/cs/errors/) a hlavičky popisují [limity požadavků](https://amodb.dev/cs/rate-limits/).

## Praktické poznámky

- Ukládejte `id` společnosti vedle názvu. Názvy se mění, ID ne.
- Než logo vykreslíte, zkontrolujte, zda `logo_path` není `null`. Nespoléhejte na `homepage`, `headquarters` ani `description`, protože jsou prázdné.
- Detaily společností a sítí se na edge cachují 6 hodin. Soubory log na `img.amodb.dev` se cachují 30 dní.
- Síť je televizní pojem. Její seriály získáte přes `with_networks` na `/discover/tv`, ne na discover pro filmy.
- Chcete-li najít společnost podle názvu, použijte hledání společností výše a správný řádek vyberte podle `name` a `origin_country`.

## Otázky a odpovědi

### Kde získám ID společnosti nebo sítě?

Přečtěte je z titulů, které už máte. Film uvádí production_companies a seriál uvádí networks a production_companies. Každá položka nese číselné id, které endpointy společností a sítí přijímají.

### Mohu vypsat všechny filmy, které společnost natočila?

Použijte discover s filtrem with_companies. Předejte ID společnosti a procházejte výsledky po stránkách. Pro seriály přidejte with_networks v TV discover a vypíšete seriály, které síť vysílala.

### Jsou soubory log za API klíčem?

Ne. JSON s cestou k logu klíč vyžaduje, ale soubory na img.amodb.dev klíč nepotřebují a cachují se 30 dní.

### Jak najdu společnost podle názvu?

Zavolejte GET /3/search/company?query=lucasfilm. Řádky nejsou řazeny podle přesné shody, porovnejte proto name a origin_country a vezměte id správného řádku. Hledání sítí neexistuje, ID sítí proto čtěte ze seriálu.

## Související stránky

- [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í.
- [Discover API](https://amodb.dev/cs/discover/): Discover API se stejnými filtry jako TMDB v3. Vypisujte filmy a seriály podle žánru, společnosti, klíčového slova, roku, hodnocení, délky a poskytovatele.
- [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.
- [API vyhledávání](https://amodb.dev/cs/search/): API vyhledávání se stejnými cestami a JSON jako TMDB v3. Najděte filmy, seriály, osoby, kolekce, společnosti a klíčová slova podle textu s filtrem roku.
- [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/companies-networks/
