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
FlixMood - Because every mood deserves the perfect movie!