ITEM

Comprehensive reviews of the film database

Version 0.2.2.30, 124; January 2026
SUMMARY

๐Ÿ“‹ Application overview

MFilmDB is a desktop application for managing personal film collection, developed in Python using modern GUI framework tttbootstrap. The application is designed for users who want keep track of their films stored on local disks, NAS servers or external media.

TARGET

SECTION Technology

๐Ÿ

Python 3.10 +

Modern Python with type anotages, async operations and rich library ecosystem.

๐ŸŽจ

ttkbootstrap

Modern GUI look with 20 + themes (darkly, flatly, superhero, cyborg...).

๐Ÿ—„๏ธ

SQLite

Reliable embedded database without external server.

๐ŸŒ

API integration

TMDb, OMDb, CSDD, FDb for automatic metadata download.

โš™๏ธ Functions and options

โ€ข Management of the film database

The core of the application is a robust database system built on SQLite:

โ–ถ Name parsing and new content 'APP _ DATA'

In recent modifications the module was significantly expanded APP_DATA/logic.py - now contains a complex function parse_filename_metadata(filename)which extracts and normalizes the following information directly from the filename:

This logic improves the accuracy of the automatic assignment of records to films and facilitates batch processing of large libraries.

Additional added and newly watched files / directories in APP_DATA:

SECTION Localization (in detail)

Note to localizations: The full list of supported languages is defined in APP_DATA/localize_data.py. In the current version, these are: CZ, EN, SK, DE, PL, NL, FR, IT, FI, JA, ES, PT, RU, VI, NO, DA, ZH, HI, FA, TR, UK, HU, TA (23 languages in total).

How it works (layman): The user interface has translated texts for buttons, dialogues and progress phases - just select a language in the settings and applications will try to use the available translations.

Technically: Localization are saved as maps key โ†’ translation in APP_DATA/localize_data.py. The new phases of the process (phase _ 5,..., phase _ 100) are translated for 23 languages; adding another language is simple: add a dictionary with keys for new locale and update the registers in the file.

Overwriting and supplementing translations: For local modifications, create a file with renamed keys in the user profile folder or use tools in DEV_TOOLS/LocalizeAdder_QT.py.

Note for inventory: I also noticed more (previously untracked) files in the repository tree - for example flags in w20-webp/ and icons in the project root (icon_vav.ico). I recommend that you have these resources centralized and possibly add a manifesto with recommended icons for export templates.

Online enrichment metadata

The application supports automatic metadata download from many sources. Enrichment combines data from multiple providers with fallback logic and confidence scores - that is, if one provider does not have information, the application will try another and select the most reliable value.

Technical Note: For some providers (TMDb, OMDb), the API key is required; for others (CSDD, FDb) are obtained by scraping. Rate- limits and timeouts are respected and applications implement retry / backoff strategy.

The resources provided shall include:

Source Data type Note
TRADING Metadata, covers, evaluations Requires API key (free)
INTRODUCTION IMDb data, posters Requires API key (free limited)
INDICATOR Czech reviews, reviews Web scraping
โ™ช Czech Metadata Web scraping
United Kingdom Online Subtitles by SDI Media Group Web scraping
Google Images Covers Image backup source

Note: Online enrichment does not cover all public resources - for example specialized catalogues for video clips (IMVDB) may require a special provider. In this version, IMVDB is integrated for music videos, but is limited to files found in folders marked as Video clips (configuration: sources.imvdb). If you need other specialised resources (e.g. local or paid API), add provider to APP_DATA ('search _ *' or wrapper function) and register it in the source settings.

How to decide which provider to use: the application selects according to priority (settings), availability of API (keys), and according to content type - e.g. for video clips, the IMVDB shall be used primarily.

โ€  Image Management (covers)

Covers are important for the application - they are displayed in tables, details and exports. The application uses a combination of local search and online download:

  1. Locally covered search - first checks the directory of the film (files with names as cover. *, poser. *, folder. *) and then user-defined directory ('covers _ path' or specified in the settings).
  2. SimpleCoverDownloader - if a local cover is not found or the user requests an update, it will download the covers from online providers (TMDb, OMDb, Google Images, etc.).
  3. Storage - downloaded / selected covers are saved to folder covers/ (or in the way defined in 'config.json') with formatted names: {tmdb_id|imdb_id|normalized_title}_{year}.{ext}. Example: tt0111161_1994.jpg or Shawshank_Redemption_1994.webp. This ensures consistency and easy identification.
  4. Hash & cache - each saved cover is supplemented by 'cover _ hash' in DB for detecting changes and for re-use without unnecessary download.
  5. Formats and sizes - recommended formats are WebP or JPG; recommended minimum dimensions for detailed view: 600 ร— 900px (portrait) or 1280 ร— 720px (landscape). The application generates smaller thumbs for lists and thumbings.

User Tip: For large collections it is recommended to centralize covers in a separate directory and allow automatic processing (auto _ process _ covers) - this will speed up export and prevent duplicating files.

ITEM Export and Import

Flexible export and import options:

๐Ÿ“Š

CSV Export

Simple text format for spreadsheets.

๐Ÿ“‹

JSON Export

Structured data for further processing.

๐Ÿ“ˆ

Excel Export

XLSX with embedded cover thumbnails.

๐ŸŒ

HTML Export

7 + templates including respondent cards.

๐Ÿ“ฆ

XML Export

For advanced integration.

๐Ÿ—œ๏ธ

ZIP Archive

HTML + all covers in one package.

HTML Export Templates

There are 7 predefined templates for HTML export:

  1. 01 _ default.html - Basic table appearance
  2. 02 _ dark _ modern n.html - Dark modern theme
  3. 03 _ netflix _ style.html - Netflix style catalog
  4. 04 _ retro _ cinema.html - Retro film look
  5. 05 _ minimalist _ light.html - Light minimalist design
  6. 06 _ film _ cards.html - Grid of responsive cards with sorting and filtering
  7. 07 _ accessible _ cards.html - Accessible cards for the weak-sighted (large text)

--Watchdog - automatic tracking

Integrated file system watcher for automatic detection of new films:

ยท Advanced search and sorting

โ€ก Configuration and settings

SECTION 1

Database is implemented using SQLite and file mfilmdb.sqlite3. The following are the main points and recommendations:

SECTION Editing and mass modification

Non-cooperating exporting producers

Export functions cover most of the applications - details below:

โ€ข Additional applications - evaluation and recommendations

1) BBB _ Browser (APP _ DATA / BBB _ Browser)

Purpose: tool for viewing generated outputs / backups (BBB = Browser / Backup Builder). Often used to check offline exports.

2) ThemeAdder (APP _ DATA / ThemeAdder _ GUI.py)

Purpose: graphic addition and modification of topics for tttbootstrap.

3) ISP Generator (APP _ DATA / ISP _ Generator _ GUI.py)

Purpose: Poster generator / thumbnails and templates for galleries.

โ€  Time stamps changes in the review

Shows when the individual parts of the review have been updated and how up to date this document is:

Date / Time (UTC)What was added
2025-12-30 18:00Initial reviews of structure and functions
2026-01-01 10:12Expansion of parse _ filename _ metadata and KNOWN _ ACTORS / UPLOADERS
2026-01-02 09:45Adding APP _ DATE / GFX overview (flags) and BBB _ Browser references
2026-01-02 12:30Details of database, exports, editing and recommendations for ThemeAdder / ISP

Review updated: 2026-01-02 12: 30 UTC

๐ŸŽจ User interface

Total design

Application uses ttkbootstrap - modern wrapper above the Tkinter, which provides 20 + professional topics inspired by Bootstrap CSS framework. The user interface is consistent, responsive and visually welcoming.

SECTION 3

There are categories of topics:

โ€ข Application layout

Zone Description
ITEM Menu Bar File, Modifications, Tools, Settings
โ€ข Search Panel Quick search + Advanced filters
The main table Treevid with movies, shift by clicking on the header
enough data to be used for the purpose of the verification of the data quality of the data; Preview of cover, metadata, action buttons
The status bar Number of movies, progress bar, status messages

Driving

SECTION Localization

The application supports a multilingual interface. The full list of languages is defined in APP_DATA/localize_data.py:

ASSESSMENT

โญ Evaluation

Overall evaluation

โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜…โ˜† 8 / 10 83%

Interpretation of evaluation: We internally store ratings as' rating _ stars' (integer 1-10) and 'rating _ percentage' (0-100) for exports and comparison between providers. When importing evaluations from external sources (e.g. TMDb / CSDD) application will normalize to 1-10 scale; e.g. 4.5 / 5 โ†’ 9 / 10, or 82% โ†’ 8 / 10 rounded off.

Technically: 'rating _ stars' is an INTEGER column, 'rating _ percentage' is an INTEGER (0-100). For statistics and average scores, the weighted average is used by 'votes'.

ITEM

  • Complex functionality for film management
  • Modern and customizable look
  • Integration with many metadata resources
  • Flexible export to many formats
  • Watchdog for automatic import
  • Offline operation (does not need internet)
  • Support of Czech and local sources (CSDD, FDb)
  • Open source - option to edit
  • Low system requirements
  • Portable database (SQLite)

ITEM

  • Requires Python runtime (or compiled .exe)
  • Some API resources require registration
  • Web scraping can stop working when changing pages
  • No direct integration with PLEX / Jellyfin
  • No mobile version
  • Limited batch editing options
  • The documentation could be more detailed

(b) Assessment by category

Category Evaluation Comment
Navigation Design and Appearance โ˜…โ˜…โ˜…โ˜…โ˜† 4/5 Modern themes, but GUI typical for desktop applications
โ€  Functional โ˜…โ˜…โ˜…โ˜…โ˜… 5/5 Excellent set of film management functions
Features โ˜…โ˜…โ˜…โ˜…โ˜† 4/5 Fast, even with thousands of records
ยท Applicability โ˜…โ˜…โ˜…โ˜…โ˜† 4/5 Intuitive, requires initial setting
* Documentation โ˜…โ˜…โ˜…โ˜†โ˜† 3/5 Basic, missing detailed guide
High quality code โ˜…โ˜…โ˜…โ˜…โ˜† 4/5 Well structured, type anotation, modularity
RECOMMENDATIONS

๐Ÿ’ก Enlargement recommendations

โ€ข Priority improvements

  1. Integration with PLEX / Jellyfin - synchronization of libraries and metadata
  2. Web interface - access to database via browser (Flash / FastAPI)
  3. Mobile company app - basic viewing of the collection on your phone
  4. Batch operations - mass editing of multiple films at once
  5. Statistics and graphs - visualization of collection (genres, years, sizes)

โ€ข Other proposals

Technical recommendations

Conclusion

The MFilmDB is a solid tool for managing the film collection with a rich set of functions. The application excels in the field of automatic metadata enrichment and flexibility of exports. For ordinary users with a smaller to medium film collection, it represents excellent choice without the need for complex solutions Plex or Emby type.

I recommend for: Home archivist, film enthusiasts and administrator of smaller media servers.

โ†‘