Skip to content

Jayasudhandesigner/Content-Recommendation-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 FlixMood - AI Content Recommendation System

Streamlit App Live Demo Python License

Netflix–YouTube–Spotify Style Recommender with Mood-Aware AI Recommendations

🎯 What is FlixMood?

FlixMood is an AI-powered content recommendation system that understands your mood, context, and preferences to suggest the perfect movie or TV show. Just like how Netflix and Spotify personalize your experience!

✨ Key Features

Feature Description
🎭 Mood-Based Recommendations Select your current mood and get personalized suggestions
πŸ• Time-Aware Recommendations adapt to time of day (morning, afternoon, evening, night)
πŸ‘₯ Context-Aware Different suggestions for solo watching, date night, family time, or friend parties
⚑ Energy Matching High adrenaline, relaxed vibes, intense & deep, or light & fun
🎲 Surprise Me! Random pick with a fun balloon animation
πŸ“± Screen Size Tips Smart suggestions based on your viewing device
πŸ”€ Hybrid AI Engine Combines SVD + TF-IDF for optimal accuracy

πŸ—οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                       USER INPUT                             β”‚
β”‚  Mood 🎭  β”‚  Context πŸ‘₯  β”‚  Energy ⚑  β”‚  Filters 🎚️        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                          β”‚
                          β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  AI RECOMMENDATION ENGINE                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚     SVD     β”‚  β”‚   TF-IDF    β”‚  β”‚   Mood Mapping     β”‚  β”‚
β”‚  β”‚ Collaborativeβ”‚  β”‚  Content    β”‚  β”‚   + Time Context   β”‚  β”‚
β”‚  β”‚  Filtering  β”‚  β”‚   Based     β”‚  β”‚   + Energy Boost   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β”‚
β”‚                          β–Ό                                   β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”‚
β”‚              β”‚  HYBRID ENSEMBLE  β”‚                           β”‚
β”‚              β”‚   (Weighted Mix)  β”‚                           β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                         β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚    🎬 PERSONALIZED RECOMMENDATIONS  β”‚
        β”‚    with Match Percentage Scores    β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Technology Stack

Component Technology
Frontend Streamlit with Custom CSS
ML/AI Scikit-learn, NumPy, Pandas
Visualization Plotly, Seaborn
Algorithms SVD (Matrix Factorization), TF-IDF
Dataset Netflix Shows (6,234 titles)

πŸš€ Quick Start

Local Installation

# Clone the repository
git clone https://github.com/YOUR_USERNAME/flixmood.git
cd flixmood

# Install dependencies
pip install -r requirements.txt

# Run the app
streamlit run app.py

Access the App

Open your browser and navigate to: http://localhost:8501

πŸ“Š Dataset

Using Netflix Shows dataset from Kaggle:

  • 6,234 Movies & TV Shows
  • 500 Synthetic Users (for collaborative filtering)
  • 13,000+ Ratings

πŸ“ˆ Model Performance

Metric Value Description
RMSE ~1.38 Root Mean Square Error
Accuracy ~72% Prediction accuracy
Coverage 95%+ Catalog coverage

🎭 Mood Categories

Mood Genre Mapping
😊 Happy & Uplifting Comedies, Family, Animation
😒 Emotional & Moving Dramas, Romance, Independent
😱 Thrilling & Scary Horror, Thrillers, Crime
πŸ€” Mind-Bending Sci-Fi, Fantasy, Documentary
πŸ’ͺ Action Packed Action, Adventure, Martial Arts
❀️ Romantic Romance, Romantic Comedy
πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Family Friendly Kids, Animation, Family
🧠 Educational Documentary, Science, History
😎 Casual & Chill Stand-Up, Reality, Variety

🌐 Deployment

Deploy to Streamlit Cloud (Free)

  1. Push your code to GitHub
  2. Go to share.streamlit.io
  3. Connect your repository
  4. Select app.py as main file
  5. Deploy! πŸš€

Environment Variables

No environment variables required! The app automatically downloads the dataset.

πŸ“ Project Structure

flixmood/
β”œβ”€β”€ app.py                 # Main Streamlit application
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ README.md              # This file
β”œβ”€β”€ .streamlit/
β”‚   └── config.toml        # Streamlit configuration
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ data_loader.py     # Dataset handling
β”‚   β”œβ”€β”€ eda.py             # Exploratory analysis
β”‚   β”œβ”€β”€ collaborative.py   # SVD recommender
β”‚   β”œβ”€β”€ content_based.py   # TF-IDF recommender
β”‚   β”œβ”€β”€ hybrid.py          # Ensemble methods
β”‚   └── evaluation.py      # Metrics
β”œβ”€β”€ data/                  # Generated data
└── models/                # Saved models

πŸ“ License

MIT License - feel free to use and modify!

πŸ™ Acknowledgments

  • Netflix Shows Dataset by Shivam Bansal
  • Streamlit for the amazing framework
  • Scikit-learn community

Built with ❀️ for IIT Project
FlixMood - Because every mood deserves the perfect movie!

About

🎬 FlixMood - Mood-aware AI movie/TV show recommender using hybrid ML (SVD + TF-IDF)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages