Netflix–YouTube–Spotify Style Recommender with Mood-Aware AI Recommendations
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!
| 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 |
┌─────────────────────────────────────────────────────────────┐
│ 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 │
└────────────────────────────────────┘
| 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) |
# 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.pyOpen your browser and navigate to: http://localhost:8501
Using Netflix Shows dataset from Kaggle:
- 6,234 Movies & TV Shows
- 500 Synthetic Users (for collaborative filtering)
- 13,000+ Ratings
| Metric | Value | Description |
|---|---|---|
| RMSE | ~1.38 | Root Mean Square Error |
| Accuracy | ~72% | Prediction accuracy |
| Coverage | 95%+ | Catalog coverage |
| 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 |
- Push your code to GitHub
- Go to share.streamlit.io
- Connect your repository
- Select
app.pyas main file - Deploy! 🚀
No environment variables required! The app automatically downloads the dataset.
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
MIT License - feel free to use and modify!
- 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!
FlixMood - Because every mood deserves the perfect movie!