Inspiration

Let's face it. Spotify's recommended playlists are mediocre at best. Discover Weekly's barely have anything Discover-worthy. Spotify recommends the same songs you already listen to, over and over again, topped with a bunch of promoted tracks that you may or may not like. This is the reason behind Spot-on-ify's inception - Spot-on, that's what it aims for.

What it does

It is a simple web-based desktop app that analyses your listening history and recommends a playlist of songs. It requires the user to pick up to 5 songs as seeds, which the Spotify recommendation algorithm will utilise to create a playlist with songs similar to your liking. The reason Spot-on-ify is amazing is that it gets rid of the promoted content and songs from your Liked Songs playlist on Spotify (which is what Spotify bases your weekly/daily playlists off of).

How I built it

I used Python and the Spotify Web API through the spotipy library to create the app. For the GUI, I used the Tkinter library in Python.

Challenges I ran into

I had major trouble figuring out how to do the Authorization part using OAuth in order to get the required scopes for the app to function. After a long struggle, I got it to work. Later I was facing issues with Tkinter with the alignment of text and other elements of the UI. Due to time constraints, I wasn't able to read up much about Tkinter to use it effectively. I just winged my way to create the GUI, which backfired and was causing the problems. With some effort, I was able to overcome that as well.

Accomplishments that I'm proud of

This is my first major project ever, and I'm super glad to see this through till the end. This is a particularly huge achievement for me as I never imagined I'd accomplish this in such a short span of time!

What's next for Spot-on-ify

I'm planning to add some features that allow the user to customize their playlists even more by allowing them to manipulate their recommendations based on individual song attributes like energy, tempo, acousticness and so on. I also plan to try to deploy this as a website and hopefully later write my own recommendation algorithm using ML.

Share this project:

Updates