@fredrik222 That's good information; I know some of the early services did that, and I know spotify does this as well. I was curious if you download a 192/24 flac that fast, so I did some back-of-the-envelope calculation.
From the article, 192 kHz/24-bit music they allocate 41.9 MB/minute.
Looking through my library, a typical FLAC at 192/24 is about 14 MB for a 5 minute song.
That means that they'll send that song to a user in roughly 3 seconds, assuming the user has sufficient bandwidth.
If you assume a typical home user has a 300 Mb which is (mega Bit) not accounting for the overhead of the IP connection setup that would get you the song in around 3 seconds. So yes, it's very possible they download first. I'll have to try that when I get home this evening.
As a pure guess, I think it's likely they're using SCTP because you can let the protocol handle the error correction and breaking the music into chunks. And then they can start playing as soon as they receive the first chunk of data. This avoids any interpolation of data in the application, and you don't have dropouts waiting for data.
All of this works because music files are tiny, they take almost nothing to move. It doesn't even stress your internal network.
It's far more complicated to stream video because we're talking 2-3 orders of magnitude difference in size.