Inspiration

We are aware of how time-consuming and frustrating it can be to update or expand our playlist. We may spend hours and hours browsing numerous tracks yet few of them match our tastes. Inspired by Spotify's Discover Weekly playlist, we decided to design a system that helps people solve this problem.

What it does

Our system provides users with recommended tracks based on their selected playlist. After the users sign in with their Spotify accounts, our system will access their current playlists. Users can choose a specific playlist they wish to update or choose to generate a comprehensive recommendation based on the past play history.

How we built it

We developed the algorithm using Python, Flask, Pandas, and Spotify API and built the user interface with HTML and CSS on visual-studio code. Our system downloads the audio features of the tracks in the selected playlist (or play history) from Spotify API, imports these data into a Pandas DataFrame, compiles the aggregate statistics for each feature, and normalizes them using the min-max approach. Then, it selects the features with the least standard deviation across all features as the target features to feed to the Spotify recommendation API.

Challenges we ran into

Because of the time constraints, we were only able to implement the simplest strategy (the one described above) in generating recommendations. We also did not have time to properly evaluate the relevancy/accuracy of recommendations. The efficiency and security of the system were not taken into consideration.

Accomplishments that we're proud of

We've proud that our system does work. It generates a new recommended playlist based on the selected input playlist or past play history of the users.
We've also proud that we both learned some new skills that we can use in future projects or in our careers.

What we learned

The most important things we learned in this experience are staying positive, collaborating with the teammate, developing new skills, and acquiring knowledge in new fields in a tight period of time.

What's next for Your New Playlist

Initially, we were aiming for a recommender system built on top of machine learning algorithms. We wanted to leverage the power of transfer learning and find a pre-trained model for Spotify recommendations. Due to the time constraints, we were only able to complete a minimal version of the system without the machine learning trained models to support it. We would love to extend the system with such power in the next phase. Our next steps also include optimizing the algorithm to improve recommendation accuracy, addressing the limitations described above in the challenges section, and designing a more artistic and friendly user interface.

Share this project:

Updates

posted an update

Spotify Web API supports tons of functionalities and has great documentation for them. We could have easily extended our webapp by more features with some more simple HTML.

For example in our app, by sending a GET request to (i.e. visiting via browser) /playlists/<PLAYLIST ID>, we would be able to generate a recommendation based off ANY public playlist. Unfortunately, we don’t have a UI for that simple feature, which would be really easy to do.

We could also retrieve ANY USER’s public playlists just by using their username. This would enable us to view our friends’ playlists and generate recommendation for them!

We have also employed the Strategy design pattern for the recommendation strategies. This would make future extensions of more sophisticated recommendation techniques a breeze!

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