Manage/clean up a music library - app suggestions?

I have a music library of ~450 GB on my NAS, and it’s a complete mess–duplicate files in a variety of formats and quality settings, no readily-discernible folder structure, often missing tags and artwork, etc. I’d like to clean it up–or rather, since it consists of tens of thousands of tracks, I’d like the computer to clean it up for me, but I don’t know of appropriate software.

Specifically, I’d like to:

  • Tag the files that are missing tags
    • Including tagging with album art
  • Put them into a sensible directory structure
    • Artist/Album (year)/tracknum_tracktitle.ext makes sense to me, but I’m flexible
    • Bonus points if it’s smart enough to recognize that, e.g., Canadian Brass and The Canadian Brass are the same artist
  • Eliminate duplicates, retaining the highest-quality copy
  • Preferably do it “in place,” that is, without needing to copy everything into a new and distinct library

I’m running SCALE Dragonfish (and will continue to until I decide what to do with my TrueCharts apps, but I don’t seem to be in much of a hurry on that score), but I’m not actually that concerned that the app be a “TrueNAS app”–I’m fine with running something via Docker elsewhere, or in a VM, or whatever.

Any suggestions of software that can handle this task?

Hi, a pointer rather than an answer…

I had a similar dilemma previously and for a while used vortexbox for ripping / storing all my CDs

https://www.vortexbox.org

I then used an add-on called bliss that perhaps does exactly as you need??? However I have no idea whether it can work within TrueNAS/dockers etc but it might give you some clues

https://www.blisshq.com

Good luck

There’s https://picard.musicbrainz.org/ which I used to solve a similar problem; a messy library with duplicates and incomplete metadata (and album jpegs too). Several passes through Picard seemed to sort it out.

You can install Picard on a machine and point it at the TrueNAS shares and, if a TN appliance approach is needed, I imagine doing something with Docker would be feasible.

2 Likes

You do not mention how well the existing directories are structured, and how well the existing files are tagged, and this will have a big impact on how much assistance the software you choose for this can assist you.

I have been a user (and occasional contributor) to Musicbrainz Picard for couple of decades now, so I can talk about the pros and cons of this.

Pros

  • Add tags using the Musicbrainz crowd-sourced metadata database which probably has the most comprehensive and best quality data about music.
  • Has a very flexible path and file naming capability - you can pretty much achieve any directory structure you like - and there are functions to remove e.g. “The” and “A” from the beginnings of bands or albums or tracks.
  • Can use the existing directory structure and / or existing tags to help to group tracks into albums and identify the album (or release) for them
  • Supports various audio (and video) file formats
  • Reads only the tagging part of each file and not the entire file.
  • Also has an audio fingerprinting and lookup capability (but this needs to scan the entire file).
  • Extensive set of community-written plugins to add functionality - and if you absolutely need to, then you can write a new one of your own.
  • Genuinely excellent documentation - and a helpful community forum.

Cons

  • Cannot dedup
  • Workflow is partially automated (depending on quality of existing data), but not fully automated.
  • Manual checking that releases are complete and that it has guessed the right release

Really you need to keep your existing and new directory structures separate - so that you can keep what has already been done and what still needs to be done separate.

The important thing, I think, is not to have to copy the files from your NAS to your PC and then to copy them back again. Picard can read and write files on e.g. an SMB share, and providing you don’t want to audio finger-print the files then it won’t need to read the entire files.

If you keep the two directory structures in the same dataset and on the same SMB share, then moving and renaming the files should also be very fast because they shouldn’t need to be copied to the workstation and back, and shouldn’t need even to be copied inside the NAS.

When you write new tagging information to the files, it will modify some blocks, but it shouldn’t need to copy the file to and from your PC either.

For Movies/TV shows I have been using TinyMediaManager

This looks promising as posted by @E_B

Filebot may also be helpful

I think I might have played with Picard at some point in the past. A bit of Googling has also found beets, which sounds like it may be promising as well:
https://beets.readthedocs.io/en/stable/index.html

It seems it does have a mechanism to handle (and delete) duplicates, which may be helpful.

Picard isn’t the only tool that uses the Musicbrainz metadata database, and there may be even more tools that use e.g. Discogs or something else.

But IMO you do need to a tool which uses a comprehensive & good quality metadata database rather than one that dooesn’t.

And a tool that can run in Docker and works via a Browser UI will be able e.g. to fingerprint files with local performance.

Thanks for the feedback and suggestions. To perhaps clarify a bit what I’m looking for, my goal is more of a one-time cleanup than ongoing management of the library. That “one-time cleanup” may take more than one iteration, or even more than one piece of software, but I’m not really intending this to be an ongoing thing.[1] And while I’d prefer the process be as automated as possible, I get that any of this is likely to require a fair bit of human interaction.

Agreed, I see definite value in that.

I’m not sure I see great value here. Recall that I’m running Dragonfish, so I can’t just drop in an arbitrary Compose file, though I can still go the “custom app” route.

I can, of course, create a VM on my NAS. I can create a sandbox with Jailmaker. But I’m probably more likely to run whatever software on my Proxmox host–double the RAM and 40 vs. 10 cores seem likely to outweigh any bottleneck the 10G network may impose. So while “local performance” would be nice to have, I don’t know that it’s that high of a priority.

But looking at the software options, Beets and Picard seem to be the front-runners.

  • Both use the Musicbrainz database
  • Both will sort files into a sensible directory structure
    • I understand Picard is very configurable in this regard; I’m not sure how much so Beets is. But Beets seems to default to Artist/Album/(tracknum) (tracktitle).ext, which seems file to me.
  • Both can do audio fingerprinting of files, and search for metadata based on those fingerprints
    • Beets requires a plugin for this, and apparently installing the dependencies for that plugin takes some doing. Not sure what this looks like for Picard.

The biggest differences that I see are that Picard has a GUI (Beets does have a web plugin, but it’s apparently very limited), and Beets can deduplicate while saving the highest bitrate.


  1. Though I hadn’t really considered the possibility of, e.g., ripping music to a staging area and then using something like Beets or Picard to import it. ↩︎