Archive for category Spotify
At the time when I was coming of age musically, when we listened to music on LPs, the listening experience was very different than it is today. For one, if you didn’t like the currently playing song you had to get out of your chair, walk over to the turntable, carefully pick up the tone arm and advance the needle to the next track. That was a lot of work to avoid three minutes of bad music. You really had to really dislike a song to make skipping it worth the effort. Today, with our fancy iPhones and our digital streaming music subscription services, skipping a song couldn’t be easier. Just tap a button and you are on to the next song. The skip button is now a big part of the overall listening experience. Don’t like a song? Skip it. Never heard a song? Skip it. Just heard a song? Skip it. The Skip even plays a role in how we we pay for music. For most music subscription services if you want the freedom to skip a song whenever you want, you’ll need to be a premium subscriber, otherwise you’ll be limited to a half-dozen or so skips per hour.
I am interested in how people are using the skip button when listening to music so I spent a bit of time taking a closer look at skip data. This and the next blog post or two will be all about the skipping behavior of music listeners. We’ll take a look at how often people skip, whether different listener demographics have different skipping behavior, what artists and genres are most and least likely to trigger skips and more!
This is my first deep dive into Spotify data. The Spotify team has built up a fantastic big data infrastructure making it easy to extract insights from the billions and billions of music plays. For this study I’ve processed several billions of plays from many million unique listeners from all around the world.
What is a skip?
For this study, I define a skip as any time the listener abandons a song before the song finishes. It could be because the listener explicitly presses the skip button, or it could be that they searched for and started another song before the current song finished, or they clicked on a different song in the playlist. For whatever reason, if the listener doesn’t make it to the end of the song, I call it a skip.
How often do people skip?
The first and most basic question to answer is: How often do people skip?. Given that skipping is so easy how big of a part does skipping play in our listening. The answer: A lot!
Here are the numbers. First, lets look at how often a song is skipped within the first five seconds of play. I call these quick skips. The likelihood that a song will be skipped within the first five seconds is an astounding 24.14%. Nearly one quarter of all song plays are abandoned in the first 5 seconds. The likelihood that a song will be skipped within the first thirty seconds rises to 35.05%. The chance that a song is skipped before it ends is a whopping 48.6%. Yes, the odds are only slightly better than 50/50 that a song will be played all the way to the end.
|Skipped in||Likelihood of skip|
|First 5 seconds||24.14 %|
|First 10 seconds||28.97 %|
|First 30 seconds||35.05 %|
|Before song finishes||48.6 %|
The following plot shows the average skipping behavior for millions of listeners and billions of plays. The plot shows the rather steep drop off in listeners in the early part of a song when most listeners are deciding whether or not to skip the song. Then there’s a slow but steady decline in listeners until we reach the end of the song where only about 50% of the listeners remain.
The next plot shows the average skipping behavior within in the first 60 seconds of a song. It shows that most of the song skips happen within the first 20 seconds or so of the song, and after that there’s a relatively small but steady skipping rate.
We can also calculate an overall skip rate per listener – that is, the average number of times a listener skips a song per hour.
Average listener/skips per hour: 14.65
On average a listener is skipping a song once every four minutes. That’s a whole lot of skipping.
Who is doing all that skipping?
Do different types of listeners skip music at different rates? Lets take a look.
Skipping rate of male listeners: 44.75%
Skipping rate of female listeners: 45.23%
There seems to be little difference as to how often men and women skip.
Desktop skipping rate: 40.1%
Mobile skipping rate: 51.1%
When we are at our desktops, we tend to settle into longer listening sessions and skip less, while when we are mobile we spend much more time interacting with our music.
This plot shows the skipping rate as a function of the age of the listener. It shows that young teenagers have the highest skipping rate – well above 50%, but as the listener gets older their skipping rate drops rather dramatically, to reach the skipping nadir of about 35%. Interestingly, the skipping rate rises again for people in their late 40s and early 50s. I have a couple of theories about why this might be. The first theory is that the skipping rate is a indication of how much free time a person has time. Teenagers skip more because they have more time to devote to editing their music stream, whereas thirty-somethings, with their little kids and demanding jobs, have no time to pay attention to their music players. The second theory, suggested by Spotify über-analyst Chris Tynan, is that the late-forties skipping resurgence is caused by teenagers that use their parent’s account.
When do people skip the most?
The following plot shows the skipping behavior over a 24 hour period. To create the plot, I analyzed the listening behavior for UK residents (which are conveniently confined to a single timezone) over several weeks.
The plot shows that the skipping rate is lowest when people are paying less attention to music – like when they are asleep, or at work. Skipping behavior peaks in the morning hour as people start they day and start to head into work and again at the end of the day when they are at home or out socializing with their friends. The plot shows the time of day when people tend to have the most attention to devote to hand-curating their music stream. When people are sleeping or working, their skip rate goes down.
In the next plot, below, the skipping rate is overlaid with normalized song plays. It is interesting to see that the highest skipping rates do not coincide with the peak music playing times of the day, but instead is aligned with the times of day when rate of change in plays is the most.
Skipping behavior by Day of the Week
The following plot shows the average skipping rate per day of the week. The skipping rate is higher on weekends, showing, once again, that when people have more spare time, they are more apt to curate their listening sessions by skipping tracks.
The Skip really has changed how we listened to music. It plays a significant role in how we interacts with our music stream. When we are more engaged with our music – we skip more, and when music is in the background such as when we are working or relaxing, we skip less. When we have more free time, such as when we are young, or on the weekends, or home after a day of work, we skip more. That’s when we have more time to pay attention to our music. The big surprise for me is how often we skip. On average, we skip nearly every other song that we play.
Skipping has become an important part of how we listen to music. It is no surprise then, that ‘unlimited skipping’ is a feature used to entice people to upgrade to a premium paid account. And it may be one of the reasons why people would switch from a service that doesn’t offer unlimited skips even on their premium service to one that does.
Coming soon: Look for my next post that will look at which genres, songs and artists get skipped the most and the least.
On the very same day that Spotify announced its acquisition of The Echo Nest they released a brand new Spotify iOS SDK. Trying this new SDK out has been high on my priority list, and finally after a few crazy weeks I’ve had a bit of time to take it for a test drive. I walked through the beginner’s tutorial and was up and running with an iOS app running in the simulator in about 30 minutes. Easy Peazy! The bit that took the longest was setting up the token exchange service. This is a service that you need to run on your own server as part of the authentication process. The tutorial provides such a sample service written in ruby, however I’m not a ruby programmer so I had to go through all the gyrations of installing ruby, figuring out how to install gems and getting the required gems installed. Once I had everything installed it worked fine and I was able to get the tutorial running. However, I figure that I’ll be working with the iOS SDK a great deal in my future, and I’d rather not have to deal with a ruby server every time I create a new app, and so for my Sunday morning programming project I’ve re-written the ruby swap service in python. The service is on github here: spotify_token_swap
If you are going to be using the new Spotify iOS SDK to create apps and you’d rather deal with python than ruby, then you might find it useful.
I work for Spotify now – so for my Sunday morning programming project I thought I’d write a simple Spotify App that uses The Echo Nest API to create playlists based upon a seed song. I’ve done this before, but the last time was a few years ago and the Spotify Apps API has changed quite a bit since then, so I thought I’d use this as an opportunity to freshen my understanding of the Spotify API as well as to demonstrate how to write a Spotify App that uses The Echo Nest API.
It did take me a bit of time to get the hang of the newer Spotify Apps API. It has changed quite a bit since I last used it and many of the examples that I relied on in the past, like Peter Watt’s excellent Kitchen Sink app, use an older version of the API. The new version has some significant changes including a nifty new module system along with a new approach to managing long-running queries that relies on promises. Once I got the hang of it, I decided that I like the new version – it makes for cleaner code and a much more efficient app since much less data needs to be moved around.
The app is on github – to use it you need to sign up for a developer account on Spotify and follow the rest of the Getting Started instructions (this means if you are not a developer, you’ll probably not be able to use the app).
The Spotify Apps API makes it super easy to be able to create apps that run inside Spotify. Its a very familiar programming environment for anyone who has done web programming. You can use all of your favorite libraries from jQuery to Lo-Dash to create really compelling apps that sit on top of the millions and millions of tracks in the Spotify catalog. However, unlike a web app where anyone can publish their app on the web, to publish a Spotify App you have to submit your app to the Spotify App approval process and only apps that Spotify approves are published. Spotify sets a high bar for what ultimately gets approved – which keeps the quality of the apps high, but also means that hacks and experiments built on the Spotify Apps platform will likely never be approved for release to the general public. It’s a difficult balancing act for Spotify. They’ve built the ultimate music hacking platform with this API, but if they open the doors to every music hack, they will ultimately dilute the listening experience of the user – like so other many App stores that are flooded with garbage apps, if they publish every app and hack then Spotify listeners would be inundated with the musical equivalent of flashlight and fart apps. With the approval process, Spotify essentially says ‘the listener comes first’ which is the right choice. Still, as a music hacker I do wish it was easier to publish rich music apps built on the Spotify platform. Luckily Spotify is committed to building an active and vibrant developer ecosystem so I don’t expect they we will be standing still.
Update 3/24/14: – I’ve added the ability to save these playlists back to Spotify, so you can take the Echo Nest radio playlists with you.
Second update 3/24/14 – note that Spotify’s recent announcement that they are closing app submissions means that you won’t be able to submit apps for publishing anymore, but you should be able to still create your own.