
Building Spotify’s New Web Player - jbredeche
https://labs.spotify.com/2019/03/25/building-spotifys-new-web-player/
======
parley
I am a paying Spotify customer since 2010 or so and have also spent countless
hours developing software for personal use integrating with Spotify. I've used
e.g. their old (now deprecated) C-library and now rely on the web API.
Therefore I have no qualms on calling them out on some of their hypocrisy.

Many music streaming services have no API:s, and those that do have (to the
best of my knowledge) worse API:s than Spotify. I'm very grateful that they
provide any means of integration. However, that doesn't get them a free pass
to get on as high a horse as they try.

Now for the part where I gripe. They recently created a dedicated site shaming
Apple for, in part, not exposing the same internal
API:s/abilities/possibilities to Spotify as they did to their own and perhaps
some other third party apps. That's pretty rich.

Where is the protocol specification or available-for-everyone library for
creating a Spotify Connect endpoint? Locked behind Hardware Partner
Applications, NDA:s, Evaluation Agreements, New Product Applications, Device
Certifications and Distribution Agreements (yes, all of those, according to
their own site). Talk about subjectiveness and forcing people to jump through
a thousand hoops -- like they accuse Apple of. "and final approvals for
commercial usage will always be left up to the discretion of Spotify and its
partners". Three cheers for transparency and a level playing field.

Where is the web API support for folders, a feature that you clearly use
yourself in the desktop application? The web API has been launched for years
without folder support. This feature is completely private and unavailable to
others. In the GitHub issue about it that they closed with WONTFIX the
motivation was in part that folder support didn't fit well into their REST
API, which is some of the weakest sauce I've had in quite some time. I used
your C library and I know that you implemented folders as "begin" and "end"
markers in the huge, flat playlist list. Perhaps you regret that design
decision, but if that makes it an expensive API call then rate limit it
accordingly. Make it subject to change as you evolve. Just don't close it off
and keep it private for your own apps.

Yes, I'm annoyed. I've been a loyal customer, user, developer and fan for
almost a decade. They get to expose or not expose any API they like, that's
their prerogative. But what they don't get to do is gripe about the
subjectivity and closed off-ness of others if they don't practise what they
preach. I hate hypocrisy.

If you've read this far, I apologize for spouting bile. Time to sleep,
probably.

~~~
themagician
There was a time when Spotify was the underdog—a scrappy music startup
fighting the good fight trying to legitimize streaming. I remember jumping
through hoops to get a prepaid European debit card and using a VPN just so I
could sign up for Spotify back when they blocked US users from using it.

Spotify isn't that company anymore. It's a public company that isn't
profitable and now has to answer to investors every quarter.

They are trying to build a moat around their business. It wouldn't surprise me
at all if they shut down API access entirely. Their investment in podcasting
is another example of an attempt to put a walled garden around content (i.e.
public radio).

Spotify isn't little. Sure, it's not as big as Apple… but literally no one is.
Spotify is a $25 billion company that doesn't care about you or artists. They
care about finding a way to be profitable. That means putting up walls and
ramping up ads.

I think what pisses me of about Spotify is how they still want to pretend like
they are the small startup, full of designers with their cute hand drawn
graphics, being bullied by evil corporate American shills. It's all bullshit.
They are just as corporate now as anyone else.

~~~
nailer
> I think what pisses me of about Spotify is how they still want to pretend
> like they are the small startup, full of designers with their cute hand
> drawn graphics, being bullied by evil corporate American shills. It's all
> bullshit. They are just as corporate now as anyone else.

Fantano actually investigated this: the record labels rejected a higher artist
% of streaming revenue from Spotify in favour of the labels owning more
Spotify shares. Spotify is literally (to the extent of that ownership) the
record labels.

------
mlex
The article seems kind of light; all of the stuff I expected to read was
summarized in the "The Tech Architecture" section, then the article suddenly
ended. It felt like they spent three sections on background information and
only one on details about the new player.

~~~
9935c101ab17a66
Yah I agree. There's almost nothing of interest in this article, which is a
shame because I think it would be really interesting to hear more about the
challenges, process and final product.

------
dirtylowprofile
Their iOS is still slow. I am on a Fiber connection and everytime I open
Spotify it displays “no connection”.

~~~
president
I see this everyday as well. You would think they would have addressed this by
now given how glaring the error message is.

~~~
cruise9
I don’t know if it’s incompetence or ignorance but Spotify has some of the
worst apps going around. Remember the bad old days when the UI didn’t even
support rotation on phones?

~~~
bscphil
It's funny - I haven't tried Spotify in years so I have no idea if it's still
bad - simply because Spotify burned their goodwill with me as a customer
because of how bad their Android app was in the first year or so of their US
launch.

------
altmind
The article does not explain anything on their new app organization, on
challenges they faced when redesigning, does not give any measured metrics.

The whole article can be summed up in a sentence or two:

We've redesigned from plain js and iframes to the stack we used for our TV app
- react+redux, this made the app easier to develop. We also switched from
flash to EME.

------
kevinSuttle
[In which Spotify doesn't actually explain what they did to build the new web
player]

------
gdulli
I was a paying customer until I got too frustrated with the lack of a real
desktop player. Forcing what should be real applications into the browser is
awkward as hell.

~~~
larrik
They're basically the only non-Apple streaming service WITH a desktop player,
though. They even have a Linux client!

~~~
trts
Amazon Music has web player and desktop (Mac/Windows)

~~~
benbristow
Amazon's products never seem to be polished and always lacking loads of
features though.

------
AaronMT
What is not supported In Safari?

~~~
dddddaviddddd
Based on a quick test of the web player in Safari with the user agent set to
Chrome, something with promises is broken in Safari (relative to Chrome, that
is).

~~~
munk-a
Safari is terrible and I applaud all applications that are broken on it, when
Apple breaks down and actually offers a cross-platform version of their
browser for testing then my various things might start working on it... Until
then, if you have an iPhone, download chrome.

~~~
jwr
Ok, so I honestly do not understand this "safari is terrible" thing. I develop
a fairly large web app (it's an inventory control + MRP system for
electronics, [https://partsbox.io/](https://partsbox.io/)) and feature-wise
Safari is on par with Chrome. I have no Safari-specific problems. Speed-wise,
Safari is the fastest at running my JavaScript code (compiled from
ClojureScript).

I have firefox-specific problems, I have Chrome-specific problems, but I don't
remember the last time when Safari caused an issue.

~~~
lern_too_spel
People say Safari is terrible because Safari is the last to support useful web
features. They only _just_ added support for a non-royalty-encumbered video
format. If you are not directly affected by these issues in your own
applications, that's fine, but if you care about the web platform in general,
it's hard to ignore how terrible Safari is.

~~~
jwr
I can understand (sort of) that thinking, but from my very practical point of
view: I care about delivering a working application to my users, who should
have a good experience. This is what they pay me for. And Safari delivers the
best experience of all modern browsers, without any additional effort on my
part (I do not have any Safari-specific workarounds, while I did require fixes
for Chrome, and Firefox causes problems regularly).

------
Dwolb
Two things jumped out to me:

1) The extent to which how Spotify organized as teams completely affected the
technical architecture and user experience. This is a situation where being
deliberate about culture _really_ matters!

2) Spotify feels very lead by engineering with design taking a back seat. You
see this in the post by addressing the experience as more of a collection/list
of features vs. a holistic experience.

~~~
anoncake
Judging by its performance on Android, Spotify does not feel led by
engineering at all. Then again judging by its UX, it cant be led by UX
designers either.

------
superdaniel
Would be nice if they put some work into their Apple Watch app too. Especially
after they made such a big deal out of it with that website.

~~~
aylmao
It's also fair to think that since it's so up in the air if the app will keep
existing or what features they'll even be able to build, they're probably not
sure wether they should keep investing on it or not /:

------
s_y_n_t_a_x
Link to new player: [https://open.spotify.com](https://open.spotify.com)
(built with React)

~~~
altmind
I've been using this player for at least 9 months.

This new player misses a lot of features that old web.spotify.com used to
have.

For example, you used to be able to sort songs by popularity in search
results.

Or you used to be able to start playing artist songs from all the albums.

Now when you "play an artist", all you get is 5 tracks, and to listen for the
rest you have to listen by-album.

------
mromanuk
I’m always waiting for a native Mac App, I love the product, not the Mac
client. Spotify: you can port iOS to Mac now

------
amelius
How does it deal with DRM?

~~~
kingosticks
Their support pages mention widevine and the article states:

> It drops Flash in favor of Encrypted Media Extensions (EME) for music
> playback

Although I thought they did that ages ago.

------
trixie_
I wonder if they're using TypeScript.

