Skip to content

Latest commit

Β 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 CineMatch

Python Streamlit Scikit-learn License

An AI-powered Content-Based Movie Recommendation System built using Machine Learning, Streamlit, and the TMDB API.


πŸ“Œ Overview

CineMatch helps users discover movies similar to the one they love by analyzing movie content instead of user ratings.

Using content-based filtering and cosine similarity, the system recommends the five most similar movies from a dataset of over 4,800 movies. Each recommendation is enriched with live information from the TMDB API, including posters, ratings, genres, runtime, director, language, and movie overview.


πŸš€ Live Demo

πŸ“Έ Preview

Home Page

Home

Search Movie

Search

Movie Details

Movie Details

Recommendations

Recommendations


✨ Features

  • πŸŽ₯ Content-Based Movie Recommendation
  • πŸ” Search from 4,800+ Movies
  • ⚑ Fast Recommendations using Cosine Similarity
  • πŸ–ΌοΈ Movie Posters from TMDB
  • ⭐ Movie Ratings
  • 🎭 Genres
  • 🎬 Director Information
  • πŸ‘₯ Top Cast
  • 🌐 Original Language
  • πŸ“… Release Year
  • ⏱ Runtime
  • πŸ“ Movie Overview
  • 🎨 Modern Streamlit Interface
  • πŸ“± Responsive Layout

🧠 Recommendation Workflow

User selects a movie
        β”‚
        β–Ό
Content-Based Filtering
        β”‚
        β–Ό
CountVectorizer Features
        β”‚
        β–Ό
Cosine Similarity
        β”‚
        β–Ό
Top 5 Similar Movies
        β”‚
        β–Ό
TMDB API
        β”‚
        β–Ό
Movie Posters & Details

πŸ› οΈ Tech Stack

Category Technology
Language Python
Framework Streamlit
Machine Learning Scikit-learn
Data Processing Pandas
API TMDB API
Model Storage Pickle

πŸ“‚ Project Structure

CineMatch/
β”‚
β”œβ”€β”€ app.py
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ styles.css
β”‚   └── no_poster_avail.jpg
β”‚
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ tmdb_5000_movies.csv
β”‚   └── tmdb_5000_credits.csv
β”‚
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ movies.pkl
β”‚   └── similarity.pkl
β”‚
β”œβ”€β”€ notebook/
β”‚   └── CineMatch.ipynb
β”‚
β”œβ”€β”€ screenshots/
β”‚   β”œβ”€β”€ home.png
β”‚   β”œβ”€β”€ search.png
β”‚   β”œβ”€β”€ recommendations.png
β”‚   └── movie_details.png
β”‚
β”œβ”€β”€ utils/
β”‚   └── tmdb.py
β”‚
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── .env.example

πŸš€ Installation

Clone the repository

git clone https://github.com/harsh8767/CineMatch.git

Navigate to the project

cd CineMatch

Install dependencies

pip install -r requirements.txt

Create a .env file

TMDB_API_KEY=your_tmdb_api_key

Run the application

streamlit run app.py

🧠 Machine Learning Workflow

  • Load TMDB Movie Dataset
  • Data Cleaning & Preprocessing
  • Feature Engineering
  • Tags Generation
  • Text Vectorization using CountVectorizer
  • Cosine Similarity Calculation
  • Save Model using Pickle
  • Build Interactive UI with Streamlit

πŸ“Š Dataset

This project uses the TMDB 5000 Movie Dataset, consisting of:

  • TMDB 5000 Movies Dataset
  • TMDB 5000 Credits Dataset

⚠️ Known Limitations

  • Uses only content-based filtering.
  • No personalized user recommendations.
  • Requires a valid TMDB API key.
  • Recommendations are limited to the dataset.

🌟 Future Improvements

  • ❀️ Favorites
  • πŸ“š Watchlist
  • πŸ‘€ User Authentication
  • 🎬 TV Show Recommendations
  • 🀝 Collaborative Filtering
  • πŸ”₯ Hybrid Recommendation System
  • πŸŒ™ Dark / Light Theme Toggle

πŸ™ Acknowledgements

  • TMDB API
  • TMDB 5000 Movie Dataset
  • Streamlit
  • Scikit-learn
  • Pandas

πŸ‘¨β€πŸ’» Developer

Harsh Chavan

Computer Engineering Graduate

GitHub: https://github.com/harsh8767


πŸ“œ License

This project is licensed under the MIT License.

About

AI-powered content-based movie recommendation system built with Python, Streamlit, Scikit-Learn, and the TMDB API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages