Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Musish – Web client for Apple Music (musi.sh)
141 points by pplonski86 on Jan 18, 2019 | hide | past | favorite | 63 comments



(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.

https://next.kaiserapps.com/discover

https://github.com/benkaiser/stretto/tree/next


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.




Well it is JavaScript...


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.

https://embed.music.apple.com/ https://sdk.scdn.co/embedded/index.html

Would be nice if paying users could access actual streams, although that would probably violate the drm or something.


Spotify DRM _has_ been cracked before (extraction 320kbps Vorbis streams without recompression), but for obvious reasons there are no ready-made public PoC's.


Doesn't librespot count?


Possibly. I haven't looked into it though.


Yeah Spotify doesn't give you an api for stream either, probably related to drm, i wonder how Qobuz(https://github.com/Qobuz/api-documentation/blob/master/endpo...) does this without DRM issues?


What makes you think Qobuz relies on Spotify ?


What do you mean by actual streams?


The audio stream. This will likely never ever be supported by Spotify/Apple because of DRM reasons.


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).


It looks like Apple has a public API for this.[1] No need to reverse engineer.

1. https://developer.apple.com/documentation/applemusicapi


GitHub Link: https://github.com/Musish/Musish

not op btw


IIRC Apple has a JS SDK. Could run that in electron


Has Apple said anything about why they aren't releasing their own web player?

With the API integration it seems pretty straight-forward to make one, so there's got to be a strategic reason they don't want to?

Maybe they want to encourage people to use native apps wherever possible, since they have more advantage over Chromebooks there?


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.


My personal guess:

1. Primary reason: it is a job someone needs to do, and it isn’t high on the priority list at all due to many possible factors.

2. Secondary reason: as a side effect of (1), it encourages the use of their native apps, which they might want for whatever reasons as well.


I had created something similar using Spotify and Youtube to replace a need for a spotify subscription - https://www.livejam.com

Now I'm thinking about turning it into a desktop app coz its a pain to keep a tab open for playing music.


Maybe you could fork FreeTube to save some time:

https://github.com/FreeTubeApp/FreeTube


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.


May I ask why all of the effort to use Apple Music? Why not switch over to Spotify which has a ton more open libraries / APIs?


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


Sorry, I was referring to your curated music library, not searching.

For example, in Spotify they just list all the tracks

https://i.imgur.com/Bse9J7z.jpg

In Apple Music, they list the albums, year, artwork, etc.

https://i.imgur.com/jyktt7R.jpg

I definitely prefer Apple's for browsing my current music.


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 did kinda that same thing for soundcloud a few years ago with meteor <3. It's been awhile since this code was touched.

I stopped developing it because soundcloud's UI started to really match my design and feature set.

but:

- my search is faster (just a long startup time) - it will actually shuffle all your songs and not just the last 20-ish

https://sctunes.herokuapp.com/ https://github.com/hipstersmoothie/sctunes.meteor


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.


That reason is probably to discover AirPlay speakers on the network, right? Sounds useful to me


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!


Are you referring to the Apple web client or this one in being much better?


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.

Great work.

Edit: Changed link.


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.


Great job! Thank you. I'll see if I can add support to this for the last.fm scrobbler extension that I use.

PS: For those of you who use Apple music and are into Indie / Alternative music, here's a 2018 mixtape I made recently.

http://linkdot.link/2018-mixtape.html

Edit: Added playlist


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.

Edit: Musish github repo: https://github.com/Musish/Musish


This is actually pretty nice. I was expecting a heavy bloated web app but its not. Good work.


Very cool! Would be incredible if you could access your iCloud Music Library as well.


This is really well put together, works flawlessly for me.


Really well done. Design was a nice surprise :)


This is amazing!

How did one person make a client that is 100x faster and more stable than Apple's?


Here’s a few guesses:

1. It’s not 100x (or even 2x) faster or significantly more stable than Apple Music

2. It’s always easier to make a nice app when starting from scratch versus trying to fix existing older software to be nice

3. Apple did a good job with their APIs


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.


Yeah looks like you can get Chinese pages as well. https://itunes.apple.com/cn/artist/taylor-swift/159260351


Please change the title so it includes that this is about an Apple Music webclient


Updated from “Unofficial Open-Source Web Client my friends and I created”.


My first question was going to be web client for what? We need to not assume people reading just a title have any clue what you're talking about.


Title is very misleading. I came here thinking it was a new web browser (an http client).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: