(self-plug here)
If you're interested in web-based music players, I actually author one that's open source. It uses youtube/soundcloud iframes to play the tracks themselves, but allows for syncing playlists across from spotify as well as browsing top charts and syncing libraries between devices.
i made www.muusical.com a few years ago. i haven't been maintaining much lately but I'm still quite interested in meeting people with similar interests.
Seems like spotify and apple music both do the same thing here. the js api creates an iframe to their "embedded player" which is just their full player without a ui which will respond to rpc commands from the page.
Spotify DRM _has_ been cracked before (extraction 320kbps Vorbis streams without recompression), but for obvious reasons there are no ready-made public PoC's.
Yes, the raw AAC / OGG content would naturally break DRM. Spotify, however, has a ton of libraries that allow for you to write your own clients, which honestly allows for an "audio stream" for most purposes if you are able to run an OS. You can write a very simple CLI app that plays Spotify music for example, and Spotify's libraries will handle the DRM.
"Audio stream" to burn to a CD or a tape cassette? Yeah, that's not gonna be supported.
Surely you could redirect the audio once it's been unencrypted by Spotify though? It has to be presented to your systems audio drivers in an unencrypted state eventually. I guess the downside is that you'd have to rip songs at 1x speed.
I wonder if you could spoof the system time provided to Spotify too and have it "play" the music faster than real time.
Libspotify gave you PCM. It's since been deprecated but old app keys still work just fine.
Their current SDKs are only for iOS and android. They do also have a Web player but the DRM for that requires playback through a Web browser i.e. You cannot write a simple CLI app that plays Spotify music.
Spotify is supported by some 3rd party DJing apps which would need access to the PCM stream (pacemaker and I think edjing). However they probably have some kind of secret licencing deal/API access.
This is amazing! One of the main reasons I went with Spotify after 3 yrs of Apple Music is because I moved to use Linux as my primary desktop and I didn't have an Apple Music client there. This is making me reconsider getting Apple Music subscription again!
I'm going to see if there's a Github link or maybe reverse engineer the API and make it into a desktop app (mainly for Media key controls and Desktop integration to be honest).
In the short-term, micro context, like most exclusive Apple apps, it's one more reason to buy Apple devices and lock existing users into upgrading to Apple devices. Switching apps is a hassle, especially if there's no easy ways to migrate data.
In the broader context and rough terms, it's against Apple's interests that web apps in general take off over native apps. In theory, there's no reason web apps shouldn't be as capable as native apps for 90% of workflows (playing music being well in that 90%).
If web apps, at large, take off:
1. The App Store loses relevance, and so Apple loses influence over developers, distribution, and 30% piece of the cake.
2. Apple loses platform lock-in, since web apps run everywhere. It'd be a no-brainer for companies to have one team developing for the web, instead of one for the web and one or two for mobile.
I don't doubt if Apple wanted they could form a team with enough expertise to build solid web apps and make their services gain marketshare, but the experience would either have to be subpar vs native (like iCloud.com is IMO) or solid enough that they would unwittingly prove web apps are equally capable to native apps, and so create demand for more web apps, more progress in that space, and stray away from an advantageous position for them.
Oh, go figure. I stand corrected on my first point about immediate platform lock-in. Longer-term, I still believe Apple is refraining of heavily supporting the web to keep overall control of its platforms.
This is great, thanks! As someone who previously listened to Apple Music on Linux via the Windows edition of iTunes running using Wine in a Docker container (lol), a proper alternative is massively appreciated.
Personally I don't use Spotify because the interface is hostile to people who prefer listening to full albums, and I don't want to support a monoculture if I have an alternative (not that Apple is some great panacea for artists, of course).
I listen to music that way too, but I'm toughing it out on Spotify still. I'm curious, how do you feel Apple Music's interface is better in that regard?
I was too late for rdio, but from what I hear it sounds like the music service I really want :/
Not OP: I really like how (especially on the mobile app) it's always pretty easy to see which albums each track is associated with no matter what direction I get to the Artist from. In Spotify, I have issues where from some directions, it just lists all of the songs that I have saved from an artist, ignoring the album information. It also will sometimes end up with the songs in alphabetical order, making it difficult to listen to the album. While there's always a way to end up seeing a view that I want, it usually ends up with me clicking though a bunch of links to get to the Artists default page, and on things like CarPlay, that's not really an option either making it more difficult.
That was one of my main reasons for switching to Rdio when it was out, and while I really liked Rdio for its UI, it definitely had enough bugs/delays in song starting that I ended up moving (reluctantly) back to Spotify until Apple Music was released. Now, with that handled along with cloud uploads of my local media (I buy a lot off of bandcamp), it feels like a much more whole offering. I wish social and discovery features were up to Spotify's levels, but I personally have moved away from those for various reasons anyway, so it's not as much of an issue for me as it is for users who really utilize those features.
Yeah, I have found Apple Music to be better than Spotify for the curation of music libraries.
> it just lists all of the songs that I have saved from an artist, ignoring the album information
AM definitely has Spotify beat here. Click an artist, see their albums, choose an album to listen to. All in one view. It seems so natural ... I wonder if this is because I learned to curate my music on iTunes, and it is just a habit?
But for music discovery, open development practices (this is the biggest reason I switched from AM to Spotify - knowing that no matter what kind of thing I want to hack together, Raspberry Pi connected to BT speaker connected to projector, I would be able connect Spotify to it somehow), and social music experience, I think Spotify has AM beat.
> AM definitely has Spotify beat here. Click an artist, see their albums, choose an album to listen to.
Maybe I am missing something, but it seems like the flow you describe is exactly how it works in Spotify. Here is an artist page with the album list prominently featured: https://i.imgur.com/wNAjoCa.png
A couple of reasons. The integration with my existing iTunes Library is fantastic, and also there have been enough albums / bands only on Apple Music (for whatever reason) for me to want to stick with it.
Considering how long Spotify has been dragging their feet on replacing the long-deprecated libspotify, I can’t agree that they’re the more open of the two options. I’ve been waiting to release a client project built on a messy hybrid of the Spotify REST API (for most functions) and libspotify (for playback) for years now and there’s still no hint of the replacement they’ve been promising.
Last I used libspotify on Linux it still worked, but yes, official support has been withdrawn. It was a hassle to get it working, so yeah it was far from perfect. I found no solutions at all for doing the same with Apple Music though. That has changed a bit recently it seems.
I have a few projects too that involve the hybrid of the REST API and the libraries, it is definitely not ideal (should all be through REST API IMO). I guess Spotify could do it all over the REST API (including playback, Spotify connect, etc.), and then the client would only need to pull in a library that handles content decryption because the API can't send back decrypted audio streams (copyright/pirating). DRM is likely the biggest reason why they haven't done this yet (thoughts?), but the previous solution sounds plausible.
https://github.com/librespot-org/librespot has been a very good replacement for libspotify, and is pretty actively developed. Spotify can of course break this at any minute but it seems unlikely that this would happen.
I'm perplexed as to why the web client is so much better than the native itunes client. This was completely unexpected. I have to say the web platform has come a very long way.
Indeed, for most things it's more than posisble write a performant web app these days. The bloat/lag found on the web is mostly due to poor/lazy engineering, and in some cases, ads/tracking code. Although, I believe native platforms make it easier to write performant code.
Apple has little motivation to improve the music player and has a massive megalith in iTunes to support. It does so much it’s likely quite difficult to work on. I mean I think it still installs bonjour on windows for some reason.
I’m just listing out all the baggage that monolith drags with it. The pct that wants to just listen to music or sync their phone is way hire than those with the expensive air speakers no one is buying. But they all get bonjour by default.
Most people may not buy specific AirPlay speakers, but for example if you have an AppleTV or AirPort-express they can be used for this as well. I use it a lot and I'm glad iTunes can find them!
Lovely design. Question, why would we not just use Apple's official site? For example, search for something on https://tools.applemusic.com/en-us, then just click sign in on the top right once you select your music. I believe there is a way to see your current library too.
I've never heard of that site, and it clearly doesn't look like it's intended for use by subscribers. I can't get it to play a full song even after signing in.
Looks very well done! Is the source code available anywhere? I was planning on working on an Apple Music web client myself and would be happy to contribute.
Yeah I don't think it is any faster or more stable than the actual Apple web client. They probably use the same API's. Plus lots of considerations that applies to any website. Is it available in multiple languages? How accessible is it? Does it work on older browsers? Also, digging around, the Apple web client seems pretty up to date. Isn't old software. I like the search feature though on this.
https://next.kaiserapps.com/discover
https://github.com/benkaiser/stretto/tree/next