3 ms·
I don’t think this is how it works. I haven’t played with the API but I’ve dug around a bit in the source for the Spotify client. More likely, it’s by sending
by bransonf 7y ago
I don’t think this is how it works. I haven’t played with the API but I’ve dug around a bit in the source for the Spotify client.
More likely, it’s by sending a stream of data or otherwise its sending encrypted chunks for which Spotify has a decoder integrated. That’s how the desktop client works at least.
Your prediction seems unlikely to me for the reason that any transmission of unencrypted data like that exposes Spotify to having their whole library scraped.
Not that it’s technically impossible already, but I would say incredibly infeasible.
- Macha 7y agoThe old API (libspotify) did decrypt raw audio data and hand it to the player. This is likely why it was killed (that and an inability to tie usage to apps, only to users). The currently supported SDKs are for web, iOS and Android which perform the decryption via EME or platform specific DRM support. They also require app specific oauth authentication. However, libspotify's playback endpoints still work, likely due to them still supporting older hardware devices (other endpoints, most notably search are now broken). This is ultimately what most open source native clients use, either using archived builds of libspotify (for e.g. Clementine or mopidy) or reimplentations of it (librespot, Spotifyd). Because the new API is so locked down it's likely that open source apps won't ever migrate to it (without the raw audio data they can't integrate it with most of their features), and will have to drop support when the last endpoints supporting libspotify style playback are pulled.
- rzzzt 7y agoSpotify's own web player does make the EME/CDM icon thingy appear in Firefox in the URL bar.
- kingosticks 7y agoMopidy does indeed still use libspotify through our pyspotify Python 3 bindings. Search and everything relating to playlists is broken in libspotify[0] so we use the Web API for this functionality in Mopidy 3 (just released). Spotify's newer browser-only streaming library is useless to us. I believe that librespot (at least one of the implementations) now supports audio from Spotify's new HTTP endpoints, rather than via the 'Mercury' protobuf stuff that libspotify uses. The point being that it might still have a future after Spotify finally kills the remaining parts of libspotify. Disclaimer: I'm a Mopidy developer. [0] https://jodal.no/2016/02/18/guide-to-poor-api-management/ https://jodal.no/2016/02/18/guide-to-poor-api-management/ Edit: oh, and you do need an API key to use libspotify, which Spotify no longer provide. So that kills off any new users from adopting libspotify/pyspotify, even if they could live with the short-commings.