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...
For example, if I tweet a link to my own song (hosted on spotify) not only will Twitter potentially block people from seeing the link, their URL shortener may break the link to Spotify (Because the CEO doesn't want traffic leaving Twitter) and then even if the link goes to Spotify, they do a ton of things to siphon listeners that came for my music away from listening to my music, including NOT playing more of my music after the intended song plays. The net result is that hours of promotion as an artist only generates a few leads that often get ushered away from your content... It happens in many other ways for creators, artists, and even businesses without anyone being able to know that it's happening.
The future of being an independent entrepreneur is totally disrupted by social media as it slowly creates a stranglehold on the Internet. If we all don't start acknowledging this and calling out anti competitive practices and platform scams, we'll all be weeded out from being able to make our own living and we'll be forced to work for employers for minimum wages... The Future of the Internet looks grim from where I see it.
Sincerely, as Spotify (and the rest of the streaming services) are forced to make more and more user-hostile decisions to keep their revenue growth curve going up and to the right, it might make sense to jump ship early.
Actually, the EU has passed the DMA which will prevent exactly that for very large (i.e. Facebook/Twitter scale) providers.
I suspect some companies/features may not be available in the EU because of this, but I hardly lament this if it means the garden walls are being torn down.
I understand the criticism that it's hard for you to get an audience to notice you. But once somebody has listened to a tune of yours and then doesn't actively seek out more of it ... could it be that they just prefer to listen to something else instead? Competition is toughand it may feel easy to blame it on big tech, but sometimes peoples taste is just not something you can legislate..
Essentially, that artist generated traffic for Spotify, and Spotify channels that traffic to more known tracks that are more likely to generate conversions to paying customers.
If always playing songs from the same artists is what people wanted (e.g. lead to more overall listening time), Spotify would 100% do that. You can't pick what a radio station plays next after starting one of your songs, likewise Spotify gets to pick what their users prefer (visibly: not always songs from the exact same artist).
I don't have specific knowledge but they probably try to optimize for retention. As such if they concluded that for example discovery is an important part of retention then switching artists might bring less listening time (which is not issue as long as you don't cancel) but more attachment to the platform.
Additionally the way they distribute royalties (as I understand it it's tied to the total of stream not your usage) might have some strange optimization. Like maybe they need to guarantee a minimum for the big player otherwise they might leave or in the opposite maybe they try to drive content away to pay them less and lower their influence.
Note: all of this is random speculation, I have no idea what happens just tried to think of possible use case where what user and Spotify want is not aligned.
1. This assumes someone has actually A/B tested to see if this works. I would believe no one at Spotify has tried this.
2. What about if other music had lower royalty rates? Doesn't Spotify lose money, so wouldn't they want to pick cheap music?
There's a huge element of luck too, who happens to hear you, whether or not you strike some chord with the public in some way. But mainly, it's just hard work. Many artists took a very long time, playing shows in small venues for years, building up local fanbases... and then eventually saw some small measure of success. Many more saw nothing.
I'm hesitant to blame the internet for this. Sure there are some artists who seemed to get plucked from nowhere, and were catapulted to international success overnight. But most, most just worked hard, and got there eventually.
This is the vision of the music industry we all would like to have. Hard work, pluckiness, some element of luck and "striking a chord" with the public and you, too, can be a success! It is a dangerous fallacy that drives many musicians into the trap the top comment is complaining about.
The reality is a lot uglier.
Ever since large music conglomerates conquered (integrated) the entire promotion/publishing/distribution/sales stack in the 70s/80s, becoming successful in music has been about fighting giants on their home turf. That's AFTER you beat the odds by getting a label A&R person (or the contemporary equivalent) to like you. The markets, gatekeepers, processes, and legal agreements are all set up to screw you, hard, because every one of those is run by a different face of the same multi-billion dollar company with serious lawyer and lobbying budgets, and you're a small entity with no legal budget (and probably no experience).
This was the very successful industry profit model for decades before the Internet, and the generations of executives since then have been focused on regaining that regulatory and legal positioning in the "new industry".
These two famous articles explain the structure of the pre/early internet music indistry very clearly: Steve Albini (famous music producer) wrote "the problem with music" in 1993[1], and Courtney Love "did the math" [2] of how an impossibly good record deal would work out for the artist in 2000. They're enetertaining and interesting reads. Every step along that journey, think of the modern music industry equivalent, and you'll find it is facing (or has already lost) exactly the battle the top comment is bemoaning with Spotify. The large players are working hard to achieve the vertical integration and control they once had, and it is working.
[1] https://mpg.org.uk/knowledge-bank/the-problem-with-music-by-...
[2] https://www.salon.com/2000/06/14/love_7/
I should note: there is no board of shadowy figures out to screw artists. This is natural dynamics of any labor market with a persistent glut. The buyer controls the price, and if it's a market where the sellers are passionate and driven to sell because they believe "it just takes hard work and luck", they will lower the price indefinitely... until they are even taking on predatory debt just to get their product out there.
Please stop spreading the myth that "it just takes hard work." It convinces too many good people to walk into an exploitative industry and thank their exploiters for the screwing. What it actually takes, is relentlessly beating giant megacorps at their own game. Most of the famous ones are actively getting screwed for the privilege of riding on a tour bus. There is a lot that music fans can do to help the musicians they love, and it starts with understanding the musician's fight.
1. market desire: What are people listening to today? What genres of music are in "demand" right now? 2. experience: If someone who has been learning music theory for the past 7 years and then works on a song, the likely outcome is that the song will sound better than someone creating a song with no experience.
To be entirely fair at least for me in lot of cases I end up adding maybe 2 songs of an artist total to my playlist. Assuming random passerby is going to like rest of your stuff just because they liked one song is a stretch.
It would be wild if a YouTuber did some documented video tests on this issue at some point.
If the problem is serious enough, the capitalist solution would be to develop a platform that solves the problem for independent artists. However, as others have pointed out, the real customers for Spotify are not indie artists but rather paying users, and established artists.
While it is tempting to blame platforms for commercial failure. One has two recognize the truth of the business: making music follows a long-tailed distribution, and ultimately the listeners decide who rips those benefits.
But they work well on sitcoms, is that where you get your perspective on the world?
My naive assumption is that Spotify would love to, but the record labels don't agree.
When Spotify was young they were extremely developer and ecosystem friendly. It gets progressively worse and worse over time.
The biggest change I personally suffered from is when they pulled out of their integration with Djay, a DJ app. This integration was amazing for bedroom DJs like myself, being able to use Spotify to organize DJ music and DJ directly from it. Then they sunset the entire integration.
Now Djay and even bigger apps like Pioneer Rekordbox integrate with Tidal... Do the labels prefer Tidal over Spotify for some reason? Or did Spotify decide to get out of this game for reasons of their own?
This is somewhat tangential, but I feel like this happens often, as internal power and culture shifts away from being developer-driven to consumer- or manager-driven.
This doesn't happen for every company, thankfully.
Yes, labels and artists get a bigger cut of the subscription cost from Tidal. And before the buy-out by Square last year, Tidal's parent company was majority-owned by Jay-Z and had lots of buy-in from music industry insiders.
It's since evolved into something else, but it's not surprising that Tidal can get some unique deals due to its close industry ties.
Me, being a naive speculator: Maybe it has something to do with the time. The original contracts between spotify + labels were probably written 15 years ago. Over time they might have changed numbers like how big spotify's cut is, but never revised the rest of the blueprint contracts.
So, my bet is laziness / not caring enough.
Remember when Netflix first started they had amazing API's and all kinds of cool things where built off them, then one day they got big enough and shut them all down, of course they claim it was the "evil industry" that made them do it, but I simply do not believe them, nor do I believe spotify.
This pattern has been repeated over and over since the dawn of the internet, Early Platform is open, and dev focused to bring people in, then over time they wall off the garden to only their apps...
Google, Netflix, Twitter, Facebook, and countless others all follow this pattern.
Roon will index either or both of them with your local mp3 library. It decorates with third-party metadata services, and will stream hi-res to almost any hardware device you can throw at it.
Last time I looked, Tidal didn't offer a public API. They were 100% closed and developer unfriendly. You had to "borrow" their client ID for use with reverse engineered clients. Has this changed? If so can you link to the docs please?
I'm looking for a good music service that plays on my freebsd desktop ideally without using the browser.
Right now I use sootify-qt using spotifyd but it's a bit hit and miss.
The problem is that middleman owns near-everything your users want.
They hold all the cards, they can just say "hey, either you do X or you don't get our music library" and now your customers don't have ~95% music library they wanted.
I'd wager Spotify's reluctance to "just let you listen to fucking music" might be related to that, if it was just API you could integrate with any player you could make indie-only Spotify equivalent that just... uses Spotify API to play whatever is not on it.
That’s one of my favorite features, sometimes I’m too distracted driving or doing something else to manage Spotify, but that doesn’t mean I want the background music to stop entirely.
But for a developer building a custom listening experience it needs to be completely optional.
Right now you literally can't build an experience that plays just one song and stops after because "radio" automatically kicks in. You need to do crazy hacks to pause the current song before it ends or enqueue a silent track and intercept that, if you don't want to occasionally hear a small bit of an unwanted radio song before correcting.
It's built on RSpotify, which describes itself as:
> RSpotify is a wrapper for the Spotify Web API, inspired by spotipy. It includes support for all the authorization flows, and helper functions for all endpoints.
Librespot is the a level playback client that reverse engineered what the native Spotify desktop apps do to get, decode and play a music stream as a connected device.
RSpotify is a high level client that uses the Spotify Web API which can control what is playing on any connected device.
Neither of which should be confused with the Spotify Web Playback SDK which turns your browser into a connected device provided it supports the right DRM bits.
https://developer.spotify.com/documentation/web-playback-sdk...
Maybe this is just me, but I take an issue with projects that use GitHub's community features but don't publish their source code. Feels somewhat unfair.
What's wrong with using GH community features?
It's a side / passion project so no time or budget to build any support or community stuff. I considered GitHub, Reddit and Discord and all have pros/cons.
Greed is possibly the most common human emotion in the world.
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.
Btw what is the additional value of owntone if you’re already running airplay? Doesn’t AirPlay2 already do multiroom?
Owntone on your local network gives a nice persisten connection to whichever speakers you decided to switch on. The music signal is not being relayed from your phone to the speakers so it doesn't degrade as you move about doing your thing.
You control owntone and tell owntone, enable the speakers in the bedroom, livingroom and deck setting each volume separately and play this m3u playlist of your music, or this album, or this spotify playlist or podcast or whatever to all of them at the same time, synchronized.
Owntone does the job of the apple music/itunes software on a mac (ie the software that ships with a mac laptop to play mp3 files), which does multiroom to airplay 1 speakers. Iphones don't do this and don't do it with spotify. I mean not even an iphone to an appleTV plugged into an amp does spotify reliably. Apple's phone controlling an appleTV box requires constant reboots to function which is enough to stop anybody from using spotify with that setup. Is that intentional? Spotify clearly think so. Doesn't look good but I don't have deeper evidence than these observations of what works and what does not.
Owntone development isn't being controlled by apple for their business interests, eg it does spotify, lastfm and works like apple doesn't in my experience of it with the stuff the devs wanted to work (get involved and hack it to your needs if you have more?) - whatever you think is the reason the apple software not working, it clearly doesn't and owntone does. It works controlled from android, or your laptop, or your desktop, or tablet with the music you want not what apple "allows" or "cares enough to not have be broken" or insert some other excuse (maybe there's a convincing one but I can't think of it).
Eg plug the pi into power and the amp, plug the amp into power and the speakers. No other wires.
They all synchronise perfectly over wifi or ethernet, which is the point of shairport-sync. They identify themselves on your network as AirPlay 1 speakers. Note that they actually work with the spotify app directly in a reliable way just like AppleTV doesn't - your AppleTV will require a reboot every time you want it to be the output of spotify. So either I'm a better engineer with off the shelf parts and open source software than apple's full time paid professional engineers or maybe Spotify has a point when complaining about Apple non-competitive behaviour? I wish it were the former but somehow doubt it.
- Raspberry Pi with Max2Play [0] and optional HiFiBerry DAC
- running the LMS squeezebox server (still supported by the community after Logitech discontinued it)
- which supports multi-room audio and AirPlay
- controlled from my phone with iPeng [1]
- with a pair of JBL LSR305 active speakers (and a Mackie Big Knob passive to control the volume and allow for a second source).
Laughs in Lidarr
I rip my own songs, but I want something that's better than Spotify to listen to it. Then again, I listen to music on my Alexa too, so I think it would be hard for something to interface with that.
I had Navidrome hooked up to my Sonos system as a test. Ultimately you are at the mercy of the walled gardens if you choose to use them, some are free-er than others.
[1]: https://play.google.com/store/apps/details?id=com.extreamsd....
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.
I think there's an unofficial understanding that if someone puts out a way to access Spotify Free that removes or bypasses the limitations and constraints that Spotify imposes on free accounts, they would summon the lawyers.
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)
"Hey Mycroft, play songs about better software integrations"
And now they've also "improved" their default interface with ultra-skinny fonts. Granted, I have a ridiculously bad 1080p laptop screen, but the font is so skinny that I only see colored pixels instead of white.
I exclusively use it for Spotify Connect like I would a Chromecast Audio (if I had one).
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)
Also, any plans to add the ability to save the tracks that are streamed? (for e.g. offline playback or for exporting to mp3 etc.)
Definitely no plans for saving tracks.
I hope not. Sounds like a great way to provoke Spotify into a breaking API change.
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/
The issue I've found with the PC setup, which I've been using after being somewhat unconvinced by Volumio, is that for dynamic playlists, the clients don't seem to agree on the contents. I have to manually go load the playlist on the player PC so that when the songs advance I can see it on my local computer. The player PC only does that, so I never interact with it.
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).
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.
this is why:
> Spotifyd requires a Spotify Premium account
which is actually not true. you can change some code in the source, to allow playback on free accounts. Spotify hunts down anyone who posts code like that though
What's the rationale for not building homebrew media players instead of railing against Spotify...?
This would work if you almost never venture outside of your existing music catalog. If that's you, it's probably also a better financial decision to just purchase your own music in stead of 'renting' it.
According to my 'Wrapped' I listened to 4600 different songs this year, from 3000 artists. Most of them I discovered because of Spotify. So for me, Spotify is very much worth it and I would not be able to self host anything to give me near the value that Spotify adds. And I can't even contemplate pirating all these songs, since I find that morally wrong because the paid services (for music) are decently affordable and provide good value.
Aye, aye.
> Then I need to spend time on other web sites for music discovery?
One cost of cultivating tastes, as opposed to being fed by a recommendation algorithm, is the risk of possibly hearing music you might not like, as well as the time required spent doing so.
There are open-source music recommendation algorithms but having survived radio payola I consider that approach a step backward.
> This would work if you almost never venture outside of your existing music catalog.
I favor bulk music downloads (more than I could ever listen to) and randomized playlists, but then, I may have a higher tolerance for my tastes not being pandered to.
> I can't even contemplate pirating all these songs,
Seems to me that you are doing precisely that.
> since I find that morally wrong because the paid services (for music) are decently affordable and provide good value.
Wait, you find it morally wrong to infringe copyright (a specious proposition in any case) because the paid services are affordable? What is the price point that makes piracy moral, then?
Honestly, at about €1 per MP3 (which is on the low end, looking at Beatport), I couldn't afford listening to the amount of different music I do now.
> fed by a recommendation algorithm
As opposed to being fed by the maintainer of some web site?
> I may have a higher tolerance for my tastes not being pandered to
> Seems to me that you are doing precisely that.
> What is the price point that makes piracy moral, then?
To me, your entire comment feels incredibly snobby. It's like you see people who use streaming services as lesser people, just because they use a different way to listen to music. It also feels like that opinion is based on an incredibly limited assumption of how people use streaming services.
And especially Spotify does this extremely well.
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!
Actually, I have this on my TODO list for a long time, maybe someday I'll finally implement it.
[^1]: https://developer.spotify.com/documentation/web-api/referenc...
You might have to copy all your liked/favorites to a regular playlist for it to show up.
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.
The appeal of spotifyd from an end-user perspective is that anyone on the network can control it.
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.
I suppose its cool if you run a riced nix environment, and you only want command-line tools. Or its cool for people who don't want to run the dedicated app or browser version.
In my experience, having tried a few different clients in the past, they sometimes fail due to changes on Spotify's side. I don't know if that situation has changed in the past few years.
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.
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.
Has anyone produced similar (and working) alternatives for Tidal (or Sonos S1/S2)?
I must have tried it a dozen times by now, but never once gotten it to work.
> Common issues
> The device name cannot contain spaces
That's interesting. I wonder why this would be causing an issueWe 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.
They can't, major record labels and major artists are working with Spotify to fuck everyone else.
As a consumer of music, why is this my problem?
If you consume music then surely, you want the artists and musicians you support to be paid fairly for their work.
The effect on my lifetime QOL would be basically zero if no new commercial music were created ever again.
If I had to guess I'd say it convinces artists to license their work for less money than they'd make if they stuck it on Bandcamp, but I'm not certain, and neither of you has explained it.