Track: Everything but make it you
Description: MoodTunes is a web-based application that generates personalized YouTube playlists based on a user’s emotional state. The platform invites users to enter a short journal entry or sentence describing how they feel. Using the Gemini API for natural language processing, MoodTunes interprets the emotional tone of the input and identifies a keyword that guides the playlist curation. The result is a customized set of songs that either reflect the user's mood or help shift it in a desired direction—whether that's to focus, relax, or feel uplifted.
The inspiration for MoodTunes came from the deep connection between music and human emotion. While traditional streaming platforms recommend songs based on listening history or genre preferences, they rarely take emotional context into account. MoodTunes was created to bridge that gap by offering a more empathetic and responsive music experience. What makes the platform uniquely human is its ability to "listen" to the user—interpreting language the way another person might—and respond with music that matches or elevates the emotional state. It mirrors how people often use music in their daily lives, not just for entertainment, but for emotional support and self-expression.
MoodTunes was developed using a modern web technology stack. The frontend is built with React and React Router to ensure a responsive and intuitive interface. Axios is used for client-server communication. The backend is powered by Node.js and Express, with emotion analysis handled by the Gemini API and music fetched using the YouTube Data API. Playlists are stored in a Microsoft SQL Server database using the mssql Node.js package, and user state is managed through React Context and custom hooks. Together, these technologies allow MoodTunes to deliver an emotionally intelligent and highly personalized music recommendation experience.
Built With
- css
- express.js
- google-gemini-api
- html
- javascript
- mysql
- react
- youtube
Log in or sign up for Devpost to join the conversation.