---
feature: "Metadata"
description: "TMDb a ČSFD integrace pro získávání metadat filmů, seriálů a osob"
files:
  - wcs/metadata/TMDbClient.py
  - wcs/metadata/CSFDClient.py
  - wcs/metadata/TMDbCache.py
parent: true
children:
  - "TMDbClient"
  - "CSFDClient"
  - "TMDbCache"
created: "2026-04-04"
updated: "2026-04-04"
status: "complete"
---

# Metadata

Integrace s externími databázemi filmů a seriálů. TMDb (The Movie Database) je primární zdroj metadat – filmy, seriály, sezóny, epizody, osoby, obrázky. ČSFD (Česko-Slovenská Filmová Databáze) doplňuje české hodnocení a top seznamy. Cache vrstva minimalizuje API volání.

## Soubory

| Soubor | Velikost | Účel |
|--------|----------|------|
| `wcs/metadata/TMDbClient.py` | 120 KB | Kompletní TMDb API klient |
| `wcs/metadata/CSFDClient.py` | 97 KB | ČSFD web scraper |
| `wcs/metadata/TMDbCache.py` | 4 KB | TMDb response cache |

## Child funkce

### TMDbClient

- **Co dělá**: Kompletní klient pro TMDb API v3. Největší modul pluginu (120 KB). Pokrývá filmy (vyhledávání, detail, podobné, kolekce), seriály (sezóny, epizody, nadcházející), osoby (herci, režiséři, filmografie) a obrázky. Generuje Kodi ListItems s kompletními metadaty.
- **Klíčové metody**:
  - `list_movies(params, addon, handle)` – výpis filmů podle kategorie/žánru/země
  - `list_series(params, addon, handle)` – výpis seriálů
  - `display_series_seasons(params, addon, handle)` – sezóny seriálu
  - `display_season_episodes(params, addon, handle)` – epizody sezóny
  - `get_movie_detailed_info(tmdb_id)` – detailní info o filmu
  - `get_next_episode_from_tmdb(tmdb_id, season, episode, addon)` – další epizoda
  - `display_similar_movies(params, addon, handle)` – podobné filmy
  - `show_item_details(params, addon)` – detailní zobrazení
  - `check_tmdb_api_key_validity(addon)` – validace API klíče
  - `get_tmdb_api_key(addon)` – získání klíče z nastavení
- **Vstupy**: TMDb ID, parametry vyhledávání, addon instance
- **Výstupy**: Kodi ListItems, metadata slovníky, obrázek URL
- **Závislosti**: `requests`, [001-router-core.md](001-router-core.md) (utils, user_data)
- **Settings**: `tmdb_api_key`, `show_specials`

### CSFDClient

- **Co dělá**: Web scraper pro ČSFD. Získává top filmy, české/slovenské hodnocení, žánry a detaily z webu ČSFD. Podporuje stránkování, filtrování a mapování ČSFD→TMDb ID pro propojení s TMDb metadaty. Cachuje výsledky pro snížení zátěže.
- **Klíčové metody**:
  - `list_csfd_movies(params, addon, handle)` – výpis ČSFD filmů
  - `open_csfd_url(params, addon)` – otevření ČSFD stránky
  - `reset_csfd_cache(params, addon)` – reset cache ČSFD
  - `reset_csfd_tmdb_cache(params, addon)` – reset ČSFD→TMDb mapovací cache
- **Vstupy**: Parametry filtrů, addon instance
- **Výstupy**: Kodi ListItems s ČSFD hodnocením
- **Závislosti**: `requests`, `TMDbClient` (pro mapování), [001-router-core.md](001-router-core.md) (caching)
- **Settings**: `csfd_cache_hours`, `csfd_tmdb_cache_days`, `csfd_items_per_page`, `csfd_series_items_per_page`

### TMDbCache

- **Co dělá**: Jednoduchá cache vrstva pro TMDb API odpovědi. Ukládá odpovědi s TTL pro snížení počtu API volání. Využívá centrální `CacheManager` z [001-router-core.md](001-router-core.md).
- **Klíčové metody**: `get_cached_response(url)`, `set_cached_response(url, data, ttl)`
- **Vstupy**: URL API požadavku, odpověď
- **Výstupy**: Cachovaná odpověď nebo None
- **Závislosti**: [001-router-core.md](001-router-core.md) (caching.py – CacheManager)
- **Settings**: žádné přímé (TTL se řídí voláním)
