Announcements

Help Wizard

Step 1

NEXT STEP

How is the bandwidth used while frequently skipping songs on a radio streaming?

How is the bandwidth used while frequently skipping songs on a radio streaming?

I have done some search here but I did not found an answer to this.

 

When I’m listening to streaming on a radio station and I don’t know the song that’s proposed, as anyone, I might listen to it a little bit for a few seconds until I decide what to do: either continue listening to it more if I seem to like it or skip it for the next proposed song. My concern is when I’m connected with 3G. My data plan is not unlimited and I don’t really like the idea to waste my bandwidth use for stuff that I don’t like and don’t use (listen to).

 

My question is how the songs that I have never listened before (which should not be on cache) are streamed? That also applies at the same time for the app on the other mobiles OS, not just Android.

 

-Is it a progressive download, as used by youtube for example? Meaning that a buffer is made with the progress of the download done a little in advance of where it is played at the moment. This help to avoid dropout in case of small connection outage. The real time bandwidth bitrate used off 3G equal to the bitrate the codec the track is encoded at. This also means that if the song is seek to a point forward, the download will (1) resume at that point at higher bitrate for a quick time to rebuild a buffer of a few seconds and (2) then lower to equal the track bitrate again.

 

-Or (in the worst case and this is what I have concern about) the streaming is done just like any normal type of download of files? All the available bandwidth off 3G is used and the whole song is downloaded after some seconds. That might sound good to avoid dropout on unreliable connection (and in fact it is). But when you listen only to the first 30sec or less of a song to find out that you don’t like it and that you should never listen to it again if proposed later on a radio station, there is no the point of downloading the whole 5min of that songs in my sense. The result is (1) each unwanted songs waste a few megs from your data plan and (2) waste space on the cache to save it too. I’m hoping it’s not the case…

 

…but I think it might be the case. I have done a test. I have listened to a radio streaming for 40min at normal quality (96kbps) and have skipped nearly a quarter of the songs. I have then calculated the data used by the app vs the time pass listening and the average bitrate was more like 135kbps. This is not that bad after all, I can live with it. And I could still disable Gapless playback which (if I’m guessing right) does download the next song (also completely while the previous is still playing???), this could help a little to lower the bandwidth use in some case. But if (only again as what it looks like I have observed) the app really downloads entirely the songs that I just listens for a few seconds, that would prevents me from setting the quality at extreme (320kbps)…

 

Or maybe the result of my test could be explained just with this bug? http://community.spotify.com/t5/Bugs/Android-App-using-a-lot-of-mobile-data/td-p/241958

Reply
5 Replies

No one can give an answer to it?

 

OK then, I did try to find the answer by myself. I have made some monitorings of the bandwidth/network speed use using an Android apps bandwidth monitoring tool. The Spotify app version I was using is 0.5.9.29. These numbers are estimate based on my observation. Maybe someone from Spotify dev team could post to confirm these or correct if something is wrong?

 

When the setting is at Normal Quality audio (96kbps bitrate):

 

1-At the beginning of the song or at 30sec of the end of the last song, the app download only about 1.6MB of the song file (this is a buffer of about 135sec).
2-When the song is at 45sec (or when the user seek further than that), the app download the rest of the song but never more than 5.4MB at a time.
3-In case of a long song (more than 7min), when the buffer is getting lower than about 30-45sec, it will download another part but, again, never more than 5.4MB at a time. And so on until the entire song download is complete.
4-At about 30sec of the end, 1.6MB of the next song downloaded (only when not already in cache). This is not always the case, the download start only at the beginning of the next song sometime.

 

At High Quality audio (160kbps bitrate):

 

1-At the beginning of the song or at 30sec of the end of the last song, the app download only about 1.6MB of the song file (this a buffer of about 80sec).
2-When the song is at 30sec (or when the user seek further than than), the app download the rest of the song but never more than 5.4MB at a time.
3-In case of a long song (more than 5min), when the buffer is getting lower than about 30-45sec, it will download another part but, again, never more than 5.4MB at a time. And so on until the entire song download is complete.
4-At about 30sec of the end, 1.6MB of the next song downloaded (only when not already in cache). This is not always the case, the download start only at the beginning of the next song sometime.

 

At Extreme Quality audio (320kbps bitrate)

 

1-At the beginning of the song or at 30sec of the end of the last song, the app download about 1.6MB of the song file (this a buffer of about 40sec).
2-When the song is at 12sec (or when the user seek further than that), the app download the rest of the song but never than 5.4MB at a time.
3-When the buffer is getting lower than about 30-45sec (this is at near 2:15 in this bitrate), it will download another part but, again, never more than 5.4MB at a time. And so on until the entire song download is complete.
4-At about 30sec of the end, 1.6MB of the next song downloaded (only when not already in cache). This is not always the case, the download start only at the beginning of the next song sometime.

 

Now to answer my question directly: what happen with the data use if we are playing by skipping every song on a radio that we don’t listen to normally (also meaning that they should not be in the cache storage of the device)? It use a lot of data over 3G!

 

Like I said, at the beginning of every song not in cache, 1.6MB of it is downloaded. This is done at the full speed available on your connection. For example, if you get 8mbps of speed over your 3G connection, it takes less than 2sec to download 1.6MB. This mean if you are constantly skipping songs for a period of 1min, looking at the titles until you reach one that you like, you could have used something like 50MB off your data plan by doing this. So be careful with this if you are not on an unlimited plan. The Spotify app is not using a true streaming technique to get and play the songs (i.e. only the audio bitrate is what that’s used on the network connection while listening).

Hey there,

 

Spotify is streaming in little parts in all devices, also in computer, so Unlimited data is better. So if you listen track for a while, only first part of song is downloaded, not whole song. However radio in Spotify keeps repeating same songs over and over, over and over, over and over... AGAIN so keep in mind - better thing is to listen own playlists!!!

 

This because not all listened tracks will be added to Offline mode, so all those overplayed tracks and also skipped tracks in radio, are streamed from Internet until full track is downloaded / you listened track from start to end. Spotify automatically remove tracks from cache if memory is until the end, track is not played for a while etc.

 

I don't know more about this, so this information may be wrong at some point. But this way.

Hey, thank for the reply,

 

I think the way the streaming works need improvement. In the best world, it should work by progressive download exactly like the Youtube flash player. And better still, everything downloaded would be kept in cache, not just the full tracks downloaded, to eliminate the re-download of what have been played before.

 

Or if that is too much complicated to ask, others solutions more simples could be done that would help. Like downloading the tracks in smaller parts than what it seem right now (1.6MB for the first part and 5.4MB max for the rest).  I would do it this way:

 

Parts of 30sec are downloaded. At 96kbps the size of the parts would be 360KB, at 160kbps 600KB and at 320kbps 1200KB. When the play time is at half of the current part (15sec), the player start downloading the next part and this way a buffer of a few sec would always be keep in case of small network outage. The 3G data use will be a lot more near of what we have been listening in the tracks and in what audio quality. It would also be possible to set the size of parts in the setting if we want more buffers for less risk of audio dropout. 

 

This is something that should be posted in the ideas section. I will do it.

Good idea. Post link here, I will add my Kudo.

 

I have Unlimited data, but I wuld appreciate this thing when I'm in poor 3G area... So why I need to download skipped tracks again from Internet 🙂

Suggested posts