Skip to content

steffthomas/playlist-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎧 Control+Shift+Mood — Mood-Based Spotify Playlist Generator

Control+Shift+Mood is a full-stack web app that lets you generate Spotify playlists based on your emotional journey — from one mood to another (e.g., Calm ➝ Energetic).

Built with Flask, integrated with the Spotify OAuth API, and styled with a clean pastel-glass aesthetic, this app curates songs from a mood-tagged dataset and saves them directly to your Spotify account.


✨ Features

  • 🎵 Generate a Spotify playlist based on a mood arc transition
  • 🧠 Smart song matching using valence and energy vectors
  • 🔐 Secure login via Spotify OAuth 2.0
  • 📀 Automatically saves the playlist to Spotify account
  • 📱 Fully responsive design for desktop and mobile
  • 🎨 Dynamic playlist display with artist/song separation

🧰 Tech Stack

Layer Technology
Backend Python, Flask
Frontend HTML, CSS, Bootstrap 5, JS
API Spotify Web API (OAuth 2.0)
Database CSV Dataset (Bollywood + Pop)
Hosting Render

🔗 Live Demo

👉 (https://moodwave-jxlc.onrender.com/create)]


📸 Screenshots

💻 Desktop View

![Screenshot 1](Screenshot 2025-06-13 172852 ) ![Screenshot 2](Screenshot 2025-06-13 173720 )

📱 Mobile View

Task & Timer Quotes & Footer
Mobile 1 Mobile 2

🚀 How to Run Locally

# Clone the repository
git clone https://github.com/steffthomas/moodwave.git
cd moodwave

# Create and activate a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Create a .env file with your Spotify credentials
touch .env

Your .env file should look like:

SPOTIPY_CLIENT_ID=your_spotify_client_id
SPOTIPY_CLIENT_SECRET=your_spotify_client_secret
SPOTIPY_REDIRECT_URI=https://your-app-name.onrender.com/callback
# Run the Flask app
python app.py

# Then open your browser at:
http://localhost:8888

🔐 Spotify OAuth Setup

To use Spotify login, register an app at Spotify Developer Dashboard and configure:

  • Redirect URI: http://localhost:8888/callback (for local dev) or your deployed Render domain
  • Enable the following scopes:
    • playlist-modify-public
    • user-read-private

👤 Author

Stefy Thomas
GitHub: @steffthomas
LinkedIn: stefy-thomas


📄 License

This project is licensed under the MIT License — feel free to use, share, and remix it.


“Let your playlist follow your mood.”

About

A web app that generates a playlist on Spotify, transitioning your music from how you're feeling now to how you'd like to feel, using valence & energy science. All tracks are pulled using a dataset, matched via cosine distance, and then added to a Spotify playlist with one click.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors