The SDK strikes back !

Songs Skipping on Spotify Web Playback SDK

widevine licensing related, but widevine fault’s probably-not-so

After having successfully (at least initially) with the help of castLabs Electron distribution, I find myself peering again into the void of software development errors.

Using the same I used for my previous stories, I am able to get a Ready with Device ID connection message to the SDK. Nothing but Fair Winds and Blue Skies from there on, right?

Not so much. After manually switching the playback device from my main Spotify application to the Quick Start example, the audio starts playing in the example application (castLabs Electron), but the songs also start skipping after 1–3 seconds on the main Spotify application.

A closer look at the console doesn’t reveal good news, and it seems to be related to widevine:

Each error causes songs to skip
A closer look at the errors

From the network tab, I can see that the SDK (index.js) loaded by the Quick Start example is presenting an HTTP 500 response from their widevine-license API endpoint:

index.js:9 POST [token] 500

A closer look at the network inspection tab we can spy a widevine error:

{errorMsg: "widevine error"} errorMsg: "widevine error" }

There’s also another error that might or might not be related.

I think it’s same to assume jssdk stands for JavaScript SDK, meaning that’s the Playback SDK itself.

The HTTP 202 response might be a significant breadcrumb for troubleshooting, but ultimately not something I can immediately fix since it’s coming from their own code. From :

The HyperText Transfer Protocol (HTTP) 202 Accepted response status code indicates that the request has been accepted for processing, but the processing has not been completed; in fact, processing may not have started yet.

If this was strictly a widevine implementation error in castLabas Electron, you’d think you’d get the same error over at the , when using the Sintel manifest for widevine CDM.

But there is no error when viewing the Sintel example in the Shaka Player demo page, which again, uses widevine.

This lends the suggestion that this is strictly a Spotify SDK issue.

Over at Github

.

Spotify has ceased operating it’s Github issue queue and moved over to a more obscure “forum” over at .

This (just a week ago). So yeah, all that helpful content on the that some developer crafted with love — gone.

A perusal through the forums only two pages of issues don’t show the same issues that were recently open over at Github.

In particular this issue:

There are no replies from the Spotify staff on that issue. Since they moved from Github I wouldn’t hold my breath on seeing any activity there.

Next Steps

.

So I think I’ve done so far everything that can be done to integrate the Web Playback SDK. The allure of being able to construct say — a track position slider, or change the track information an application shows with very low latency gave me the motivation to sink some decent time into the effort.

However, given that:

  1. I’m not the only one having the issue;
  2. Spotify’s questionable move to use a closed forum requiring dedicated login credentials instead of using the more community-friendly Github;
  3. The new forum being less than a month old (less community developers);
  4. The HTTP 500 error is coming from their own end, the SDK itself, even when the SDK validates that it’s properly loaded and authenticated;

Gives me the feeling that moving forward I’ll have to move to use their more proven, arcane, and higher latency APIs that are not in beta but require the developer to set up his own polling mechanisms via setInterval() to check the status of a Spotify player’s current state using HTTP repeated requests — something that the “new” Web Playback SDK attempts and fails to do after three years of public beta availability.

Goodbye Spotify’s Web Playback SDK ?!?

Goodbye!

Organic, fair-sourced DevOps and Full-Stack things. This is a BYOB Establishment — Bring Your Own hipster Beard.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store