Ahh, I hate it when an awesome piece of open-source software that I use regularly is discontinued.
Its always that little bit worse when obsolescence is forced on a project that is popular and ticking along nicely.
But that’s exactly what’s happened to Spotify Web Player for Linux.
Spotify Web Player for Linux Discontinued
Spotify Web Player for Linux is — or was? — an Electron-based app takes — took? — the regular Spotify Web player, wrapped it up in desktop clothing, tidied up its interface, and made various parts of the UI toggle-able.
The app integrated the Spotify web player with the Unity Launcher, the Ubuntu Sound Menu, media keyboard keys, and served up native desktop notifications on track changes.
In short it provides a better experience than the stock browser-based player offered by Spotify itself.
Now, I accept that choosing to build an open-source tool around a third-party, closed-source service is a fairly dicey move to begin with, and that the gamble may not pay off.
The rub here is that this unofficial app was a near-perfect replacement for the official (but often buggy) Spotify for Linux app.
And now it’s no more.
Spotify and DRM
Matthew James, the developer of the Spotify Web Player for Linux app, has taken to his blog to explain that he will no longer be continuing to develop it.
And it’s because Spotify is moving its web player “to a more secure model by tying in their DRM and Spotify Connect protocols [and] taking their software more towards a server-based implementation,” explains James.
“Most of the move in Spotify has been with using DRM content, more specifically Widevine and also the use in their Spotify Connect protocol. Beforehand, in the old player, the user would be able to control the player in their browser by using a socket that would use many iframes in different JS contexts (playback, playlist information, etc) connecting to a server that would authorise the requests and send responses for the client to go through, process the data, show it to the user and control playback”
“This would use the socket to control the state of the music by controlling the Adobe Flash instance remotely using bridges. They would then use an encrypted music file hosted on their server (rather than directly sending over bytes) that the player would play.”
But that is changing, says James, And the result is a Spotify web experience more tightly controlled by Spotify using new APIs that savvy developers can’t leverage or manipulate.
If you’re a developer interested in the technical why’s and how’s behind this decision I definitely suggest you check out James’ full blog post, replete with footnotes.