[HowTo] Music Organizing with MusicBrainz Picard

Music Organizing with MusicBrainz Picard

I’ve seen many answers and posts about naming music files, and sometimes recommending Musicbrainz Picard, but nothing really going into HOW to set it up to get files naming properly. I’ve been using musicbrainz for awhile now and i absolutely love it. It takes some getting use to, but it saves A LOT of headache. I figured I would get something down for others to have somewhere to start. I DON’T recommend doing this on a MASS scale (more than one album/file at a time) as depending on what musicbrainz picks up, it can easily mess things up.

Please note I currently run an Ubuntu PMS, however I have my media folders shared via samba so I can edit files via my windows box. These are the FILE NAMING settings I use, and have found them to work the best, this is just somewhere to start. All other options can be explored as i don’t go into other details.

MusicBrainz Picard
Once picard is installed, goto Options>Options

Tags (check the following)

  • Write tags to files
  • clear existing tags

Sorting (Advanced>Scripting)

By default, Picard fetches the TitleSort attribute and writes it into your files.
However, if these tags are present in the files, Plex will use them eventually.
But there are many people who don’t like to have their artists sorted by Lastname, Firstname .

Add new script
name your script e.g. “no sort titles”
and copy this into the input field on the right hand side:

Copy to clipboard

$delete(artistsort) $delete(albumartistsort)

‘Make it so!’
grafik

Filenaming (check the following)

  • Rename files when saving
  • Replace non-ACII characters
  • Move files to this directory when saving: (in the box just make it two periods/dots) …
  • Delete empty directories
  • move additional files (you can add any file extensions here,for me i have the following): *.jpg *.png *.jpeg
  • Name files like this (this is where the real logic comes into play):

$if($ne(%albumartist%,),%album% $if(%originaldate%,\($left(%originaldate%,4)\),%originaldate%)/)$if($gt(%totaldiscs%,1),%discnumber%)$num(%tracknumber%,2) - %title%

The above naming convention will be: ALBUM (YEAR)\ TRACKNUMBER - SONGTILE.EXTENTION. i.e.

One More Light (2017)\ 06 - Heavy.mp3.

What this is doing (in basic terms) is: IF the album artist is NOT blank/null then create a folder with the ALBUM NAME followed by the original four digit release year surrounded by parenthesis. Inside the newly created album folder, name each track as follows… If the totaldiscs is GREATER THAN 1 start with track name with the disc number(1,2,3,etc), followed by the track number displayed as double digits(00). Add a dash (-), then the actual title of the track.

For more in depth regrading the syntax please see the Picard documentation here.

When i use picard i simply drag AN ALBUM that is already in an artists folder to picards left window. It’ll immediately be added to unmatched folder.

I select the unmatched folder, and click cluster. This should then put all songs into the cluster folder below.
35gs9fsi6ox4

I then click on the clustered folder, and click on Lookup. Picard begins it’s search, and if an album is found it adds the album along with the matching songs from the left pane to the right window pane. HOWEVER, if Picard does not find a match a manual search will need to be performed. In the search box at the top right, add a search term… for my example album i’ll do “The Wall”, then click on the magnifying glass or enter button.
27kcvm944ff0

Default web browser should open directed to musicbrainz database with all results. The result I’m looking for was last on the first page.

I can click on the album name, which then displays all album information. Once i know this is the correct album, I click on TAGGER

Clicking on tagger will load the album info into Picards right window pane.

With the results in the right window pane, i drag a clustered folder on the left, to the album title on the right.

Once all tracks are matched properly the album will turn gold. Select the album and click save. You’ll notice as one of the check boxes we clicked in the options settings was to clear existing metadata. This can be seen with the comments.
bc7u6ezf8gun

In Windows, you can see the folder was REPLACED with the proper name, and ORIGINAL YEAR as what was wanted.

The songs now go from
BEFORE
ys5mfsammkfw
AFTER
j53e6wklnak0

Hope this helps people… while picard is free, I highly suggest supporting them by donating (i am not affiliated with them, but like to donate those applications I find very useful… like PLEX! :smiley: ).

edits: re-uploaded images…
added @leelynds instruction from: Plex sorting artist by LASTNAME

11 Likes

An IMHO very useful addition was posted by @leelynds in here: Plex sorting artist by LASTNAME

By default, Picard fetches the TitleSort attribute and writes it into your files.
However, if these tags are present in the files, Plex will use them eventually.
But there are many people who don’t like to have their artists sorted by Lastname, Firstname.

Picard can be modified to not put the “Sorting” tags into the files by doing this:

In Picard, go to
Options - Options - Scripting
Add new script
name your script e.g. “no sort titles”
and copy this into the input field on the right hand side:

$delete(artistsort) $delete(albumartistsort)

‘Make it so!’

grafik

A big thanks to @leelynds for posting this!

2 Likes

Reviving a pre-pandemic thread. Thanks for the little tutorial @sekthree! Been using Picard for a bit but mostly just when Lidarr failed on me, and since Lidarr is currently broken due to the recent Musicbrainz API breaking changes, I’ve been relying on it even more. Always looking for ways to automate my workflow without actually being a skilled dev, and being an old dog, I’m glad to have found your instructions. The one change I made was to ensure the artist is added to the directory structure when renaming and moving.