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
streamlitpandas- 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:
titlerelease_datevote_averagevote_countovervieworiginal_languageposter_pathgenrespopularity
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
- 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?