🎬 MFilmDB

Komplexní recenze filmové databáze

Verze 0.2.2.30 | Leden 2026

📋 Přehled aplikace

MFilmDB je desktopová aplikace pro správu osobní filmové sbírky, vyvinutá v Pythonu s využitím moderního GUI frameworku ttkbootstrap. Aplikace je navržena pro uživatele, kteří chtějí mít přehled o svých filmech uložených na lokálních discích, NAS serverech nebo externích médiích.

🎯 Cílová skupina

🏗️ Technologie

🐍

Python 3.10+

Moderní Python s typovými anotacemi, async operacemi a bohatým ekosystémem knihoven.

🎨

ttkbootstrap

Moderní vzhled GUI s podporou 20+ témat (darkly, flatly, superhero, cyborg...).

🗄️

SQLite

Spolehlivá embedded databáze bez nutnosti externího serveru.

🌐

API integrace

TMDb, OMDb, ČSFD, FDb pro automatické stahování metadat.

⚙️ Funkce a možnosti

📁 Správa filmové databáze

Jádrem aplikace je robustní databázový systém postavený na SQLite:

🧭 Parsování názvů a nový obsah `APP_DATA`

V posledních úpravách byl významně rozšířen modul APP_DATA/logic.py — nyní obsahuje komplexní funkci parse_filename_metadata(filename), která extrahuje a normalizuje následující informace přímo z názvu souboru:

Tato logika zlepšuje přesnost automatického přiřazování záznamů k filmům a usnadňuje dávkové zpracování velkých knihoven.

Další doplněné a nově sledované soubory/adresáře v APP_DATA:

🌍 Lokalizace (podrobně)

Poznámka k lokalizacím: Plný seznam podporovaných jazyků je definován v APP_DATA/localize_data.py. V aktuální verzi jsou to: CZ, EN, SK, DE, PL, NL, FR, IT, FI, JA, ES, PT, RU, VI, NO, DA, ZH, HI, FA, TR, UK, HU, TA (celkem 23 jazyků).

Jak to funguje (laicky): Uživatelské rozhraní má přeložené texty pro tlačítka, dialogy a progress fáze — stačí v nastavení zvolit jazyk a aplikace se pokusí použít dostupné překlady.

Technicky: Lokalizace jsou uloženy jako mapy klíč→překlad v APP_DATA/localize_data.py. Nové fáze procesu (phase_5,...,phase_100) jsou přeloženy pro 23 jazyků; přidání dalšího jazyka je jednoduché: přidejte slovník s klíči pro nové locale a aktualizujte registry v souboru.

Přepsání a doplnění překladů: Pro lokální úpravy vytvořte soubor s přejmenovanými klíči ve složce uživatelského profilu nebo použijte nástroje v DEV_TOOLS/LocalizeAdder_QT.py.

Poznámka k inventarizaci: V rámci úprav jsem také zaznamenal více nových (dříve untracked) souborů ve stromu repozitáře — například vlaječky v w20-webp/ a ikony v kořeni projektu (icon_vav.ico). Doporučuji mít tyto zdroje centralizované a případně přidat manifest s doporučenými ikonami pro exportní šablony.

🌐 Online enrichment metadat

Aplikace podporuje automatické stahování metadat z mnoha zdrojů. Enrichment kombinuje data z více providerů s fallback logikou a confidence skóre — to znamená, že pokud jeden provider nemá informaci, aplikace zkusí další a vybere nejspolehlivější hodnotu.

Technická poznámka: Pro některé providery (TMDb, OMDb) je nutný API klíč; jiné (ČSFD, FDb) jsou získávány scrapováním. Rate-limity a timeouty jsou respektovány a aplikace implementuje retry/backoff strategii.

Součástí poskytovaných zdrojů jsou:

Zdroj Typ dat Poznámka
🎬 TMDb Metadata, covers, hodnocení Vyžaduje API klíč (zdarma)
🎥 OMDb IMDb data, plakáty Vyžaduje API klíč (zdarma limitovaně)
🇨🇿 ČSFD České recenze, hodnocení Web scraping
🇨🇿 FDb.cz České metadata Web scraping
📺 Edison Online České tituly Web scraping
🔍 Google Images Covers Záložní zdroj obrázků

Poznámka: Online enrichment nepokrývá všechny veřejné zdroje — například specializované katalogy pro videoklipy (IMVDB) mohou vyžadovat speciální provider. V této verzi je IMVDB integrován pro hudební videoklipy, ale je omezen na soubory nacházející se ve složkách označených jako Videoklipy (konfigurace: sources.imvdb). Pokud potřebujete další specializované zdroje (např. lokální nebo placené API), přidejte provider do APP_DATA (funkce `search_*` nebo wrapper) a zaregistrujte jej v nastavení zdrojů.

Jak se rozhoduje, který provider použít: aplikace volí podle priority (nastavení), dostupnosti API (klíče), a podle typu obsahu — např. pro videoklipy se primárně použije IMVDB.

🖼️ Správa obrázků (covers)

Covery jsou pro aplikaci důležité — zobrazují se v tabulkách, detailech a exportech. Aplikace používá kombinaci lokálního vyhledávání a online downloaderu:

  1. Vyhledávání lokálních coverů — nejprve zkontroluje adresář filmu (soubory s názvy jako cover.*, poster.*, folder.*) a poté uživatelem definovaný adresář (`covers_path` nebo zadaný v nastavení).
  2. SimpleCoverDownloader — pokud lokální cover není nalezen nebo uživatel požádá o update, stáhne aplikace covery z online providerů (TMDb, OMDb, Google Images apod.).
  3. Ukládání — stažené/vybrané covery se ukládají do složky covers/ (nebo do cesty definované v `config.json`) s formátovanými názvy: {tmdb_id|imdb_id|normalized_title}_{year}.{ext}. Příklad: tt0111161_1994.jpg nebo Shawshank_Redemption_1994.webp. Tím je zajištěna konzistence a snadná identifikace.
  4. Hash & cache — každý uložený cover je doplněn o `cover_hash` v DB pro detekci změn a pro re-use bez zbytečného stahování.
  5. Formáty a velikosti — doporučené formáty jsou WebP nebo JPG; doporučené minimální rozměry pro detailní zobrazení: 600×900px (portrait) nebo 1280×720px (landscape). Aplikace generuje menší thumbs pro seznamy a náhledy.

Tip pro uživatele: Pro velké sbírky je doporučeno centralizovat covery v samostatném adresáři a povolit automatické zpracování (auto_process_covers) — to urychlí export a zabrání duplikaci souborů.

📤 Export a import

Flexibilní možnosti exportu a importu dat:

📊

CSV Export

Jednoduchý textový formát pro tabulkové procesory.

📋

JSON Export

Strukturovaná data pro další zpracování.

📈

Excel Export

XLSX s vloženými náhledy coverů.

🌐

HTML Export

7+ šablon včetně responzivních karet.

📦

XML Export

Pro pokročilou integraci.

🗜️

ZIP Archiv

HTML + všechny covery v jednom balíčku.

🎨 HTML šablony exportu

K dispozici je 7 předdefinovaných šablon pro HTML export:

  1. 01_default.html - Základní tabulkový vzhled
  2. 02_dark_modern.html - Tmavé moderní téma
  3. 03_netflix_style.html - Styl Netflix katalogu
  4. 04_retro_cinema.html - Retro filmový vzhled
  5. 05_minimalist_light.html - Světlý minimalistický design
  6. 06_film_cards.html - Grid responzivních karet s řazením a filtrováním
  7. 07_accessible_cards.html - Přístupné karty pro slabozraké (velký text)

👁️ Watchdog - automatické sledování

Integrovaný file system watcher pro automatickou detekci nových filmů:

🔍 Pokročilé vyhledávání a třídění

🔧 Konfigurace a nastavení

🗄️ Databáze a editace záznamů (detail)

Databáze je implementovaná pomocí SQLite a souboru mfilmdb.sqlite3. Níže jsou hlavní body a doporučení:

✏️ Editace a hromadné úpravy

📤 Exporty (detail)

Exportní funkce pokrývají většinu případů použití — níže podrobně:

🧰 Doplnkové aplikace — hodnocení a doporučení

1) BBB_Browser (APP_DATA/BBB_Browser)

Účel: nástroj pro prohlížení generovaných výstupů / záloh (BBB = Browser/Backup Builder). Často používaný pro kontrolu offline exportů.

2) ThemeAdder (APP_DATA/ThemeAdder_GUI.py)

Účel: grafické přidávání a úprava témat pro ttkbootstrap.

3) ISP Generator (APP_DATA/ISP_Generator_GUI.py)

Účel: generátor posterů/thumbnailů a šablon pro galerie.

📝 Časová razítka změn v recenzi

Ukazuje, kdy byly jednotlivé části recenze aktualizovány a jak aktuální je tento dokument:

Datum / čas (UTC)Co bylo přidáno
2025-12-30 18:00Počáteční recenze struktury a funkcí
2026-01-01 10:12Rozšíření parse_filename_metadata a KNOWN_ACTORS/UPLOADERS
2026-01-02 09:45Přidání přehledu APP_DATA/GFX (vlaječky) a BBB_Browser zmínky
2026-01-02 12:30Detaily databáze, exportů, editace a doporučení pro ThemeAdder/ISP

Recenze aktualizována: 2026-01-02 12:30 UTC

🎨 Uživatelské rozhraní

🖥️ Celkový design

Aplikace využívá ttkbootstrap - moderní wrapper nad Tkinter, který poskytuje 20+ profesionálních témat inspirovaných Bootstrap CSS frameworkem. Uživatelské rozhraní je konzistentní, responzivní a vizuálně přívětivé.

🎭 Témata a přizpůsobení

K dispozici jsou kategorie témat:

📐 Rozložení aplikace

Oblast Popis
🔝 Menu bar Soubor, Úpravy, Nástroje, Nastavení
🔍 Vyhledávací panel Quick search + pokročilé filtry
📊 Hlavní tabulka Treeview s filmy, řazení kliknutím na záhlaví
🖼️ Detail panel Náhled coveru, metadata, tlačítka akcí
📈 Status bar Počet filmů, progress bar, stavové zprávy

⌨️ Ovládání

🌍 Lokalizace

Aplikace podporuje vícejazyčné rozhraní. Plný seznam jazyků je definován v APP_DATA/localize_data.py:

⭐ Hodnocení

📊 Celkové hodnocení

★★★★★★★★☆ 8 / 10 83%

Interpretace hodnocení: Interně ukládáme hodnocení jako `rating_stars` (celé číslo 1–10) a jako `rating_percent` (0–100) pro exporty a porovnání mezi providery. Při importu hodnocení z externích zdrojů (např. TMDb/ČSFD) aplikace provede normalizaci do 1–10 škály; např. 4.5/5 → 9/10, nebo 82% → 8/10 zaokrouhleně.

Technicky: `rating_stars` je INTEGER sloupec, `rating_percent` je INTEGER (0–100). Pro statistiky a průměrné skóre se používá vážený průměr podle `votes`.

✅ Plusy

  • Komplexní funkcionalita pro správu filmů
  • Moderní a přizpůsobitelný vzhled
  • Integrace s mnoha metadata zdroji
  • Flexibilní export do mnoha formátů
  • Watchdog pro automatický import
  • Offline provoz (nepotřebuje internet)
  • Podpora češtiny a lokálních zdrojů (ČSFD, FDb)
  • Open source - možnost úprav
  • Nízké systémové nároky
  • Přenositelná databáze (SQLite)

❌ Mínusy

  • Vyžaduje Python runtime (nebo zkompilovaný .exe)
  • Některé API zdroje vyžadují registraci
  • Web scraping může přestat fungovat při změně stránek
  • Chybí přímá integrace s PLEX/Jellyfin
  • Žádná mobilní verze
  • Omezené možnosti batch editace
  • Dokumentace by mohla být podrobnější

📈 Hodnocení podle kategorií

Kategorie Hodnocení Komentář
🎨 Design a vzhled ★★★★☆ 4/5 Moderní témata, ale GUI typické pro desktop aplikace
⚙️ Funkcionalita ★★★★★ 5/5 Vynikající sada funkcí pro správu filmů
🚀 Výkon ★★★★☆ 4/5 Rychlý, i s tisíci záznamů
🔧 Použitelnost ★★★★☆ 4/5 Intuitivní, vyžaduje počáteční nastavení
📚 Dokumentace ★★★☆☆ 3/5 Základní, chybí detailní průvodce
💻 Kvalita kódu ★★★★☆ 4/5 Dobře strukturovaný, typové anotace, modularita

💡 Doporučení pro rozšíření

🔮 Prioritní vylepšení

  1. Integrace s PLEX/Jellyfin - synchronizace knihoven a metadat
  2. Web rozhraní - přístup k databázi přes prohlížeč (Flask/FastAPI)
  3. Mobilní companion app - základní prohlížení sbírky na telefonu
  4. Batch operace - hromadná editace více filmů najednou
  5. Statistiky a grafy - vizualizace sbírky (žánry, roky, velikosti)

🎯 Další návrhy

🛠️ Technická doporučení

📝 Závěr

MFilmDB je solidní nástroj pro správu filmové sbírky s bohatou sadou funkcí. Aplikace vyniká v oblasti automatického enrichmentu metadat a flexibility exportů. Pro běžného uživatele s menší až střední sbírkou filmů představuje výbornou volbu bez nutnosti komplexních řešení typu Plex nebo Emby.

Doporučuji pro: domácí archiváře, filmové nadšence a správce menších mediálních serverů.

↑