Spotify is in the process of killing the librespot project that this and most third party Spotify players are built on. I think the golden age of music streaming is coming to an end. I’ve migrated to a self hosted library with streaming and radio for discovery. I hope we’ll see many projects in the space flourish. Many, like Navidrome and the whole OpenSubsonic ecosystem, seem to be doing quite well.
Would you be willing to share a bit more about this setup? The only thing keeping my on streaming is the fact that its almost impossible to find new music otherwise. I know LastFM exists but it just doesn't click for me the way that streaming does. I like discovering music organically.
I left spotify around two years ago for a self hosted option (I mostly use navidrome+feishin). Music discovery was a concern for me as well, but then I realized that I didn't like the idea of spotify curating which music I discovered. So far, this is what has worked for me:
- Actually listening to the music I have now. I think the art of listening through full albums has slowly died, but there is so much music we're ignoring because we just listen to Artist's top tracks.
- Word of mouth. Asking my friends what they listen to. This is a way that people used to discover music and I've found so much good music this way.
- Bandcamp. Bandcamp is SUCH a good way to discover new music. You can listen to the music in app, there are great articles and you can actually support the artists!
I have pretty much the same setup. The only thing that bothers me with navidrome+feishin is that gapless playback is not working perfectly.
Also, a great resource for discovering new music is the public library. They often have a curated CD section that I then rip into FLAC. I've had great chats with the people in my town's library, and I often pick a totally random CD off the shelves and discover some amazing artists.
While moving from spotify to youtube music a few years ago I bought a vinyl player to listen to full albums and fell for it. Then when I moved to curate and self host my collection with Plex and Plexamp I realized I'm not using the player anymore since I'm using Plexamp to listen to albums. Plexamp is not perfect and not open source unfortunately, but it's a really good non-enshitified product.
I had to migrate away from youtube music since the experience was infuriating me every time. I love making playlists on the go. In youtube music after adding 30 tracks to the play queue, tapping 1 track accidentally deletes the play queue and plays this track. This made me feel bad every time it happened.
I don't see how it is just accepted to lose progress in 2026 as if we're using win95. It feels like 80% of the sw I use provides a caveman UX, not leveraging the tech, leaking implementation details and being constrained by technical reasons. On the other hand, working on Prepbook[0], I realized how hard it is to create the perfect experience and how it's even harder to justify it financially.
I'm doing discovery by talking to people, I love it. Every time I listen to Monolink I recall my co worker that just said "check out monolink" when he heard I love Ott. I love that it makes the experience about connection to people as well.
Regarding Bandcamp, I find following small labels to be a great way to find new music. Small labels tend to release music of similar style and quality. They often also have deals on bandcamp where you can buy an entire label's discography for crazy cheap, like a hundred or so albums for $50!
using nts.live and and fip radio -> https://www.radiofrance.fr/fip at the moment for same purpose. Radio France allows to save liked track names in profile to look up later.
Call me a boomer but I’ve had a ton of fun with XM radio. I can find new music on Bandcamp but nothing compares to hearing some classic from the 80’s that you would have never thought to put on when you’re driving home after work on a Friday.
I don't know about you but spotify discovery feels like the least organic discovery possible. Its so homogeneous and predictable and corporate slop adjacent it makes me cringe just thinking about it.
I've discovered so many great artists through Spotify, and been to many of their shows (which Spotify also helps surface with their "Live Events" feature). I regularly get artists with less than 100k listeners in my Discover Weekly, which I then look up, and find that they did a concert on KEXP, and the comments all proclaiming "I knew good music wasn't dead!".
So I can say for sure that I don't share the slop sentiment. Sure, there's some generic filler every now and then, but any non-cohesive mix, as opposed to a carefully curated album is going to have songs that naturally become "fillers".
Just now, I discovered that Spotify snuck in "The Juan Maclean - Running Back To You (2014)", which is a cover of "Brian Bennet - Solstice (1978)". Neither songs are completely unknown, but they're also not exactly Bruno Mars.
I don't know if this is pure luck or algorithmic rhythm analysis, but for me it's working.
I used to use hypem soo much during the music blog days and had a subscription etc but it seemed to stop working or something so after a while I stopped using it. I will have to check it out again
I listen to Flow State, SomaFM, and aggregate from local shows and a few people I follow on social media among other discovery platforms. (I don’t have a favorite yet.)
I found that Spotify was increasingly recommending AI artists and songs I already knew. It surfaced very little outside of my comfort zone and effectively nothing that wasn’t new. There’s a whole world of music out there that Spotify wasn’t showing me.
> its almost impossible to find new music otherwise
I don't know where this opinion came from (Probably Spotify's PR department) but it's just so weird to me. Do you think people didn't find new music before streaming? It's not impossible, you just have to talk to people.
You're right, they can't prevent that, but they can change their APIs in breaking ways enough to make librespot unreliable, to the point it's just not worth it.
I assume that for a long time, Spotify was content to ignore stuff like librespot... they didn't help them, but didn't harm them, and generally to keep things stable enough that a project based on librespot . It does seem like that balance shifted over the last year, and now librespot is constantly breaking in new and mysterious ways. Some accounts work, others don't. Some tracks play, others don't. The devs did a great job fixing that stuff, but it's a game of whack-a-mole, and Spotify seems to have really upped the frequency of how often they break things. And that's for the lossy decoding, which is functionality that used to be pretty stable. Spotify reached out and (I assume) made some threats that explicitly shut down their work around lossless audio [1].
FYI -- I'm not associated with the librespot project, but I was actively working on a project that relied on it. Eventually I gave up in favor of self hosting, because I want my music to not break all the time. Shame, because I used to like Spotify a lot and now I'm actively looking to move away from it. That's one premium family plan subscription they're gonna lose! I'm sure they'll feel the sting.
> We're going to vibe code the entire enshittified internet to be ours once again.
It’s such a wishful thinking, but no it doesn’t and won’t work this way. Code != useful product. Plus today’s web is all about fabricated content, AI bots, cloudflare challenge walls and all other annoying stuff. The very idea of being able to create something in seconds is already killing internet.
Garbage being created at unprecedented rates does not diminish the fact that LLMs are acting as a positive multiplier for useful tools; this very item being one.
No one in all these years had gone through the effort of replicating the Spotify client with a snappy fast interface for a reason. Everything had been an integration into already existing software, or simpler interfaces, because the effort was not worth it. The equation has changed.
You can look at the glass half full all you want, my glass is overflowing.
This is the best year in all of my 20 years in tech. I'm creating so much stuff and it's all I've ever wanted.
This is the dream of the 2000's, and big tech can't stop us anymore.
I think I'm going to write my own music player soon that behaves exactly like I want it to. Maybe this weekend. Or maybe right after my home automation project. But I can probably squeeze them both in.
Probably for the same reason Twitter killed their API, more control over the experience and to serve ads/cross-promote. More cross-promote for Spotify.
What makes you think Spotify is killing it? I know they aren't supporting FLAC but otherwise I don't think they're actively trying to stop it as opposed to not really caring if they support it (which is more "We don't care" as opposed to "We have to stop this")
Librespot no longer works for new accounts. APIs are being gated off and they’re applying legal pressure to dissuade projects from reverse engineering anything new. At the end of the day, they can turn the tap off anytime they want, whether by technical or legal means. I tired of having so much of my music experience at risk and chose to migrate on my own terms.
They can only turn the tap off because those projects operated in ways that required them to leave it on.
Biggest mistake most librefication projects make is to do their project out in the open where they can easily be subject to legal pressure, then fall into complete disarray the moment that pressure appears. They can't move underground once pressure starts, because everyone already knows who they are.
> Biggest mistake most librefication projects make is to do their project out in the open
That's not it. Most youtube downloaders are not developed in the open and Youtube still breaks them every other week by changing on purpose the way they operate. And, unlike highly obfuscated instructions, studying the network queries used by a simple app does not require expensive reverse engineering efforts from Spotify engineers; essentially, it's the same as developing in the open.
The only case i can think where obfuscation might help would be if the actual Spotify API consumers were servers by the app developers (or some form of obfuscation via residential proxies) and the app developed an entirely different API to/from its servers. But then, you're back to the developers and hosts can receive legal threats, etc...
I haven't seen any evidence of Spotify killing librespot. To me the project looks active and works totally fine. I don't have a new Spotify account to verify the claim above.
I suspect wilted-iris is conflating it with the recent changes to the Web APIs: new developer apps can't use all endpoints anymore. In Fastpotify if you add your Client ID I use both an older developer app and your app to keep everything as fast and seamless as possible.
Have a look at the librespot pinned issues, you’ll see the reports from folks experiencing this. You may also be able to find the legal threats they sent out to third party client libraries if you search carefully (many have been redacted.)
Tools for piracy are much better today than they were back in the Napster or grooveshark days. It’s actually kind of shocking to me that we haven’t had a popcorntime moment for music again. Nothing technical is preventing the creation of a perfect decentralized anonymous p2p FLAC streaming platform with plausible deniability.
How would the plausible deniability piece work? If you stream some bytes to someone else, you can't deny doing it. Unless you imagine this working over Tor, idk what the performance of Tor is these days but I never thought it could support such an application.
To those of you who might get any ideas from this comment, Soulseek already has a growing problem of people vibe coding "free Spotify" apps that end up hammering a few accounts without giving anything back to the community by hosting. The solution seems to be some combination of automated hosting checks and captchas via PM, which are tiresome to maintain and might just drive more people off from hosting altogether.
The first Spotify client, the one in Qt was actually really good. Things started going downhill slowly when they integrated Facebook then very fast when they threw everything through the window to rewrite everything in electron.
It wasn't, really. At least not completely. I fully agree on the algorithm - I miss times of scrobbling to Last.fm, which was much better at this. (Spotify always supported scrobbling to Last.fm from their client, surprisingly).
Spotify used to be snappy and worked really well on Linux. I even used it for local libraries, as it was one of the few options that didn't crash on mine.
It was at the beautiful time when we realized web apps can have local storage, Google released that experiment called Chrome to "show public how modern browser can evolve and inspire other browser makers how to progress". We know it ended up in "extinguish the market with it", unfortunately.
But Spotify chose native app approach - they distributed it as packages. Deezer on the other hand, back then (I don't know now) had just native web app that could pull music locally. I think it was an extension of Chrome (?). It also worked perfectly fine on Linux, almost two decades ago.
I've also canceled my Spotify sub three weeks ago and migrated to Navidrome. I'm still not quite satisfied with the available clients, I'm using Feishin. Fastpotift looks like a nice candidate to extend to support Navidrome.
I'm glad they're doing well but I would guess only a tiny fraction of the people who use Spotify would be capable of setting up Navidrome. I tried and went back to Plex. I wish it were otherwise but if something takes more than a few clicks to go from zero to music that leaves 95% of users out! I hope these projects get more accessible though.
We are seeing a slow but steady stream of small breaking changes, designed to gradually piss off everyone involved. While avoiding a large breaking change that attracts a load of bad publicity.
Sadly this strategy is the only good idea they've had in years.
If anyone other than me really likes classical music, I thoroughly recommend Hyperion Records. DRM free downloads in your choice of codec, one to two free CDs worth of sampler per month to download (with a jewel case PDF!) and some truly excellent world leading groups and beautiful new music.
Thanks for sharing. I loved buying then downloading cheap samplers from punk and hardcore labels when I was younger. That was part of the culture and that really helped me discover new music and shaping my tastes. This is something that doesn't exist that much anymore and I'm glad to find this initiative. I try to listen to classical music but that's a very difficult world to discover, this will probably help by helping me to focus on few titles instead of jumping in the gigantic and maze-ish pool !
One part of the classical diaspora I think is both under appreciated and undergoing something of a renaissance is that of contemporary choral music. There are many great examples but two I'd like to draw to attention to two of those I have recently sung, and really enjoy:
(1) The works of Ēriks Ešenvalds,[1] a Latvian composer who was a fellow in composition at Trinity College, Cambridge and brought really a large part of the surprisingly rich eastern European singing tradition to the west. I had never heard of the Singing Revolution against the USSR in Latvia, Estonia and Lithuania – countries with a wonderful, rich choral tradition where music (and choirs) played a really nonzero part in the downfall of the USSR. All absolutely beautiful and a group I sing with has worked with a lot of composers from this part of the world. Amazing soundscapes with harmonies that are never quite as good in equal temperament as outside it and yet always tonal and beautiful.
(2) Desmond Earley and the choral scholars of Trinity College Dublin – who conjures up a rich sound world of very pure, Irish tones that almost sounds synthetic but is made entirely from human voices and traditional instruments. It is simple to sing but difficult to master. I would highlight Dúlamán, [3] a traditional song about the economic importance of seaweed.
Your comment really brought me back to my first job out of college, I worked for Tower Records (RIP) as a call center customer service rep. Tower was known for being the best place to find rare classical recordings, and I recall the Hyperion label as being well respected. It always fun to talk to our customers that were classical and jazz aficionados.
3. Okay, let's try Meat Puppets' lauded second LP from my backlog... artist is there, but four first LPs aren't. On Spotify and Apple Music.
4. For fun, let's try to find that very obscure kote kei demo, (螺旋 (Rasen) - Hysterical Noi「z」e / Like「M」(1997)). Nothing, of course, but well, I can't even find it on private trackers or SoulSeek (got some mystery mp3s "somewhere").
So, if I were to stoop down to streaming, looks like Spotify/Apple are less worse here.
I use Deezer (in a browser tab, and on my iphone.) It's good, but far from great.
If several artists / bands share the same name, there will be one artist page with all of the artists/bands releases.
The queue management sucks, I can add stuff to the queue, move / remove individual entries. That's it. If I added an album to the queue and want to remove it, I have to click a little cross one time for each track of the album.
Notifications about new releases: great. Except the UI is a tiny dropdown, and hovering over an item removes the little marker signaling it's a new one. It's really difficult to catch up when there are more than 5 new entries.
etc.
Yes! This launched after I left Spotify but I agree it looks neat. I find the three month build expiration concerning, but I also have a low risk tolerance for my music experience.
The website looks great to me, clean and simple, perfect for a project like this. “Not looking like it was made by AI” isn’t something I value for itself in a website, any more than “not looking like it was made with injection molding” is something I would value in a plastic item.
Either it’s good or it isn’t, but it’s not good or bad because of how it was made.
If it was a site made with AI it would be stuffed with way more ad copy, components, UI toggles, and small text. If this was made with AI, they seem to have restrained it from going on the gaudy UI mess of most AI generated sites that are what I like to think of as "Maximalist Minimalist". A hodgepodge of a design library.
Fuck Spotify. Even if you don't care about the ethics of Daniel Ek's investments, the platform itself is crap. One of the lowest paying to artists, not paying at all unless they hit a threshold, and the catalogue is filling up with AI slop, which they push on users via 'radio' and 'mix' playlists, so they can pay even less royalties. No, thanks.
I've tested Deezer for half a year. The software quality was horrible.
Had a lot of crashes, it often took many many seconds to change between the songs and often getting stuck, the buffering algorithm was nuts and eating a lot of bandwidth.
Everything on a standard Pixel. Full 5G coverage was available.
Qobuz have the highest per stream payout rate for artists [0], and have the best audio quality of all streaming platforms (better even that Tidal imho). They have desktop, mobile and android auto (and presumably carplay) clients, and an equivalent to Spotify Connect whereby streaming can be switched to a different client.
Downsides are no native client (same webview approach as Spotify), not as strong recommendations (though slowly improving), good but slightly quirkier UI (also slowly improving). For me the trade offs are worthwhile.
Also, I know it's a bit niche, but Deezer does not have an equivalent of "Spotify Connect" protocol, which means that Network Integrated Amplifiers (like Onkyo A-50), CANNOT implement a player with good UX. Spotify is now king since they introduced lossless quality which is enabled by default in such amplifiers. The benefit is that there is no local streaming (e.g. Bluetooth) and no latency. The data come from Spotify directly to the amplifier and then your speakers.
So, Deezer that had a audiophile target audience, has effectively lost the game.
Nitpicking but those devices do not "benefit lossless by default" after Spotify started offering it.
I was very disapointed that my Yamaha network receiver didn't get an update to support lossless from Spotify Connect.
When Russian soldiers come to rape, murder and genocide your people, there is nothing unethical about building weapons to resist. Are you a fascist sympathiser?
The best is to host your own, navidrome is great and easy to set up. But if you really wanna hate on one, it’s Apple Music, believe it or not, they will actually delete ALL your playlists that you made over the years if you stop paying subscription for few weeks or sometime for days, why? Because Apple says fuck you, you are renting and you are not entitled for anything, which also explains why they are now trying to have hardware as a service with their new renting hardware program.. at least spotify doesn’t do that and keep your playlist to export later.
Careful, you'll get downvoted by knee-jerk reactions from people who have absolutely no idea whatsoever about the harm Spotify causes to artists trying to survive in the music industry.
I hacked the official client apart to hide some bullshit (like podcasts) and fix bugs that were pissing me off. Shared it exactly once and it stopped working within a month. Bugs were still there too
It’s not specific to this program, but I lately get this feeling that distributing widely a piece of software that exists for 5 days and saw a dozen releases in that period is stretching the open source trust model.
Software has finally started to get faster, and I love it.
Pls don't consider this a spam, but if anyone is interested in a fast native Slack client, I'm building one, since Slack themselves don't want to: https://msga.app
The volume of commits is quite crazy. For example, he wrote a +486/-51 commit in 20 minutes (33287cb) with quite dense rust code. That's about 25 changes per minute -- very impressive! The docs also smell of LLM output, for example describing the app as native despite using egui/wgpu.
What about egui and wgpu is not native?
Those are both generally what is considered running something natively. Both even mention running "natively" in their descriptions.
I guess what you mean is "OS-provided controls". In that case, ye that is not what this is.
If you're focused on lightweight, native and fast, I don't think you should use an immediate-mode GUI toolkit. Why does an app like this need to hit a 60fps framerate? It's not a game.
I was surprised to see an immediate mode gui toolkit.
They're great to integrate into a game loop because you control your loop, (and they're a delight to use) but I thought for perf retained mode was the way to go?
Am I missing something? Then again if the bar needing to be beaten is spotify's existing desktop app maybe it doesn't matter?
Edit: egui is an immediate mode GUI library written in Rust. egui runs natively on , and on the web it is compiled to WebAssembly and rendered with WebGL or WebGPU. Everything you see is rendered as textured triangles. There is no DOM, HTML, JS or CSS. Just Rust.
I was about to come here and say that egui is a terrible choice for web. Everything is rendered in a canvas, so accessibility and extensibility is thrown out of the window. Basic browser functions like pinch-zoom don't work, it has some very wonky visual bugs when resizing the window, interactions have a very noticeable delay, no browser extensions work with this.
This is really not a good solution for web apps, and if you're vibe coding your apps anyway, there isn't any reason not to have a native browser application.
Devs are constantly making the mistake of falling in love with immediate mode GUIs... because it's convenient for them, the developer. For the user, it's almost always a worse experience as things don't behave in the same way as the rest of the platform they're on.
egui is great for video game debug UI overlays and internal tools, and maybe some specialized graphical tools. Otherwise its quirks are too annoying for general purpose app usage. Sure, you banged out a UI quickly with it, at the expense of your users.
No, it’s fine. It’s the longer term DX that takes a hit. Anything other systems can do, immediate mode can do, because like those systems you can always cache across frames. The same can’t really be said for retained mode. We wrote some about it here: https://tritium.legal/blog/desktop
I clicked on that expecting to see something about the limitations of retained mode, but I didn't see anything. There's a claim about long term retained mode complexity, and a discussion about a winit bug...
* Right off the bat in the login screen, if you resize the window, it flickers
* I logged in. Double clicking the top part of the window doesn't maximize it, like I expect on basically all other windows. I'm using MacOS, btw
* Resizing the main home screen is also a flickery mess. Though I'll give credit, it's a fast flickery mess, because the official spotify app resizes like ass
* Okay, here's one more specific to egui and why I think its approach is not good outside of the app types I listed in my original comment: I type some text in the search bar. Let's say I want to highlight the last word after I've typed it, in order to delete it or type something else. On every other app on my system, I can hold Option + Shift + Left Arrow Key. Or perhaps Cmd + Arrow Keys to move the cursor to the start or end of the line. The egui app just doesn't work, because egui misses so many fine details about text manipulation on a given OS.
* In general, text handling just sucks
* Scrolling doesn't have the inertial bounce when it hits the ends of a scroll action
* It's very easy to create overlapping UI elements by resizing panels and/or the window itself.
Anyway, those are just some of the things from a few minutes of trying this specific app out.
In general, if it's an egui app, I already know there will be weird resizing glitches/flickers, a poor text editing experience, and it will typically not follow the platform's idioms and built-in gestures, scroll physics, behaviors, etc. In this case, the app is decent since it mostly just needs to play music, and you mercifully don't need to interact with it much when it comes to text and such.
But saying "It's a GUI like any other" is like saying "wonderbread is a bread like any other". Maybe it's a curse of knowledge? Similar things happen with coffee. One person says "tastes like coffee" while another can pick out individual flavor notes. Maybe I'm shouting into the void and no one gives a shit anymore, I dunno. But to me, these things matter and are a mark of quality.
If we have LLMs that can shit out whatever code now, why aren't people having them output truly "native" GUIs that use the UI framework of the OS so they can get all the expected behaviors by default?
This seems like more of a complaint about egui's choice to re-implement all the widgets from scratch than its choice to use an immediate mode API. The two are orthogonal. The IMGUI idea has its roots in a community of people that like implementing things from scratch, but you could implement it on top of native widgets if you wanted to.
The choice to re-implement native widgets from scratch is justifiable if the egui devs think they can do better than the native widgets do. It's also nearly required in practice if they want the toolkit to have consistent behavior across multiple platforms (something people have learned the hard way multiple times across multiple different UI libraries).
It's hard to get it right, but that's why the egui devs are writing a library: so that others can benefit from that hard work. Many of the things you pointed out are just bugs, and bugs can be fixed.
> but you could implement it on top of native widgets if you wanted to
Is there an immediate mode GUI API that uses native widgets? I don't think I've ever seen that but would be curious to try it out. Does it work well in practice? If it doesn't exist, then it's kind of a moot point, isn't it?
I sympathize with wanting "consistent behavior across multiple platforms", but that usually just results in "consistently kneecapped behavior across multiple platforms".
You should draw a distinction between “implementing the GUI” and “implementing OS behavior”. Flickering aside egui works mostly fine for the former; the latter falls apart on most non-browser-and-non-toolkit-wrapper approaches because people never stop to handle those things.
E.g your double click on title bar thing sounds less like egui to me and more like somewhere in the stack is missing an AppKit flag.
It's the first time I've heard about egui. I'm currently working on a desktop app that uses Tauri, and I realized there's a Tauri plugin that connects the two:
in addition to what other comments pointed out, on the demo ( https://www.egui.rs/#demo ) if you have a sidebar open, there is an offset of approximately the sidebar's width (though not exactly) between the system's mouse pointer position and the web app
I selfhost explo+slsk+lidarr+navidrome, for access on my phone I use dsub2000 or symfonium but mainly dsub2000.
Explo is the software used for the discovery https://github.com/LumePart/Explo
It automatically downloads daily jams, weekly jams and weekly exploration playlists from your listenbrainz account(free) using youtube, soulseek(with slskd) or lidarr (which support was merged very recently).
I also imported all my artists from my spotify account when I migrated which you can do in lidarr.
I also use this lidarr plugin https://github.com/TypNull/Tubifarry
with this lidarr docker image: ghcr.io/linuxserver-labs/prarr:lidarr-plugins for lidarr to download with slsk as it isn't supported in the main lidarr.
Thanks for sharing Explo, looks like a good project for discovery, I’m going to check it out!
I’m using a similar setup, with Lidar/Navidrome, but using Subwave for discovery. It works very well for going through your library and playing music like a radio station would, but it won’t recommend anything that’s not already in there.
A simpler, lower-tech alternative is to subscribe to Bandcamp newsletters. Infinite discoverability to be had and any purchases made directly support artists.
I'd like to add another absolutely great radio Station: "FIP" - France Inter Paris.
It belongs to Radio France has been running since 1971.
Everytime i Tune in i write down song and artist namens because the mix is so great for me. It really is all over the place but with a lot of style. Plus: once every half hour or so you get one of the famous announcers that tell you interesting or funny things. They are all women and a Main reason for FIPs uniqueness. And i don't even understand them :-)
You can listen via the Radio France app or find the link for the stream online.
(In the app there are also additional genre-specific streams of FIP but IMHO the Main one is the most interesting one because of its large variety that still fits together.
I discovered explo too and AI slopped my own solution a while back for the discover weekly from listenbrainz xD (navidrome-listenbrainz-jams on GH) - aside the fact that listenbrainz had technical issues for a bit - does the job for me; maybe I should add support for last.fm playlists as those seems to be more diverse I would say (but less API-friendly)
I've been thinking recently about buying an AI-capable GPU and using it to reverse-enginner and debloat apps I use every day. It seems like a task that even a dumber AI model could do. Disassemble the app, then either cut the things I don't care about, or just implement it fresh in a correct way.
I don't think models that run on single GPUs are capable of that yet sadly. You still need to spend ~$100k to get an actually good local LLM. Correct me if I'm wrong, local AI guys. It's really hard to get actually numbers on this stuff, but to run e.g. GLM 5.3 Flash as far as I can tell you need one of those super expensive 8 GPU machines.
if i tasked it with "create spotify" I'd need that much.
asking it to "disassemble Spotify and find out the minimal code path needed to play a song" is much more in reach. I don't need it to oneshot it. If it gets stuck, I've read enough disassembled C to figure it out and get it unblocked.
Instead of banging my head against a binary for 5 hours, I'll have my agent bang it's weights for 20 hours, then put in my 1 hour of polish.
My first task would be to fix the Android version of Facebook Messenger. My friends still stick with it because they have iPhones. I have been putting up with broken image previews for 2 years now.
This app is a dream come true for me. As a user I'm heavily invested in Spotify but I've grown more and more irritated with their client. Especially the recommendations, which thankfully are largely absent from your client.
Would love a setting to also remove the "Made for you" section, as well as the "Recommended for you" section, both on the home page.
I was using Spicetify to customize the official client to this effect, using CSS.
514 comments
[ 11.1 ms ] story [ 370 ms ] threadWould you be willing to share a bit more about this setup? The only thing keeping my on streaming is the fact that its almost impossible to find new music otherwise. I know LastFM exists but it just doesn't click for me the way that streaming does. I like discovering music organically.
- Actually listening to the music I have now. I think the art of listening through full albums has slowly died, but there is so much music we're ignoring because we just listen to Artist's top tracks.
- Word of mouth. Asking my friends what they listen to. This is a way that people used to discover music and I've found so much good music this way.
- Bandcamp. Bandcamp is SUCH a good way to discover new music. You can listen to the music in app, there are great articles and you can actually support the artists!
https://pitchfork.com/news/epic-games-sells-bandcamp-amid-la...
So, not enshittified, but either abandoned or headed for ensloppification.
Also, a great resource for discovering new music is the public library. They often have a curated CD section that I then rip into FLAC. I've had great chats with the people in my town's library, and I often pick a totally random CD off the shelves and discover some amazing artists.
I had to migrate away from youtube music since the experience was infuriating me every time. I love making playlists on the go. In youtube music after adding 30 tracks to the play queue, tapping 1 track accidentally deletes the play queue and plays this track. This made me feel bad every time it happened.
I don't see how it is just accepted to lose progress in 2026 as if we're using win95. It feels like 80% of the sw I use provides a caveman UX, not leveraging the tech, leaking implementation details and being constrained by technical reasons. On the other hand, working on Prepbook[0], I realized how hard it is to create the perfect experience and how it's even harder to justify it financially.
I'm doing discovery by talking to people, I love it. Every time I listen to Monolink I recall my co worker that just said "check out monolink" when he heard I love Ott. I love that it makes the experience about connection to people as well.
[0] https://prepbook.app
So I can say for sure that I don't share the slop sentiment. Sure, there's some generic filler every now and then, but any non-cohesive mix, as opposed to a carefully curated album is going to have songs that naturally become "fillers".
Just now, I discovered that Spotify snuck in "The Juan Maclean - Running Back To You (2014)", which is a cover of "Brian Bennet - Solstice (1978)". Neither songs are completely unknown, but they're also not exactly Bruno Mars.
I don't know if this is pure luck or algorithmic rhythm analysis, but for me it's working.
I found that Spotify was increasingly recommending AI artists and songs I already knew. It surfaced very little outside of my comfort zone and effectively nothing that wasn’t new. There’s a whole world of music out there that Spotify wasn’t showing me.
I don't know where this opinion came from (Probably Spotify's PR department) but it's just so weird to me. Do you think people didn't find new music before streaming? It's not impossible, you just have to talk to people.
How could they possibly do that? They cannot prevent people or AI from reverse engineering their APIs.
I assume that for a long time, Spotify was content to ignore stuff like librespot... they didn't help them, but didn't harm them, and generally to keep things stable enough that a project based on librespot . It does seem like that balance shifted over the last year, and now librespot is constantly breaking in new and mysterious ways. Some accounts work, others don't. Some tracks play, others don't. The devs did a great job fixing that stuff, but it's a game of whack-a-mole, and Spotify seems to have really upped the frequency of how often they break things. And that's for the lossy decoding, which is functionality that used to be pretty stable. Spotify reached out and (I assume) made some threats that explicitly shut down their work around lossless audio [1].
FYI -- I'm not associated with the librespot project, but I was actively working on a project that relied on it. Eventually I gave up in favor of self hosting, because I want my music to not break all the time. Shame, because I used to like Spotify a lot and now I'm actively looking to move away from it. That's one premium family plan subscription they're gonna lose! I'm sure they'll feel the sting.
[1] https://github.com/librespot-org/librespot/issues/1583#issue...
Already ended for me. They killed the plan I was on, and then started sending me begging emails to sign up for a new, more expensive one.
But once I experienced their platform with ads, I just stopped using it entirely.
There was a world before Spotify. Though the music labels didn’t much like that world we can easily go back to it.
There was, and it was definitely not "the golden age of music streaming".
It's just getting started.
We're going to vibe code the entire enshittified internet to be ours once again.
The dream of the 90's and 00's is alive again. The indie web is going to become unstoppable.
We can build anything of size and scale with the limited spare energy we have now. Every product will be reborn without big tech tendrils.
It’s such a wishful thinking, but no it doesn’t and won’t work this way. Code != useful product. Plus today’s web is all about fabricated content, AI bots, cloudflare challenge walls and all other annoying stuff. The very idea of being able to create something in seconds is already killing internet.
No one in all these years had gone through the effort of replicating the Spotify client with a snappy fast interface for a reason. Everything had been an integration into already existing software, or simpler interfaces, because the effort was not worth it. The equation has changed.
This is the best year in all of my 20 years in tech. I'm creating so much stuff and it's all I've ever wanted.
This is the dream of the 2000's, and big tech can't stop us anymore.
I think I'm going to write my own music player soon that behaves exactly like I want it to. Maybe this weekend. Or maybe right after my home automation project. But I can probably squeeze them both in.
It's like Christmas every day now.
Biggest mistake most librefication projects make is to do their project out in the open where they can easily be subject to legal pressure, then fall into complete disarray the moment that pressure appears. They can't move underground once pressure starts, because everyone already knows who they are.
That's not it. Most youtube downloaders are not developed in the open and Youtube still breaks them every other week by changing on purpose the way they operate. And, unlike highly obfuscated instructions, studying the network queries used by a simple app does not require expensive reverse engineering efforts from Spotify engineers; essentially, it's the same as developing in the open.
The only case i can think where obfuscation might help would be if the actual Spotify API consumers were servers by the app developers (or some form of obfuscation via residential proxies) and the app developed an entirely different API to/from its servers. But then, you're back to the developers and hosts can receive legal threats, etc...
I haven't seen any evidence of Spotify killing librespot. To me the project looks active and works totally fine. I don't have a new Spotify account to verify the claim above.
I suspect wilted-iris is conflating it with the recent changes to the Web APIs: new developer apps can't use all endpoints anymore. In Fastpotify if you add your Client ID I use both an older developer app and your app to keep everything as fast and seamless as possible.
And arguably Pandora always had a better radio algorithm than Spotify.
It wasn't, really. At least not completely. I fully agree on the algorithm - I miss times of scrobbling to Last.fm, which was much better at this. (Spotify always supported scrobbling to Last.fm from their client, surprisingly).
Spotify used to be snappy and worked really well on Linux. I even used it for local libraries, as it was one of the few options that didn't crash on mine.
It was at the beautiful time when we realized web apps can have local storage, Google released that experiment called Chrome to "show public how modern browser can evolve and inspire other browser makers how to progress". We know it ended up in "extinguish the market with it", unfortunately.
But Spotify chose native app approach - they distributed it as packages. Deezer on the other hand, back then (I don't know now) had just native web app that could pull music locally. I think it was an extension of Chrome (?). It also worked perfectly fine on Linux, almost two decades ago.
We had a lot of decent options back then.
Source?
We are seeing a slow but steady stream of small breaking changes, designed to gradually piss off everyone involved. While avoiding a large breaking change that attracts a load of bad publicity.
Sadly this strategy is the only good idea they've had in years.
One part of the classical diaspora I think is both under appreciated and undergoing something of a renaissance is that of contemporary choral music. There are many great examples but two I'd like to draw to attention to two of those I have recently sung, and really enjoy:
(1) The works of Ēriks Ešenvalds,[1] a Latvian composer who was a fellow in composition at Trinity College, Cambridge and brought really a large part of the surprisingly rich eastern European singing tradition to the west. I had never heard of the Singing Revolution against the USSR in Latvia, Estonia and Lithuania – countries with a wonderful, rich choral tradition where music (and choirs) played a really nonzero part in the downfall of the USSR. All absolutely beautiful and a group I sing with has worked with a lot of composers from this part of the world. Amazing soundscapes with harmonies that are never quite as good in equal temperament as outside it and yet always tonal and beautiful.
(2) Desmond Earley and the choral scholars of Trinity College Dublin – who conjures up a rich sound world of very pure, Irish tones that almost sounds synthetic but is made entirely from human voices and traditional instruments. It is simple to sing but difficult to master. I would highlight Dúlamán, [3] a traditional song about the economic importance of seaweed.
[1] https://www.hyperion-records.co.uk/dc.asp?dc=D_HYP202607B – track 6 (the whole lot is free!) [2] https://en.wikipedia.org/wiki/Singing_Revolution [3] https://www.youtube.com/watch?v=3iRfI1ezYjA&list=RD3iRfI1ezY... – this was a sampler from hyperion too and I have the whole lot legally as flac.
Perfect quality and it great selection.
1. (already posted on HN) Wanted to try Midori's early stuff, but no "1st" EP nor "2nd" LP. Not on Spotify nor Apple Music either.
Only yesterday:
2. Looking at Bleach (the Japanese hardcore punk/noise rock band): nothing and they aren't extremely obscure or anything (https://rateyourmusic.com/artist/bleach-4). They're on Spotify (https://open.spotify.com/artist/5gRsPZZNgrkagQnDlyFZUC) but missing two LPs; on Apple Music too (https://music.apple.com/us/artist/bleach/74570682) and one more LP available.
3. Okay, let's try Meat Puppets' lauded second LP from my backlog... artist is there, but four first LPs aren't. On Spotify and Apple Music.
4. For fun, let's try to find that very obscure kote kei demo, (螺旋 (Rasen) - Hysterical Noi「z」e / Like「M」(1997)). Nothing, of course, but well, I can't even find it on private trackers or SoulSeek (got some mystery mp3s "somewhere").
So, if I were to stoop down to streaming, looks like Spotify/Apple are less worse here.
In my case, some music I want is unavailable, some releases from Discos Fuentes of Salsa Brava from the 1970s.
But, in this case, they are also unavailable from Tidal, Spotify, etc...
If several artists / bands share the same name, there will be one artist page with all of the artists/bands releases. The queue management sucks, I can add stuff to the queue, move / remove individual entries. That's it. If I added an album to the queue and want to remove it, I have to click a little cross one time for each track of the album. Notifications about new releases: great. Except the UI is a tiny dropdown, and hovering over an item removes the little marker signaling it's a new one. It's really difficult to catch up when there are more than 5 new entries. etc.
Now the dzr developers will break the functionality. On purpose.
I used to use Tidal, until they patched something, and now FLAC is impossible to obtain from Tidal. Hopefully it still works tomorrow, sheesh.
Either it’s good or it isn’t, but it’s not good or bad because of how it was made.
Aside machining POM, what else is there. Injection molding tend to be great.
Had a lot of crashes, it often took many many seconds to change between the songs and often getting stuck, the buffering algorithm was nuts and eating a lot of bandwidth.
Everything on a standard Pixel. Full 5G coverage was available.
Alternatives?
Downsides are no native client (same webview approach as Spotify), not as strong recommendations (though slowly improving), good but slightly quirkier UI (also slowly improving). For me the trade offs are worthwhile.
[0] eg. https://resources.onestowatch.com/ethical-music-streaming-pl...
So, Deezer that had a audiophile target audience, has effectively lost the game.
how is a lack of an offline, standard, widely supported option a benefit?
Adding the Bluetooth layer adds more layers of encoding/decoding, and generally speaking it has narrower bandwidth.
I stopped sharing after that.
How desperate do you need to be to resort to this?
I did the same for Postman/Bruno.
I mean you can beat AI to do anything nowadays, but this looks not that bad
But hey, he's here, we can just ask him! @earcar
I guess what you mean is "OS-provided controls". In that case, ye that is not what this is.
They're great to integrate into a game loop because you control your loop, (and they're a delight to use) but I thought for perf retained mode was the way to go?
Am I missing something? Then again if the bar needing to be beaten is spotify's existing desktop app maybe it doesn't matter?
The demos are very good: https://www.egui.rs/#clock
Edit: egui is an immediate mode GUI library written in Rust. egui runs natively on , and on the web it is compiled to WebAssembly and rendered with WebGL or WebGPU. Everything you see is rendered as textured triangles. There is no DOM, HTML, JS or CSS. Just Rust.
So that's why text selection doesn't work.
But maybe it could be cool for doing some advanced animations or rendering games or something.
This is really not a good solution for web apps, and if you're vibe coding your apps anyway, there isn't any reason not to have a native browser application.
egui is great for video game debug UI overlays and internal tools, and maybe some specialized graphical tools. Otherwise its quirks are too annoying for general purpose app usage. Sure, you banged out a UI quickly with it, at the expense of your users.
* Right off the bat in the login screen, if you resize the window, it flickers
* I logged in. Double clicking the top part of the window doesn't maximize it, like I expect on basically all other windows. I'm using MacOS, btw
* Resizing the main home screen is also a flickery mess. Though I'll give credit, it's a fast flickery mess, because the official spotify app resizes like ass
* Okay, here's one more specific to egui and why I think its approach is not good outside of the app types I listed in my original comment: I type some text in the search bar. Let's say I want to highlight the last word after I've typed it, in order to delete it or type something else. On every other app on my system, I can hold Option + Shift + Left Arrow Key. Or perhaps Cmd + Arrow Keys to move the cursor to the start or end of the line. The egui app just doesn't work, because egui misses so many fine details about text manipulation on a given OS.
* In general, text handling just sucks
* Scrolling doesn't have the inertial bounce when it hits the ends of a scroll action
* It's very easy to create overlapping UI elements by resizing panels and/or the window itself.
Anyway, those are just some of the things from a few minutes of trying this specific app out.
In general, if it's an egui app, I already know there will be weird resizing glitches/flickers, a poor text editing experience, and it will typically not follow the platform's idioms and built-in gestures, scroll physics, behaviors, etc. In this case, the app is decent since it mostly just needs to play music, and you mercifully don't need to interact with it much when it comes to text and such.
But saying "It's a GUI like any other" is like saying "wonderbread is a bread like any other". Maybe it's a curse of knowledge? Similar things happen with coffee. One person says "tastes like coffee" while another can pick out individual flavor notes. Maybe I'm shouting into the void and no one gives a shit anymore, I dunno. But to me, these things matter and are a mark of quality.
If we have LLMs that can shit out whatever code now, why aren't people having them output truly "native" GUIs that use the UI framework of the OS so they can get all the expected behaviors by default?
The choice to re-implement native widgets from scratch is justifiable if the egui devs think they can do better than the native widgets do. It's also nearly required in practice if they want the toolkit to have consistent behavior across multiple platforms (something people have learned the hard way multiple times across multiple different UI libraries).
It's hard to get it right, but that's why the egui devs are writing a library: so that others can benefit from that hard work. Many of the things you pointed out are just bugs, and bugs can be fixed.
Is there an immediate mode GUI API that uses native widgets? I don't think I've ever seen that but would be curious to try it out. Does it work well in practice? If it doesn't exist, then it's kind of a moot point, isn't it?
I sympathize with wanting "consistent behavior across multiple platforms", but that usually just results in "consistently kneecapped behavior across multiple platforms".
E.g your double click on title bar thing sounds less like egui to me and more like somewhere in the stack is missing an AppKit flag.
https://crates.io/crates/tauri-egui
Maybe I’ll use it in my next project, the demos are good!
in addition to what other comments pointed out, on the demo ( https://www.egui.rs/#demo ) if you have a sidebar open, there is an offset of approximately the sidebar's width (though not exactly) between the system's mouse pointer position and the web app
Explo is the software used for the discovery https://github.com/LumePart/Explo It automatically downloads daily jams, weekly jams and weekly exploration playlists from your listenbrainz account(free) using youtube, soulseek(with slskd) or lidarr (which support was merged very recently).
I also imported all my artists from my spotify account when I migrated which you can do in lidarr.
I also use this lidarr plugin https://github.com/TypNull/Tubifarry with this lidarr docker image: ghcr.io/linuxserver-labs/prarr:lidarr-plugins for lidarr to download with slsk as it isn't supported in the main lidarr.
And it seems to have been merged so the plugin branch is not needed anymore, see: https://github.com/Lidarr/Lidarr/pull/1829
So the official image would work.
I’m using a similar setup, with Lidar/Navidrome, but using Subwave for discovery. It works very well for going through your library and playing music like a radio station would, but it won’t recommend anything that’s not already in there.
As Music Assistant supports subsonic (https://www.music-assistant.io/music-providers/subsonic/) and Navidrome expose a subsonic endpoint it should be possible (https://www.navidrome.org/docs/developers/subsonic-api/).
https://www.radiofrance.fr/fip
Hoping for a future in which people complain about missing basic functionality like winamp mode being missing in their music player of choice!
Let me start: I was going to recommend foobar2000 with the spotify plugin but the lack of a winamp mode must be a dealbreaker for many!
asking it to "disassemble Spotify and find out the minimal code path needed to play a song" is much more in reach. I don't need it to oneshot it. If it gets stuck, I've read enough disassembled C to figure it out and get it unblocked.
Instead of banging my head against a binary for 5 hours, I'll have my agent bang it's weights for 20 hours, then put in my 1 hour of polish.
My first task would be to fix the Android version of Facebook Messenger. My friends still stick with it because they have iPhones. I have been putting up with broken image previews for 2 years now.
Would love a setting to also remove the "Made for you" section, as well as the "Recommended for you" section, both on the home page.
I was using Spicetify to customize the official client to this effect, using CSS.
Could you speak a little more about the trade-offs and decisions there w.r.t. performance.
(Nice work btw, seems very interesting!)
C.f. this comment[0]
[0] https://news.ycombinator.com/item?id=49519099
Potify sounds like a toddler is learning to take a dump. And well, putting "fast" in front of it doesn't impress either in that case.