e1eb38561a262f178923782735f5507b9ade93de
# Local Movie Database A clean, fast, and fully offline web application to browse and search your personal movie database (built from TMDB data). The app displays movies in a beautiful card-based interface with posters, ratings, release years, full language names, and descriptions. Everything runs locally on your machine. --- ## Features * Beautiful movie cards with TMDB posters * Search by title or keyword * Filter by: * Genre (multi-select) * Language (shows full names like "English", "Japanese", "Greek", etc.) * Minimum rating * Minimum vote count * Year range * "Load More" button — loads 100 movies at a time * No artificial result limit — you can keep loading until all matching results are shown * Fully responsive 4-column layout * Completely local (no data sent online) --- ## Requirements * Python 3.10 or higher * `streamlit` * `pandas` * A prepared SQLite database file named `movies.db` (≈1.4 million movies) --- ## Installation ### 1. Clone the repository ``` git clone <your-repo-url> cd movie-project ``` ### 2. Install dependencies ``` pip install streamlit pandas ``` Or using the requirements file: ``` pip install -r requirements.txt ``` ### 3. Add your database Place your `movies.db` file in the root folder (same directory as `movie_app.py`). **Important:** The database must contain a table named `movies` with at least these columns: * `title` * `release_date` * `vote_average` * `vote_count` * `overview` * `original_language` * `poster_path` * `genres` * `popularity` ### 4. Run the app ``` streamlit run movie_app.py ``` The application will automatically open in your default web browser. --- ## Project Structure ``` movie-project/ ├── movie_app.py ├── movies.db ├── README.md ├── requirements.txt └── .gitignore ``` --- ## requirements.txt ``` streamlit pandas ``` --- ## Notes * The first search may take a few seconds while the genre list is built. * Movie posters are loaded from TMDB's public image server: [https://image.tmdb.org](https://image.tmdb.org) * You can keep clicking "Load More" until all matching results are displayed. * Best performance when the database has been cleaned (adult content removed). --- ## Tech Stack * UI Framework: Streamlit * Database: SQLite * Data Processing: pandas * Data Source: TMDB movie dataset --- ## ToDo * download all posters so they are Completely local instead of fetching each time as i suspect request might get blocked on too many requests * create a python script to grab the latest tmdb DB and add new entries to the movies.db * add indexing to speed up searches, check if theres other speed up options possible * improve the interface, maybe make the search options a single row at the top?
Languages
Python
100%