Inspiration
We wanted to create something that blends music and emotion. We wanted to create something that could understand how you're feeling and translate that into the perfect playlist. Music is a powerful mood enhancer, and we thought, why not let AI help pick the vibe?
What it does
Vibelist generates a personalized Spotify playlist that aligns with your current mood. You simply input how you're feeling, and the app uses AI to interpret your emotion and build a playlist that matches the vibe, using both the OpenAI and Spotify APIs.
How we built it
We built Vibelist using Node.js with Express for the backend. The frontend is styled with Bootstrap, HTML, and CSS for a clean and responsive UI. We used the OpenAI API to analyze mood descriptions and generate keywords or themes, which we then used with the Spotify API to create and curate mood-matching playlists. We use FastAPI to connect frontend to backend as well as to test backend.
Challenges we ran into
The SpotifyAPI is very particular with the Access tokens and timeout errors and this is somewhat of a nuisance when trying to build out a product. Integrating the OpenAI and Spotify APIs seamlessly took some troubleshooting, especially around token management and response parsing. Translating natural language mood descriptions into meaningful playlist criteria was tricky as we had to fine-tune the prompts and logic. Getting the UI to work fluidly with the backend and handle async API calls required careful coordination.
Accomplishments that we're proud of
We successfully connected two powerful APIs to deliver a fun and useful user experience. We created a smooth and intuitive app where users can go from mood to music in just a few clicks. We learned how to structure a full-stack application with real-world API integrations.
What we learned
We learned how to effectively work with third-party APIs, including handling OAuth flows and managing rate limits. We gained experience with prompt engineering, which helped us get the most useful and relevant outputs from the OpenAI API. We also learned how to build a responsive user interface using Bootstrap, as well as how to manage asynchronous interactions between the frontend and backend on the web.
What's next for Vibelist
We plan to add user authentication so that users can save their playlists and revisit them later. We also want to expand the mood detection capabilities by incorporating facial recognition or sentiment analysis from longer text inputs. In the future, we aim to allow users to fine-tune their playlists even further by selecting preferences such as energy level or music genre. Finally, we hope to deploy the app for public use and continue improving the user experience based on real-world feedback.
Log in or sign up for Devpost to join the conversation.