My music setup was a pinned browser tab for years. It worked, technically. It also ate RAM doing nothing, my media keys only worked when that tab happened to be focused, and I killed the music at least once a week by closing the wrong window. There’s no official YouTube Music desktop app on Linux, and most of what exists is the same web player in an Electron shell.

So I built my own. It’s called Limusic. Rust and Tauri, no bundled Chromium, audio goes through libmpv.

You sign in with your actual YouTube Music account, so your playlists, likes and subscriptions are just there, and liking a song or adding it to a playlist syncs back like you’d expect.

The part I actually care about is that it’s not bare bones:

  • Proper MPRIS, so media keys and your now playing widget just work
  • System tray, closing the window doesn’t kill the song, plus play/pause and skip from the tray
  • Discord Rich Presence with album art and a live progress bar
  • Last.fm scrobbling, connect once and forget about it
  • Synced lyrics in a side panel, click a line to jump there
  • Listen Together, synced rooms so you and a friend hear the same thing at the same time
  • 8 themes, including Catppuccin, because obviously
  • Gapless playback, volume normalization, shuffle, repeat, autoplay radio
  • Your queue survives a restart

Free and open source, GPL. AppImage (self updating) or an rpm for Fedora, which is what I daily drive. No Flatpak or AUR yet, both are on the list. There’s a Windows build too, and no macOS one yet.

Would really love for people to try it, and I’d genuinely like to hear what everyone thinks. ❤️

Site: https://simohypers.github.io/limusic/ Downloads: https://github.com/SimoHypers/limusic/releases/latest

Not affiliated with Google or YouTube, just a thing I made because I wanted it

  • echo@lemmy.ml
    link
    fedilink
    arrow-up
    61
    arrow-down
    2
    ·
    16 days ago

    Given the first few commits referring to scaffolding phases and the frequent use of em dashes, I’m suspicious this was built with AI assistance. Nothing wrong with that, but a disclaimer of some sort somewhere would go a long way.

  • db2@lemmy.world
    link
    fedilink
    arrow-up
    44
    arrow-down
    2
    ·
    16 days ago

    What part, if any, does “AI” have in the development or use of this?

    • Chloé 🥕@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      34
      arrow-down
      4
      ·
      16 days ago

      from the gitignore:

      /.agents/
      /.claude/
      /CLAUDE.md
      /PHASE1-PROMPT.md
      /RELEASING.md
      /skills-lock.json
      /plans
      

      so probably quite a bit lmao

      and from a brand-new account too. this is slop, people

      • db2@lemmy.world
        link
        fedilink
        arrow-up
        16
        arrow-down
        2
        ·
        16 days ago

        Does this “dev” even know vibe coded slop can’t be licensed?

      • pineapple@lemmy.ml
        link
        fedilink
        English
        arrow-up
        11
        arrow-down
        11
        ·
        16 days ago

        Just because AI was used in the development process doesn’t mean it is bad. Doesn’t mean it’s good either but you can’t just ignore it because AI had something to do with the process. Things being made by humans doesn’t make it good either people can write really bad code.

        • JustEnoughDucks@slrpnk.net
          link
          fedilink
          arrow-up
          16
          ·
          16 days ago

          I think it is the other evidence that it is vibe coded

          • Brand new account
          • Dev only responds to non-technical or feel-good comments
          • other commenters have pointed to AI teltale vibe coding syntax signs in many of the files
          • Claude extra files in early commits and changing gitignores to do it.

          Advertised Vibe coded projects absolutely are by default bad and here is why:

          • Developers do not understand what they have built, so can’t debug it beyond “Claude, fix this”
          • Vibe coded projects are easy-come, easy-go very often abandoned (73% of the vibe projects on flathub, and those are the people who thought far enough to decide putting it on flathub was worth it)
          • developers can’t answer any questions on security when the app will be handling credentials, be hosted on a server, or attach to some sort of live service -> absolutely gaping security hole that you just have to cross you fingers that Claude didn’t do another “oops, you are completely right to push back,1500 common attack vectors were left open and you are now part of a CSAM botnet, do you want me to fix it?”

          If someone wants to make small scripts, one-off test firmware for a home project, writing test cases, design reviews, boilerplates, etc… Are arguably good usecases.

          Vibe coding an ongoing software service is almost always a hard no-go and statistically will be abandoned and unupdated, leading to even more security and usability issues.

          • pineapple@lemmy.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            15 days ago

            I think your right it is indeed vibe coded, and vibe code does mean it’s bad by default. If it’s made using AI assistance and a developer that knows what there doing is checking over what the AI writes, then it can be fine. But this person advertised they made it using there very own vibe coded vibe coding software!.

    • Richard@lemmy.world
      link
      fedilink
      arrow-up
      24
      ·
      16 days ago

      I would say a great part of this code was at least “AI touched”. There are em dashes in the rust scripts, in the markdowns, in the commit messeges. @Simohypers@lemmy.world - disclose your stuff man! people should know what they are putting on their computers

    • communism@lemmy.ml
      link
      fedilink
      arrow-up
      14
      arrow-down
      2
      ·
      16 days ago

      If you view the first commit, you can see the CLAUDE.md, so at least in part vibe-coded.

      Tbh all the vibe-coded apps look the same, and the UI has that vibe-coded style, so I’m not surprised.

        • communism@lemmy.ml
          link
          fedilink
          arrow-up
          6
          arrow-down
          2
          ·
          16 days ago

          I didn’t say it did, but also “vibe coding” is a fairly new term that does not have a strict consistent definition anyway.

          • Zeoic@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            8
            ·
            16 days ago

            I’m not sure how else to interpret your comment… You found evidence of AI and concluded its at least partly vibe-coded. As for the definition, no I don’t think its all that inconsistent. Feel free to look it up.

            • communism@lemmy.ml
              link
              fedilink
              arrow-up
              2
              ·
              16 days ago

              Semantics are defined by how a term is used, and people use the term to refer to AI generation of code in any capacity, as well as stricter definitions. The first commit is not just “evidence of AI”, it’s no code and just a markdown file instructing an LLM, which meets at least some definitions of vibe-coding.

              Insisting “a word doesn’t mean X, it means Y” doesn’t make it so. Arguing about definitions can be on one of two premises: the word is in practice used to mean Y and not X, or it’s useful to define the word to mean Y and not X. You’ve argued neither, just made an assertion.

  • vala@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    19
    arrow-down
    2
    ·
    16 days ago

    Pretty tired of people posting slop they don’t understand.

    This is going to break in a few weeks when YouTube changes again. This is such a waste everyone’s of time. Just noise distracting from people who actually understand the things they build.

  • grapemix@lemmy.ml
    link
    fedilink
    arrow-up
    14
    ·
    16 days ago

    First of all, I like rust+tui stack and thanks to sharing to community,but I hate to see open source dev wasting valuable time on reinventing wheel on something constantly change. YouTube’s api, webpage constantly change to prevent third party sw. While we have invidious which can be use as backend, why ppl want to waste their time and abandon project quick? Freetube can use invidious api as source for example. What we need make invidious more backend friendly (i always confused why invidious dev not focus on their api only) and able to have single source of truth on subscription, history across mobile, desktop frontend app

  • MangoCats@feddit.it
    link
    fedilink
    English
    arrow-up
    14
    arrow-down
    1
    ·
    16 days ago

    Best of luck with the YouTube interfaces - anything I have coded to them dies within a year or less due to them changing the rules.

    On the flipside: awesome app, probably worth the effort to keep whacking the moles as they come up. Good job so far.

    • Simohypers@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      16 days ago

      Thank you so much, I’ll take that into consideration, I’m prepared to find ways when the official youtube music changes their ways.

      As long as they don’t close their servers for us 😅

      • MangoCats@feddit.it
        link
        fedilink
        English
        arrow-up
        2
        ·
        16 days ago

        Locally stored .mp3 files for the win… all kinds of ways to legally obtain those. You have inspired me to try again to code up my ultimate robo-DJ… we’ll see how far it gets this time.

        • ranzispa@mander.xyz
          link
          fedilink
          arrow-up
          1
          ·
          15 days ago

          YouTube, Spotify and other services have a great advantage over locally stored mp3: a strong recommendation system and a virtually infinite library.

          It would be good to have a recommendation system which does not depend on these systems, but the difficult part is to get the data to build it.

          I reckon the metadata scraped by Anna’s archive may be used to build something like that, but that will eventually become outdated.

          • MangoCats@feddit.it
            link
            fedilink
            English
            arrow-up
            1
            ·
            15 days ago

            I’m kind of over the recommendation system infinite library phase of my music listening. With 10,000+ songs in my library, I’m happy enough to hear an “old favorite” a couple of times a year, and by the time all those old favorites have played, 6+ months has gone by, so…

            a recommendation system which does not depend on these systems, but the difficult part is to get the data to build it.

            Acousticbrainz / Essentia can be the basis for that, or at least good enough for me to sort out the Metallica from the Enya and play the right mood at the right time from my collection of eclectica.

  • RunningInRVA@lemmy.world
    link
    fedilink
    arrow-up
    14
    arrow-down
    2
    ·
    16 days ago

    Wow. I’m not a YT music person and MacOS is my daily drive, but this looks incredible. Well done and a very nice contribution to the community.

  • Taasz/Woof@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    3
    ·
    15 days ago

    I’m always curious about youtube music apps, it seems like there are so many of them everywhere, even f-droid has like 20+ clients listed that all look very similar.

    Maybe just a fun app to try making so a lot of people do it?

  • Vik@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    16 days ago

    thank you for sharing. love metrolist and the idea of having a desktop equivalent.

    There’s also pear desktop but it’s sort of a web wrapper for the stock yt music experience, and likely has a comparable memory footprint to your situation having it as a pinned browser tab.

  • warmaster@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    16 days ago

    Damn, dude! This looks amazing! I’ll be trying the Appimage but I’ll be using the flatpak when it’s released.

  • yucandu@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    16 days ago

    Pretty cool, but it seems stuck to my wrong google account. I can’t find any switch account button. Tried manual login and copying a cookie from a window with the different account running, still switched to the empty account.

  • isleepinahammock@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    16 days ago

    Maybe a simple question, but any guides on what this means? I get that it’s supposed to be something in the dev tools, but beyond that, not sure how one is supposed to proceed.

    • foofighter@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      16 days ago

      These are instructions to locate the login cookie for YouTube that’s stored in your browser so that you can import it into OPs program. Start with the network tab of the browser’s dev tools.

      • isleepinahammock@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        1
        ·
        16 days ago

        So how do I do that? How specifically do I find a youtube login cookie? I tried searching, but could not find any useful guides.

        When I look in Dev tools in firefox I see a big pile of nonsense. I guess what would be really useful here is an installation guide with actual screenshots and detailed instructions. The instructions provided assume a lot of background knowledge that most people will not have.

        Sure I could just log in, but I also don’t want to trust my log in details to a random program I download.