Greetings Lemmings!

I am not new to self hosting; been at it for a few years. And I have neglected a very important part of my home lab; MUSIC!

So I stream music from Navidrome to all of my devices.

My music library has grown organically over the years, for probably the past 17 years. And a few times I had manually organized and fixed up some of the tags. But ultimately I ended up with a mess of a library.

I am working on cleaning that up. Though I absolutely should have cleaned it up before I created 2 backup scripts.

In short, I have a script that is called from a systemd service on a timer that runs my backup script that essentially more or less uses rsync to mirror the files in LiveMusicDir to MusicArchive1. This happens on my docker host where my Navidrome lives. The Music is on an NFS share hosted outside of the docker host.

The next step I run another similar setup on my desktop; systemd service running a script on a timer that uses rsync and other dependencies to track changes.

What I plan to do is organize the source. I am using beets, and learning as I go.

What methods do you use for managing a large music library?

  • zod000@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 minutes ago

    I just manually clean up the tags/directory structure and use rsync. I have tried a few other things, but they always end up being more trouble than it is worth for me.

  • danielfm123@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 hours ago

    I use self hosted nextcloud for backup, synchronization is so fast, I got a cron job that synchronizes every 15 mins.

    Before that I was using rclone for backups in idrive (super cheap s3 equivalent)

  • nfms@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 hours ago

    My experience is similar to a lot of people here. I see that we’ve all had our hurdles over the decades while moving OS’s and I’ve used many of the apps mentioned here (Windows/Linux). I couple of years ago i decide to stream my music because i was already into self-hosting and i really needed to properly tag my music for whatever server app I would use.
    I always had my music structured by folder, i was using desktop apps for playback so it kinda worked for me. But i wanted to have better tagging. I had already used kid3 and picard but it lacked automation so I used beets for the albums on my collection (about 12K of songs). It wasn’t perfect but the software is not blame and it was a great way to tag automatically and move files for a consistent folder structure to match my needs.
    Right now, since i don’t add music all the time ( a couple per week) i mainly stick to picard to tag new albums. it has 3 actions to manage the files on disk (move, rename, tag), I have script rules for naming files (if required) and i use the ReplayGain plugin. But I also have to point out that the learning curve of picard is rather high, the UI is a mess and it took me a really long time to understand how it works or where the options are.
    After trying airsonic for a while i moved to Navidrome and have been using symfonium (android) and Feishin (desktop). It’s the best experience I’ve had since i started listening to music on my pc (199…6/7).
    Regarding the source files, it lives on a disk and is backed up to another disk, managed on openmediavault.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      I did putz around with Picard way back but didnt stick with it because of its UI. Though I may set up a docker container just to have the option to use it…

      Navidrome + Feishin for desktop + Symfonium for Android is the route I went too.

      Though I am playing with Tempus as well for Android too. Its a nice Open Source option.

      Degoogling my life was a motivator to self host.

      • nfms@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        7 hours ago

        Why docker though? The desktop app is available on all OS’s.

        • hellmo_luciferrari@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 hours ago

          I like having as many apps accessible via the browser as possible. Makes it portable for me.

          No matter how many machines, experience is the same. With these apps, I can allow other users access.

          Its accessible through my phone as well that way.

          And if I ever have to reinstall my OS its quicker because of less that I need to install. And on top of that I only update that one container vs updating every machine I have a program installed to.

  • myrmidex@belgae.social
    link
    fedilink
    English
    arrow-up
    2
    ·
    14 hours ago

    Big beets fan here. Only thing I don’t like, other than the odd album missing from their index, is the weak genre naming. I acknowledge this is murky territory, I’m wondering how other users handle the genres.

  • ThePooDragon@lemmy.world
    link
    fedilink
    English
    arrow-up
    31
    ·
    1 day ago

    I personally use a music tagging/renaming program called Picard. Point it at a relatively unorganized music folder, it tries to identify each track based on the existing metadata or acoustic signature, adds/modifies the track metadata based on the Music Brainz database, and runs a custom renaming script that moves it into place per my preferences.

    Its not as automated as I would like, and takes some hand holding, but keeps my collection clean and standardized.

    • Damarus@feddit.org
      link
      fedilink
      English
      arrow-up
      1
      ·
      13 hours ago

      Picard is the way to go if you want to get the highest quality tagging with exact release matching. Most would probably not care too much about this, however when I know my files were ripped from a Japanese release, I want the tags to reflect this. Picard allows me to find the right match before any tags are written. This is especially helpful when you have two or more different versions of the same album, e.g. one CD rip and one vinyl rip, or two CD releases with different set of bonus tracks. My directory structure and tagging rules allow me to manage this consistently with no manual workarounds.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 day ago

      I was looking into setting a docker container of Picard, and see what I could do with it. However, I was looking for the most automated solution I could find; and happened to land on Beets.

      Though I may still try out Picard as a supplementary option.

      • SayCyberOnceMore@feddit.uk
        link
        fedilink
        English
        arrow-up
        2
        ·
        14 hours ago

        Not tried beets (this thread only now made me aware of it), but adding a +1 for Picard

        I let it run on a huge chunk of my music and apart from a few tracks it thought should be in compilation albums, worked really well.

        After the big sift, I basically just run it on new stuff when I get it…

        Sometimes I use Puddletag to fine-tune some data.

        I find most new things I get from Bandcamp, etc are in MusicBrainz, so not much editing required… although I have spent some time over the years carefully entering some older, more obscure music.

  • DecronymB
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 minute ago

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

    Fewer Letters More Letters
    NAS Network-Attached Storage
    NFS Network File System, a Unix-based file-sharing protocol known for performance and efficiency
    Plex Brand of media server package

    [Thread #56 for this comm, first seen 19th Jul 2026, 03:30] [FAQ] [Full list] [Contact] [Source code]

  • irmadlad@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    1 day ago

    What methods do you use for managing a large music library?

    I have a physical collection I have been accumulating for decades now, that goes as far back as 1937. I have converted everything to flac and it resides on a NAS drive. I have used Beets and Picard, and back in the day MP3Tag for tagging, and surprisingly, MusicBee (Windows) is great for embedding lyrics. It takes a while to embed lyrics in a large collection. Currently I have everything tagged, in their respective artists/albums, and embedded lyrics for about 75-80% of them. I run Navidrome and stream via Feishin locally, and Substreamer on my mobile.

    ETAL I have also used czkawka_gui in the past to clean out duplicates.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 day ago

      MusicBee, I loved that player back when I was a Windows user. And MediaMonkey if you didn’t mind paying. Those two were the best music players. Now that I am full time Linux, there isn’t a player that even compares.

      However, Feishin is about as close as I can get to a UI I like for a player, and luckily it works with Navidrome (jellyfin and others too)

      • myrmidex@belgae.social
        link
        fedilink
        English
        arrow-up
        4
        ·
        14 hours ago

        Whenever I have to sift through a big collection, Feishin is no longer the right tool. In that case I use Quod Libet with the 3 panes layout. Resembles Musicbee/MediaMonkey pretty well, while being very fast!

        OP: Don’t forget to have some fun with your collection: Mixxx - mixing and looping, so much fun!

      • irmadlad@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        12 hours ago

        MusicBee

        It was, and imo, still is a great piece of software. I’m not always on a Windows machine, but MusicBee is a staple when I am. Every so once in a while, someone writes a piece of software for Windows that just kicks ass. Few and far between, but it’s pretty good stuff.

          • irmadlad@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            12 hours ago

            It would be nice. I’ve hung on to my stripped down Windows 10 now because I use a program called BlueBeam for one of my business ventures that absolutely has to run on Windows. There is no Linux equivalent, and there is no running it in Wine.

            • hellmo_luciferrari@lemmy.zipOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              8 hours ago

              I am not familiar with bluebeam. Wine has come a long way and so have other runners based on Wine too.

              There is one Windows app I won’t ditch, and I’ve found running via Wine wasn’t working well, but bottles using their SODA runner work well for it. (GuitarPro) and other programs, even non games work in Proton or ProtonGE.

              Though I totally understand, as some other music software I need doesn’t work ib Linux no matter the option.

              I did have USB Pass-through working on Virt-Manager install of Windows for my Line 6 equipment.

              • irmadlad@lemmy.world
                link
                fedilink
                English
                arrow-up
                2
                ·
                7 hours ago

                BlueBeam: So I get a complete set of new construction plans sent to me. Basically I count for money. Say it’s an HVAC contractor that wants all the HVAC equipment counted For example: all grilles, all air handlers, all everything it takes to complete the HVAC portion of the new construction. BlueBeam will just about count for you if you set it up with some special scripts and macros that have been programmed in. Then when I’ve counted everything for HVAC, I call vendors for pricing and work up an estimate to send to the contractor for his approval. He then takes all of that, decides what he might need to add as far as $$. We call it the ‘D’ factor or the difficulty factor because working in and around trusses, tight spaces, crawl spaces, etc takes extra. Then he puts his O&P on it and sends it out for bid.

                But if you boil the ox down to the bouillon cube it goes like this: Count with the count 1, ah ah ah, 2 ah ah ah… that’ll be $4500 Mr. contractor sir.

  • BruisedMoose@piefed.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    21 hours ago

    I see you’re settling in beets and if that works for you, that is excellent. Just this week, I started running it on copies of some albums in my collection to see how it did.

    Over the last year, I’ve ripped (or cleaned up existing) about 25,000 songs. My process has really been rip them with whatever tags I can find, put them all through MP3tag to retrieve and clean up metadata, then run a script to backup the FLAC off-site, convert to MP3 locally, and copy to my NAS in my preferred directory structure.

    I was thinking maybe I don’t want to deal with the tagging, hence my trials with beets. But you know, I don’t necessarily trust everything in Musicbrainz or like how they handle some things, so I’m probably going to stick with the semi-manual tagging. I am looking at still using beets to handle lyrics, replaygain, and fleshing out less important metadata.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 hours ago

      I havent trusted it with my music in RW mode yet. I was just getting statistics. however, I am using a custom built docker container based off Lyrica that downloads LRC files for me. Its running right now. And I like having karaoke style synced lyrics .

      • BruisedMoose@piefed.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        11 hours ago

        Yeah. I used FileFlows for a bit to download lyrics and I do already have replaygain being added every night for new additions.

  • __hetz@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    Beets for importing, ascii only, lastgenre, fetchart, whatever other plugins I’m forgetting, /artist/yyyy_album_name/ directory structure, 01_title.ext for single disc, 01-01_title.ext for multi disc. I invoke beets manually just to keep an eye on how things get matched up and tagged during the process. I deal in full albums, LPs, compilations and such because it’s often easier to maintain and match metadata than with individual tracks. I guess it’s a data hoarder / archivist compulsion too, but it’s rare I can’t find at least one other track on an album appreciable so… why not?

    A weekly rsync pushes the beets DB and library from my TrueNAS server to another server with a 8TB external dedicated to backing up my most important stuff (personal projects, password store, compose files, confs, etc). I’ve got an rsync alias set up on my laptop I invoke manually because I’m nearing the limit of what I want to allot to music. At least until I decide to get a larger drive.

    That’s local in triplicate, with zraid on the NAS and a fourth copy on my phone, which leaves me feeling pretty good about not losing any music outside of a house fire or tornado. I was also rsync’ing all my media (music, movies, shows) to another TrueNAS setup at a relative’s but some things have changed with that so it’s on hold. Not fond of missing my off-site backup but hopefully can resolve it soon.

    Everything is local only right now. The library is mounted read-only in Jellyfin so can play music from pretty much any phone, TV, computer, my Steam Deck, etc throughout the house. If I ever decide to open things up, reverse proxy or whatever, I might look into Finamp but I buy a flagship phone every six to ten years for the storage space so I can just take my music with me. Might eventually switch that to a dedicated music device.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      24 hours ago

      Right now I am running beets against my live music dir and running a few different commands on it to see:

      Duplicate albums:

        beet duplicates \
          --album \
          --full \
          --strict \
          --key albumartist \
          --key album \
          --path \
        > config/duplicate-albums.txt 
      
      

      Searching across different albums:

      docker exec -i -u abc beets \
        beet duplicates \
          -F \
          -s \
          -k artist \
          -k title \
          -f '$id | $artist | $album | $title | $format | $bitrate | $length | $path' \
        > config/duplicates-across-albums.txt
      

      And running this right now for audio checksum comparison:

      docker exec -i -u abc beets \
        beet duplicates \
          -F \
          -C 'ffmpeg -i {file} -f crc -' \
          -f '$id | $artist | $album | $title | $format | $bitrate | $path' \
        > config/duplicates-audio-checksum.txt
      

      And when that is done I know I can inspect candidate based on ID with something like this:

      docker exec -it -u abc beets \
        beet ls 'id:1524' \
        -f '$id
      Artist: $artist
      Album: $album
      Title: $title
      Format: $format
      Bitrate: $bitrate
      Sample rate: $samplerate
      Bit depth: $bitdepth
      Length: $length
      Path: $path'
      

      I have the main music I am scanning mounted in read only right now; but when I am done collecting some information about it, I am going to remount and restart the container, along with modifying some config options.

      Ultimately, I am going to go Artist by artist with something like this:

      docker exec -it -u abc beets \
        beet duplicates \
          -s \
          -k artist \
          -k album \
          -k title \
          --move /quarantine \
          'albumartist:"Example Artist" album:"Example Album"'
      
  • Grass@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    23 hours ago

    I just use lidarr to rewrite the tags to be consistent and that seems to be enough for navidrome to put the correct cover art 90% of the time.

  • CerebralHawks@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    24 hours ago

    Definitely more advanced than what I do! I’ve also been collecting for a long time, and I’ve just been storing the media. I went from Windows/x86-64 to Mac/ARM64 a few years back, and I have kinda limited options that way. I would have just gone to Linux if my computers didn’t die, but at the time, Apple made sense.

    I do Apple Music, but, that doesn’t answer the question. I also self-host my music via a Plex server. I got Plex Pass for well under $100 on sale years and years ago. Much harder to recommend now. Plexamp is awesome for music, and I also use Prologue (iOS app) for audiobooks hosted on Plex.

    For tagging, I use Mp3Tag and tag manually. It was free on Windows, but the guy wants $30 for it on Mac. It’s a long story as to why, but after he was kind enough to explain it to me… I paid the man. (For my part, I’d used it for free for many years and I got a lot of miles out of it, and still do, and it’s a good, well maintained app from a solo developer.) There are free alternatives. Not so many good ones on Mac (part of why I paid). For album art, I get them from Apple using this handy site (not mine): https://bendodson.com/projects/itunes-artwork-finder/ — you can use 600px or you can use either 2000px or 3000px, I forget which. I’m good with 600px. I think Apple uses the smaller size for phones and the bigger one for TVs and Macs (especially as iMacs have 5K screens now).

    My library might also not be as big as yours is. Plex says I have 14,462 tracks indexed. Maybe those are rookie numbers, I dunno. I pretty much have everything I want. All I’d really want now is to take my Apple Music playlists and download them to m4a 192k or similar. I have a few decade playlists that are like 500-600 songs each (80s, 90s, and 00s).

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      24 hours ago

      I have gone in so many different directions. When I was on Windows I would use MusicBee or MediaMonkey for tagging, I would do it album by album. It was pretty great, but I haven’t used Windows in years. There are not any Media players that are for local files that I even like for Linux.

      So, I ultimately moved to Navidrome. Have lost some of my tunes, but was at 50k at one point. I am back down to about 23k.

      Beets seems pretty neat so far, automatic is my goal!

      • CerebralHawks@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        12 hours ago

        Navidrome looks like good stuff. If I ever move off of Plex, I’ll absolutely be looking at it. I’m running macOS, but my goal is to buy a gently used Windows PC from a business or something (like they couldn’t upgrade it to Windows 11 or whatever’s after that) and replace Windows with Linux, and use it as a server. My Mac (M2 Pro, 16GB RAM) is more than enough machine to run multiple servers, but I’d rather do that with a dedicated machine running some *nix that I can terminal into from the Mac. Navidrome does run on macOS with minor tweaking that is not above my skill level, but when I set up the server I’ll be looking real hard at alternatives.

  • starshipwinepineapple@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 day ago

    My music is on my PC hard drive and synced to my server. Last year I spent a few weeks tagging my old stuff and i tried beets, kid3, and picard but ended up liking picard the most just since it was a lot better at grouping albums together and finding the best matches ime. Any new music is tagged with picard. Then i run a navidrome docker container with the music library mounted. And i use feishin for desktop and symfonium for mobile use.

    If you’re interested, i wrote about my experience migrating from iTunes to navidrome and tagging my music here (no ads, monetization, or tracking)

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      24 hours ago

      Feishin, and Symfonium are fantastic.

      Though, if you at all care about whether or not it’s open source, I would argue Tempus is another good option for Android.

      https://github.com/eddyizm/tempus

      Which I have been trying out a bit as of late. And works with Android Auto on GrapheneOS

      • ThePooDragon@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        10 hours ago

        Any clue if Tempus supports Jellyfin music servers? Their readme seems to indictate its for Subsonic servers only.

        My dream is an open source android music player that supports Jellyfin music servers and automatically requests transcoded/full quality audio based on if I’m on a WiFi or mobile data connection.

        Haven’t found one quite yet.

        • hellmo_luciferrari@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          8 hours ago

          Does not appear to support Jellyfin, as I can’t connect to my Jellyfin.

          Though it does support transcoding options youre mentioning.

  • freedom@lemy.lol
    link
    fedilink
    English
    arrow-up
    1
    ·
    19 hours ago

    I actually made a copy of my library (for safety) and had hermes agent scan it and fix it so that it would register well with navidrome and be named coherently. It was very impressive what local AI could do. If you have a gpu with 12+ GB VRAM, you can do it local with an uncensored model. Cloud providers can probably do it too, but might throw safety warning.

    • hellmo_luciferrari@lemmy.zipOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      17 hours ago

      I luckily do, I have a 3090 with 24GB of vram that copper modded. Hermes you say, may have to investigate.

      I have 3 copies of my library

      • freedom@lemy.lol
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        Yeah, it’s all the rage now. Qwen3.6 35B or Google Gemma 26B should work fine for the task. Llmfan on hugging face uses the heretic framework to “abliterate” them and remove any safe guards that might prevent working with “pirated” content.

        You can run hermes in a container or vm if you’re worried about the ai hallucinating, though I haven’t seen that happen. Use as high of a Q quant value as you can and run llama.cpp for speed. Or just try a free cloud model with hermes and see if it works.

        The agent installed a bunch of mp3 scanning tools, did an inventory of my library and generated a list of actions for me to approve before it ran. Feels like the future.

        • hellmo_luciferrari@lemmy.zipOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 hours ago

          If I run Hermes, or anything AI, I’ll want to investigate how to containerize it. Which may be difficult with one GPU.