Discovering your Music Taste with Python and Spotify API | by 👩🏻‍💻 Kessie Zhang | Towards Data Science

It’s almost the end of 2020! If you have been using Spotify for years, you probably know at the end of each year, Spotify will provide premium users personalized insights, such as your favorite songs and artists, and how much time you spent on the services, etc. As a data scientist, I wanted to take a look at all the songs’ audio features from the Discovery Weekly playlist and see what music features I enjoy the most based on my listening history on Spotify.
If you are new to API, you probably are wondering what an API is and does. In short, you can think of API as a shortcut into a web service’s database. It allows programmers to send and receive data without giving them full permission on the entire database. Check out Spotify Web API documentation to know more about what you can do with the API. In the following,
To get started, you will need to log into your Spotify account or create a new Spotify account. Then you can go to your dashboard page.
Now you can select create an app. Once this is done, you will receive both client ID and client secret ID.
Although we’re not trying to create an app, we will need this client ID to access the same data.
In this article, I wanted to extract the data from all the songs in my Discovery Weekly playlist. Feel free to create your own playlist if you want to work on a different playlist data instead.
Here’s how you can get the playlist’s id:
The Spotify URI should look something this: spotify:playlist:xxxxxxxxxxxxx.
Spotipy is “a lightweight Python library for the Spotify Web API.” With Spotipy, we can get full access to all of the music data provided by the Spotify platform. It’s very simple to use. You can install the package using this command.!pip install spotipy.
This is what the data frame looks like.
As shown below, some features are very small while some features are very big. In this case, taking the average values of all the features might not be immediately comparable. Variables that are measured at different scales do not contribute equally to the analysis and might end up introducing biases. We need a way to apply feature scaling and compare the data points.
I decided to use normalization, which is a scaling technique in which values are shifted and rescaled so that they end up ranging between 0 and 1. It is also known as Min-Max scaling.
from sklearn.preprocessing import MinMaxScalermin_max_scaler = MinMaxScaler()music_feature.loc[:]=min_max_scaler.fit_transform(music_feature.loc[:])
Radar charts are the most effective when they are comparing various features. Based on the radar chart, you can tell I am a fan of acoustic music! 🎼🎹
Interested in making your own music taste radar chat? Follow the code below!
There you have it! Now you know how to extract any data using Spotify's API, Python, and Spotipy. For the next step, we could use different ways to analyze and visualize Spotify’s data, such as building your own Spotify’s Recommendation Engine, visualizing your music taste over time, etc. I hope you find some inspiration here. And please, feel free to share your exciting project ideas in the comment section. Until next time, happy learning! 👩🏻‍💻
If you find this helpful, please follow me and check out my other blogs. ❤️