Inspiration
As someone who listens to a lot of music, I'm always looking to find new artists and songs that I can add to my rotation. While streaming services like Spotify and YouTube Music have algorithms with similar goals, I wanted to create a system that didn't require users to listen to their music through these services in order to get recommendations.
What it does
Vibe is a simple content-based music recommendation system that provides a way to discover and listen to artists that you might like all on a simple webapp. It takes a list of artists and optionally songs as input and generates a list of songs organized by artist with an interactive Spotify Embed for each song.
How I built it
I created the recommendation algorithm using Pandas and SciPy and the web application using Streamlit. Recommendations are generated by the algorithm by selecting the songs with the smallest Euclidean distance from the given input.
Challenges I ran into
From the start of the project, I wanted to include over a million songs in my comparison dataset. This required experimenting with various optimization techniques for the data to fit in memory and for the algorithm to run in a reasonable timeframe.
Accomplishments that I'm proud of
I'm quite proud that I was able to use nearly the entire dataset of over a million songs and fifty thousand artists. I also find that the system performs better than I expected based on my subjective testing and I'm happy that it's helped me discover new artists.
What's next for Vibe
Right now, the dataset is limited to songs released between 2000 and 2023. I would like to add additional datasets for previous eras of music, along with using the Spotify API to regularly update the dataset with newly released songs so that that it can stay up-to-date.

Log in or sign up for Devpost to join the conversation.