Some songs do not play, some songs do play - this occurs across all browsers. I have performed the troubleshooting steps for each browser respectively.
When on a station, the client (browser) auto-skips songs that are broken until it gets to a song that works.
I'm not a web developer, but I've take the liberty of doing a bit of client-side debug that may be helpful to engineering.
I believe the problem is related to one of the URL that pandora loads some data from (not sure what data exactly it's requesting, but the client is unable to play the song when this failure occurs). The problem seems to begin with a request being blocked due to the CORS (Cross-Origin-Resource-Sharing) policy (this is a security feature in modern browsers).
The failing request is to https://t3-5.p-cdn.us/access/?version=5&lid=<UNIQUE-ID>&token=<UNIQUE-ID>.
Monitoring the network activity of the browser when a song does successfully play, I notice that SXMAudioPlayer.js makes a similar request, except that instead of the domain name being "t3-5.p-cdn.us", it's "audio-dc6-t2-1-v4v6.pandora.com", which is obviously works since it's the same domain.
Sometimes a song that failed earlier will succeed, or vice-versa. Sometimes a song will fail during playback. In all cases, it appears to be due to the same CORS issue described above. It seems to load data from the audio-dc6-t2-1-v4v6.pandora.com domain for a while, and then at some point during playback it switches to t3-5.p-cnd.us domain, which kills the song.
I have not been able to identify a pattern regarding when it makes requests to the correct URL vs the broken URL. If I do notice a pattern, I will update this post.
If you'd like me to collect more specific debug information, please reach out.
I tried running chrome with --disable-web-security. This will cause chrome to not block CORS violations, so the requests to t3-5.p-cdn.us succeed (also, I noticed it's not always t3-5 - sometimes it's t3-4, or something else like that, but the domain is always "p-cdn.us").
The song still does not play - the request succeeds, but the server only returns ~30 kB, whereas the corresponding requests to pandora.com return a few MB. Due to the small size of the server's response, I don't think it's actually returning any music data, which is (I think) the intended result, since the corresponding request to the "pandora.com" domain returns a much larger response (~5 MBs), which I assume contains actual song audio. The client will repeat these small requests to p-cdn.us about every half second forever. The web page just says "BUFFERING...", and the song never plays.
Also, I've noticed that songs that previously worked are more likely to work on subsequent requests. The most likely songs to fail are songs from artists that I haven't listened to recently, suggesting that there may be some interplay with some kind of caching mechanism.
... View more