A content-based movie recommendation system that suggests films based on genre, plot similarity, and user ratings. Built with Python and Streamlit.
- Personalized Recommendations: Get 5 similar movies based on your selection
- Smart Filtering: Filter by genre, release year, and minimum rating
- Rich Movie Details: View posters, ratings, and overviews
- Explore Sections:
- Most viewed movies
- Highest rated films
- Recent releases
- Responsive UI: Beautiful Streamlit interface with dark/light mode support
- Python 3 (Pandas, NumPy, scikit-learn)
- Streamlit for web interface
- TMDB API for movie data and posters
- Cosine Similarity for recommendation algorithm
- CountVectorizer for text processing
- Clone the repository:
git clone https://github.com/yourusername/CineMatch.git
cd CineMatch
- Create and activate virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Create
.env
file and add your TMDB API key:
TMDB_API_KEY=your_api_key_here
- Run the app:
streamlit run app.py
CineMatch/
├── app.py # Main Streamlit application
├── Main.ipynb # Jupyter notebook for model development
├── movie_data.pkl # Processed movie data and similarity matrix
├── requirements.txt # Python dependencies
├── .env.example # Environment variables template
└── assets/ # Images and screenshots