We’re huge fans of Spotify, but we’ve always hoped there were more filters for our liked songs outside of just album, artist, and song title. What if we could instead filter by what mood, or “vibe” each song represents? Vibe's got you covered.
What it does
Vibe, powered by Wolfram AI, analyzes your musical tastes and gives you a holistic overview of your top Spotify songs. It creates a custom playlist for you from your top songs, based on your current mood.
How I built it
Vibe leverages the Spotify API and our own sentiment analysis to get the musical and lyrical attributes of each top song in your Spotify account. We then trained a machine learning classifier API using the Wolfram Platform (Wolfram One Instant API) to classify the "vibe" of a song according to its attributes. The training data for this classifier was obtained from publicly available Spotify playlists that were tagged with a specific mood.
For the frontend, both React and Bootstrap were used. For the backend, we used the Wolfram One platform for the classifier, while the sentiment analysis was built with a Python/Flask stack, the Genius API to get urls of song lyrics, BeautifulSoup4 to web scrape the lyrics, and vaderSentiment to carry out sentiment analysis.
Challenges I ran into
This is the first time we've used flask and Wolfram, and it was interesting to learn about these new technologies while navigating through the difficulties.
Accomplishments that I'm proud of
Using new technologies!
What I learned
Sentiment analysis, wolfram, flask
What's next for for Spotify
We hope to:
- improve our analysis/machine-learning metrics
- raise the accuracy of our model by introducing 10x more training data
- add more vibes
- build a similar app for Apple Music