Inspiration
We have lots of music in our library, and going through each song to make a perfect playlist for every occasion is frustrating. What if you want to dance, and sing at the same time? Or you want to dance, but you don't want any lyrics messing with the bass? Spot-a-Playlist has got you covered.
What it does
You select two audio attributes that you are in the mood for (danceability, energy, speechiness, acoustic...) and it will query your music library to come up with sets, or clusters, of songs to form a playlist. Based on the intensity you want of the two parameters you provided, choose one to form a playlist.
How I built it
Using the Spotify Web API, the app can get access to a user's tracks. It can also access the audio attributes of each track.
The playlists are created through a machine learning algorithm called k-means. Taking the two parameters provided, it produces clusters from the songs. In other words, it finds the most optimal relation between the songs based on the attributes, and creates a playlist out of them.
Challenges I ran into
Using the Spotify API on Android and Web, and using node.js asynchronously to correctly gather all the music data from the user.
Accomplishments that I'm proud of
Managing to successfully combine the Spotify API with machine learning, and rendering this in Android, as well as creating secure requests with the client tokens.
What I learned
How to make promises in JavaScript and handling node.js's asynchronous behaviour, and implementing a k-means algorithm in Java.
What's next for Spot-a-Playlist
START-UPPP and making the world a better place with music.
Log in or sign up for Devpost to join the conversation.