6 comments

  • jhogendorn 19 minutes ago
    The most important question: does it fix shuffle?
  • epsteingpt 10 hours ago
    Upvoting for the name only. Great name.
  • saintfire 10 hours ago
    I intend to try this out later in the week, but are you aware ncspot exists?

    I've been using it for a few years now and it solves similar issues, using librespot as well. Never had an issue with rate limiting and such. I do have issues where Spotify breaks the client all the time, which I'd imagine this suffers from as well.

    • fouc 8 hours ago
      the post mentions ncspot
      • saintfire 1 hour ago
        Ah you're right, my brain totally skipped over that sentence.
  • Retr0id 14 hours ago
    I'm a bit confused, are you saying you worked around spotify's ratelimits by using non-spotify APIs to achieve similar things? Why not just RE the official client and use the same APIs it uses? (You can get lossless that way, too!)
    • LargeModGames 14 hours ago
      That is basically what I did. Librespot already reverse engineered the spotify client but mainly for playback. I extended my fork to include internal endpoints. These are spclient (extended-metadata, playlist and rootlist, collection, connect-state, lyrics, radio) and Pathfinder GraphQL for search. It doesnt call the public web API (api.spotify.com) anymore so doesnt suffer from those API rate limits.

      I looked at lossless too, that is probably possible, but im not going to implement it. It uses a different key system called PlayPlay. If I manage to implement it, it would be considered DRM circumvention and I dont really want to mess with that tbh

    • red-breeze 14 hours ago
      [dead]
  • daem 15 hours ago
    What’s your motivation for implementing a third-party Spotify GUI?
    • LargeModGames 15 hours ago
      I got into Linux about a year ago and found Spotify-tui but that didn’t work anymore. So I tried to fix it and learn rust at the same time.

      A few months ago my dad also wanted to use it but he never opened a terminal before in his life so I build this GUI for him

      • philipwhiuk 14 hours ago
        I've never understand the correlation between using Linux and needing to suddenly have everything run in a CLI to the extent of building your own windows in text.

        It's like you're not aware Linux has desktop environments.

        • techgnosis 14 hours ago
          Not the OP but I would guess its a combination of things

          1. The style and motif. I've never met someone who got interested in Linux and didn't immediately appreciate the look and feel of the terminal. People see hackers and fast scrolling text on TV and in movies and it's just fun. Lord knows I was and still am obsessed with CLI and TUI stylings. It brings me joy.

          2. It's a lot easier to get started writing a TUI or a CLI. Picking a GUI framework is not easy and many times they are not fun to use. You can only use so many languages to write a GTK app or a QT app. You can use almost any language you want for a CLI tool.

          3. CLI and TUI tools are way more universal. I don't have to care if you run GNOME or KDE or if you have GTK-3 or GTK-4 installed or whatever. CLIs and TUIs just work. I can also distribute a single static linked executable instead of a .deb or a Flatpak or something more difficult.

        • slashtom 9 hours ago
          It's like you're not aware RAM is a precious commodity.
          • Fire-Dragon-DoL 9 hours ago
            This sounds a bit like "I have to cut a cucumber, let me use a light saber for this"
            • ornornor 6 hours ago
              The light saber is called electron in this metaphor.
        • LargeModGames 14 hours ago
          To be fair it was part looking cool and part that the official client Spotify ships for linux is not the greatest. It looked bad and ofcourse used a lot of RAM, that didnt help when i tried to run it on a very old laptop
        • ghost-of-dmr 12 hours ago
          [flagged]
  • fouc 8 hours ago
    I bet all the new Omarchy users will really appreciate this one!