Spotify Streams


Goal

I have been streaming music on Spotify since more than a decade. I wanted to see if there were any patterns to my streaming habits. Things like

  • How many hours have I streamed (per day/month/year/week/week-day/week-end)
  • What kind of music have I streamed (by artist/genre/track/track-length)

In order to see the pattern, I had to visualise it. The principle behind it is this:

People understand what they see

Because of the instant response of visualising data that is abstract and hard to interpret, Observable’s plot seemed to be the right playground. It is a ‘language’ used to talk to data and the more fluent and comfortable you are in a language, the more you can communicate and undertand and perceive. Javascript has always been my go to language, thus, this seemed comfortable.

Abstract form

Data in it’s raw form is abstract, like anything complex - hard to interpret and perceive at first. This is what my spotify data looked like, from spotify’s API

[
  {
    "ts": 1586699510000,
    "level_0": 1428,
    "index": 1428,
    "Unnamed: 0": 1428,
    "username": "kaizer1v",
    "platform": "iOS 13.3.1 (iPhone11,8)",
    "ms_played": 1207,
    "conn_country": "IN",
    "ip_addr_decrypted": "1.39.146.174",
    "user_agent_decrypted": "unknown",
    "master_metadata_track_name": "Runnin' Down A Dream",
    "master_metadata_album_artist_name": "Tom Petty",
    "master_metadata_album_album_name": "The Best Of Everything - The Definitive Career Spanning Hits Collection 1976-2016",
    "spotify_track_uri": "spotify:track:5yAu4njFSdM47dfsTkQPZ2",
    "episode_name": null,
    "episode_show_name": null,
    "spotify_episode_uri": null,
    "reason_start": "playbtn",
    "reason_end": "unexpected-exit-while-paused",
    "shuffle": false,
    "skipped": null,
    "offline": 0.0,
    "offline_timestamp": 1586367553238.0,
    "incognito_mode": 0.0,
    "city": null,
    "region": null,
    "metro_code": null,
    "longitude": null,
    "latitude": null,
    "year": 2020,
    "month": 4,
    "day": 12,
    "hour": 13,
    "minute": 51,
    "seconds": 50,
    "time": "13:51:50"
  },
  // ...
]

When exploring the data by interacting with it, there are elements of surprise or questions that arise. Here I am trying to understand my listening pattern during the 24 hours of the day. I was curious to know what songs I listened to after midnight until early mornings and on which days were these?

Streaming during the time of the day

time histogram

year-wise streaming spots

The highlighted circles are the top artists being played, which contain the following based on the total number of hours I have listened to them

artists

The visual

illustrated version

Finally I created a visual to communicate stream time and artists. Tried to incorporate Spotify brand’s colours and style into the visual

You can view my entire analysis on observable. You can view the illustrated version on behance. Github repository for the same here too


Headshot of Vivek S

Hi, I'm Vivek. I am a designer from Bangalore. You can follow me on Twitter, see some of my work on GitHub, or read more about me on my website.