by fahrradflucht on 12/19/22, 6:56 PM with 231 comments
by nzoschke on 12/19/22, 9:00 PM
However Spotify doesn't agree. If this is based on librespot its using stuff Spotify doesn't support and could easily shut down for unauthorized clients any time.
Their supported paths are iOS and Android SDKs for mobile, and the Web Playback SDK for desktop [1]. I've been using the web SDK in anger to build a jukebox app [2] and its only so-so.
First, you're under the confines of a web browser which has some pretty big tradeoffs over the experience and system integrations you can build.
Next, song playback works as advertised but there are many things you can't do like introspect the queue or prevent Spotify Radio from kicking in.
The latter is downright hostile to controlling exactly what songs you hear. I assume that always going into auto-recommendation mode is intentional to juice playback stats.
Kudos to spotifyd for offering total control over how and where you stream music you're paying for.
1. https://developer.spotify.com/documentation/web-playback-sdk...
by harry8 on 12/19/22, 11:08 PM
1) Pi-zero running shairport-sync (couldn't get them, got orange-pi zero 2 which works great) https://github.com/mikebrady/shairport-sync. I have a few of these.
2) Class D amp, Aiyima, Fosi, Loxjie etc Aliexpress is one place to get these. I've used and like Aiyima A03 and their ali store delivers fast.
3) Some nice, high-quality, 2nd hand speakers you like. Wharfedale, JBL, B&W, Acoustic Research, Yamaha. (Or get some active speakers you like and skip #2, eg B&O beolab 6000)
4) owntone (formerly known as forked-daapd) https://owntone.github.io/owntone-server/
5) configure owntone with your spotify premium, takes less than a minute. (And with your music that you own - takes longer because you take more care).
You now have a multiroom setup with fantastic sound that you can control with http://owntone.local:3689/ including with your phone. And/or you can use the "Retune" app on droid and apple's "itunes remote" app on ios. Better sound than most alternatives for less dollars.
All integrates well with Homeasistant because of course it does.
I really like how mine turned out. Having half a dozen sets of speakers all playing the same music in perfect sync as you move from one room to another while doing chores on the weekend fills me with more joy that I would have guessed. YMMV.
by kitsunesoba on 12/19/22, 8:17 PM
by yoavm on 12/20/22, 7:10 AM
by musicstealer on 12/19/22, 9:06 PM
Note that to get it to support Spotify Free, you need to compile a custom librespot with this part of the code commented out, that checks for Spotify Premium: https://github.com/librespot-org/librespot/blob/6dc7a11b09b5...
And then use this with spotifyd instead of the original.
by jonas-w on 12/19/22, 9:53 PM
For example you can set up your spotifyd daemon on a raspberry and have it always connected to speakers.
Now when someone is in your local network they can choose your spotifyd daemon and play spotify over the speakers without connecting to the speakers directly via bluetooth etc.
[0] https://spotifyd.github.io/spotifyd/config/File.html (after the configuration file example)
by slondr on 12/20/22, 2:06 AM
We recently cut a new release for the first time in over a year, which is very exciting for all of us (and I'm guessing why the project has been submitted here now :D)
by suprjami on 12/19/22, 8:25 PM
If you have a PC with the Spotify app running, that appears as a remote play device to other clients.
Otherwise I found ncspot to be more reliable than spotifyd: https://github.com/hrkfdn/ncspot/
by jamespullar on 12/19/22, 7:51 PM
by jez on 12/19/22, 8:24 PM
https://gist.github.com/wandernauta/6800547
It’s nowhere near a fully featured Spotify client, but for little scripts or UI things where I just want to see the current song it’s pretty lightweight and already works with the Spotify app I have installed (obviously this means it has a different end goal in mind than Spotifyd).
by MrGilbert on 12/19/22, 7:56 PM
I was always interested in their techstack, and how everything works on their end, but unfortunately I'm not into Java, which is the reason I never applied for a job there.
by Ziggy_Zaggy on 12/20/22, 6:12 AM
What's the rationale for not building homebrew media players instead of railing against Spotify...?
by muppetman on 12/19/22, 10:47 PM
Yea it's tied somewhat to Google, but it's a simple easy to deploy puck that just works.
Not to suggest the hard work that's gone into this isn't awesome, because it is!
by eloop on 12/19/22, 10:07 PM
by bentt on 12/19/22, 7:54 PM
by iJohnDoe on 12/20/22, 4:23 AM
by matthew-wegner on 12/19/22, 11:39 PM
I gave up on 3rd party things. My automation VM includes a GUI environment, and I run the official Linux Spotify client. The only way my setup can break is if Spotify gives on Linux entirely.
Snapcast[1] transmits two streams to 7 different speaker setups:
* Music + text to speech
* Just text to speech
When TTS plays on the first stream, music volume is ducked for the duration. That setup is all pulseaudio junk. I could actually play any system audio to my entire house, or even provide an 3.5mm aux input near the VM host, although in practice I stick to Spotify for convenience and the ability to use the clients on any machine to control everything.Speakers in some rooms turn on/off completely with the room, while others stay on but toggle between music and text-to-speech, to make sure I hear those notices (which are like doors opening, washer is done, etc).
My main work setup has a snapcast client, so I hear TTS events even with noise canceling headphones on. Some snapcast clients are placed on existing machines (i.e. TV computer), while a few are dedicated Raspberry Pis.
by digitalsushi on 12/20/22, 2:15 PM
I keep an old raspberry pi with rAudio-1 running under my desk, with a nice 60 dollar DAC HAT, that runs into a small amp with 2 rca cables, and then into speakers.
Generally I keep it playing a private shoutcast running music from my nas, but having spotifyd means I can interrupt it with anything I was just listening to on my phone - in the car, mowing the lawn, etc.
The continuity without the hassle is the kind of thing tech promised long ago. If it could make it one more step, the gap would be gone ... I should be able to just have all this software talking to each other, and knowing where I am, and playing automatically to whatever seems best, but the interoperability between them keeps it 1 foot from perfection.
by edge17 on 12/20/22, 4:07 PM
by odiroot on 12/20/22, 10:01 AM
Unfortunately the MPRIS interface works weird. For example it didn't let me change the volume.
On top of that spotifyd seems to sometimes get "split brain" where it continues playing but I can't control it from my phone (Spotify Connect). My phone instead wants to play locally. Which is weird because Spotify normally only lets you play only from one device at the same time.
by blacklight on 12/19/22, 11:15 PM
I've been struggling with Spotify's messed up developer experience for years. They deprecated libspotify years ago without an alternative, promised an upcoming alternative for years, and they eventually pulled the plug last year without even bothering to provide an alternative.
I've tested Librespot in the meantime, but it proved too cumbersome to configure and use as a non-standalone executable.
In the meantime mopidy-spotify (the project I've used for years on my RPis) has gone all the way to adding a Docker image just to support Librespot and the whole Rust environment that is required to build it. And, of course, it's not guaranteed that these projects will survive - Spotify can easily snap their fingers, change their API in a breaking way, and we're forced to play a catch-up game again. They have already done so in the past.
I therefore decided that a company that doesn't value my consumption use-cases, doesn't bother for the time I waste to adapt to their changes, and has a bad record of developer experience, is not worth my money. I wish the best of luck to the guys behind spotifyd, but I'm personally done after 10 years of chasing Spotify.
I've moved to Tidal in the meantime. It's still far from perfect, it still lacks an official Linux client and it's more buggy than Spotify. But at least there's a reversed engineered web API that so far they haven't bothered to fight nor change. And that's really all I need to build my music experience.
by unmole on 12/20/22, 12:17 AM
by hedora on 12/19/22, 10:10 PM
Has anyone produced similar (and working) alternatives for Tidal (or Sonos S1/S2)?
by Daunk on 12/19/22, 8:01 PM
I must have tried it a dozen times by now, but never once gotten it to work.
by ChrisArchitect on 12/20/22, 6:21 AM
by cramjabsyn on 12/20/22, 12:58 AM
by benhurmarcel on 12/20/22, 8:17 AM
by vvoyer on 12/19/22, 11:24 PM
by jesvschrist on 12/20/22, 2:06 AM
by avinassh on 12/20/22, 3:01 AM
> Common issues
> The device name cannot contain spaces
That's interesting. I wonder why this would be causing an issueby pimlottc on 12/20/22, 2:18 PM
by jrm4 on 12/19/22, 9:26 PM
We now have a few years of experience with music streaming. And what we've learned is that -- sure, it's convenient -- but honestly hasn't much improved the lot of artists and musicians. It's a new exploitative system that's perhaps slightly better than the old exploitative system.
We can do better. Literally, locally, and for friends. I used to do MPD, but now I'm glad for things like mstream that make this sort of thing even easier. I hope funkwhale and other federated things do better as well.
by gigatexal on 12/20/22, 3:54 PM
by salusinarduis on 12/19/22, 11:15 PM
by wingworks on 12/20/22, 4:00 AM
by Samyak1 on 12/20/22, 6:59 AM
by spotifyboii on 12/22/22, 4:24 PM