What is the recommended way to add metadata?

Issue description:

Hello,
i am using Picard (https://picard.musicbrainz.org/) to manage Metadata.
I am using WebDav as media provider.
The docs Supported features by media providers say that WebDav supports Multi artist per song.
In my test case i have two Ep’s:
Release “The Remixes (Vol.2)” by Tommee Profitt & Liv Ash - MusicBrainz
Release “The Remixes, Vol. 3” by Tommee Profitt - MusicBrainz
In the release “The Remixes (Vol.2)” are multiple artists.
If i navigate to Artists in symfonium i see “Artists” like:
“Tomme Profitt & Liv Ash” and “Tommee Profitt & Fleurie”
i would expect it like this:
“Tomme Profitt”, “Liv Ash” and “Fleurie”. (3 seperate Artists)
i think it is a problem with picard as it saves the Metadata wrong (not multivalue artist)
I tried this fix https://kodi.wiki/view/Music_tagging#albumartists but it doesn’t seem to work.

If it helps i can provide the files with which i tested it.
Does someone has a solution to this or another workflow to set the metadata? (I like picard because it makes searching/adding in the musicbrainz database really easy)

Logs:

Upload description: gamebeaker

Additional information:

 
The view from the Artists section in symfonium.
 

Reproduction steps:

 

 

Media provider:

WebDAV

Screenshots:

 

    

You can upload the files to https://upload.symfonium.app but I can’t provide support for picard as I do not use it.

You can still use the delimiters to split the artists if needed.

In all cases when you change the tags you need to clear cache tag in the provider for Symfonium to get the new tags if the editor or the webdav server does not return updated modified dates.

Thank you for the fast answer.
Which tool do you use to manage Metadata?
Which tag is prioritized if multiple are given Artist, Artists?
Under supported tags here: Symfonium custom tag parser
Is “Artist Musicbrainz ID” does the tag needs to have the Key “Artist Musicbrainz ID” or is “musicbrainz_artistid” ok?

Under Windows I used MP3Tag but not yet decided now that I’m on Linux.

All depends on the other tags and MBIDs, and the list of tags in the doc is the name of the general tag, the actual tag name often varies between containers and formats.

What Picard generate is supported for sure.

I found a solution.
I am going to explain my solution if other people have the same problem.

  1. In picard go to Options → Scripting
  2. Check Enable Tagger Script(s)
  3. Click “Add new tagger script”
  4. Add the following script:
    $setmulti(albumartist,%_albumartists%)
    $setmulti(albumartistsort,%_albumartists_sort%)
    $setmulti(artist,%artists%)
    $setmulti(artistsort,%_artists_sort%)


5. Save the changes with “Make It So!”
Now the Artists page looks like this for me:

You can try Picard with my fix, it has a linux port Downloads - MusicBrainz Picard

Mp3tag supposedly works under Wine.

And personally I find the easiest and quickest way to get MusicBrainz tags is to use MusicBrainz expanded in Mp3tag. I never warmed up to the MB Picard UI. As I almost always work with full albums, the entire clustering steps and all the mismatches felt like a hindrance when working with it.

In the end I was no more a fan of MP3Tag either after going deep in the tag handling and seeing all the stuff it hide and is not always consistent between formats.

I’d like a tool that does not try to be smart and just show a nice real view of the actual tags.

Have you tried Kid3 @Tolriq ?
I’ve just starter retagging my collection, and mainly use Picard, but for some EPs, or Maxis, it seems that it’s not good, so I start with Discogs and then do a bit of manual addition with Kid3.
Happy to hear about y’all workflows.

Thanks @gamebeaker I’ll test your script.

He uses it (I became aware of kid3s existence after he mentioned it).

Mine is pretty straightforward (after writing it down, maybe not so much).

I check each album folder for unwanted files and delete them. In the same step I check if each album has an external cover with sufficient resolution. If there’s no cover or if the resolution sucks (or if it’s an upscale or otherwise of poor quality), I open a track of the album in Mp3tag and use the user tool I created to look for a better one on this site.
Once all the folders are checked and have good art (I aim for 1400px+), I open all the files in Mp3tag and take a look at the extended tags (ALT+T). There I bulk delete tags I do not want in my files. When that is done I sort the files by folder and look up each album in musicbrainz via the musicbrainz expanded web source script or if that yields no result, in discogs.
Once all albums are tagged I run my default actions to replace characters I don’t like, delete all instances of multiple spaces, leading or trailing whitespace etc… These also change the casing of MusicBrainz tags (demo) to (Demo) etc. since I prefer them that way.
When that is done I delete all embedded art and run my final action which moves each source folder to a new folder (moving everything in the source folder, including logs, cue, images etc.) based on the new tags, replacing reserved characters in file- and foldername, limiting the length of file- and foldername etc… to force them into my naming scheme.
Then I check if the source folder is empty and delete empty parent folders.
As a last step I run my script flacr
as flacr.py -Q in the root of the new folder structure.
This first calculates replaygain tags for all audio files recursively with all threads available on the system via rsgain and then recursively recompresses all flac files (also with all available threads) with the latest encoder of the flac cli tool while setting a fixed padding of 4KB (to remove leftover padding from previously embedded covers).
This also doubles as a file check for flac files since errors during recompression are logged to cli (can also be logged to file with -l).

Then I copy the finished files to my NAS.

2 Likes

So the Germans are writing their dreaded long posts again… hold my beer :nerd_face:

I am mostly ripping my own CDs to include them in the library (and some Bandcamp downloads). I used to rip and manage everything into m4a/aac in iTunes and kept it that way when I switched back to Windows. I had my own Python script to parse the iTunes lib and copy all albums to a network share (which enabled me to disble singled tracks like bonus tracks and alternative takes in iTunes and have them not transferred - a feature I now really miss). Kodi read from that share, only reading the tags, so no scraping.

Now iTunes is supposedly EOL on Windows, and @Tolriq urged me to look into LMS for better feature and transcoding support (and so that I push feature requests to @itm :wink:), and in the whole course I decided that I should rerip my collection into FLAC and consider my library more as an archive.

So now I rip CDs with ye olde Exact Audio Copy (which starts to suck a little under Windows 11, but I was not convinced by the free alternatives which support C2 and AccuRip - mainly tried CueTools) into FLAC tracks, which are stored in a staging folder at first. Initially I wanted to rip whole disc FLACs, but the cue sheet handling makes everything way more complicated for not much benefit. I do not use Replay Gain by the way, as an album-oriented listener I have no use for that.

Then comes the tagging, and I settled with Picard, mostly because LMS has a great MusicBrainz support. This takes several steps:

  • See if the album is in the MB database. Often enough it is the US release only while I have the European one, or the disc ID is attached to the wrong release, or the release is poorly maintained. I would say for 10 to 20 percent I have to add or edit the release in the MB database. As I come from Discogs for collection management, I have a good source for release data. The philosophies are a little different between Discogs and MB though, and the data quality is worse at MB, but on the other hand they have more interlinked data.
  • Load the album into Picard and make personal tweaks.
    • All titles are converted by a Picard extension to First Letter Upper Case Because Discogs Tought Me That. I only fix it properly for German titles, because it is my native language.
    • I apply my own genres. They form the base of my library structure.
    • I change album artists to my liking (Miles Davis Quartet/Quintet/Nonet or “Miles Davis with Whoever and Someone Else” all go under album artist “Miles Davis” so that I have those albums sorted nicely in the end like I have them in my CD shelf).
    • I fix album types (no “live” type for jazz albums as in the 50s/60s most albums were recorded live in the studio anyway).
    • I fix release dates, seetting the “date” and “originaldate” to the original release date of the album, in case of jazz albums to the recording date, and for classical album to the composition year. I don’t care if mine is the '89 or '93 rerelease from the library point of view, although i do buy sepcific releases to avoid loudness war remasters etc.
    • I also split collection releases ( “5 album collection”, “2 for 1” etc.) into the original single albums, which requires removing the MB album ID, editing album titles, disc numbers etc. I am not yet sure how to handle special editions, e.g. an album re-release box set with two additional discs covering a whole live recording. In the past I created a separate album for the live release to have it show up in my library. But using MB makes this more complicated, because I have to create a non-MB-release for myself for the live recording then and leave the MB-managed release incomplete. For now I keep the MB structure, but I am not fully happy with that, so I might split off some stuff later.
    • If MB provides a nice-enough cover, I use that. I try to use 600px minimum, 1200px optimal, and the cover must be clean and more or less colorfast - there are so many shitty scans out there… If not I look at Amazon (they usually have great cover images for modern albums) or Google Images. Adding covers takes a lot of time (finding, downloading, adding to Picard), especially if you are looking for the exact cover image from the specific release (with the same label icons etc.). As a last resort, I scan the cover myself, but I avoid that because that means scanning and editing in Photoshop. I embed the cover art into the files, btw. So no cover.jpg files.
  • Once everything is tagged, my Picard tagger script moves the files into my folder structure, which basically is genre/albumartist/YYYY - title, except for soundtracks (genre/title) and classical releases (genre/composer/YYYY - title), although I cheat for the latter, as I set the composer as album artist.

Then I use a file transfer tool (Free File Sync ← I really like it and it is well maintained, so my endorsement here :slight_smile:) to copy the files from my PC to the network share. After that I start the LMS scanner to read the albums. Then I usually realize that for one out of ten albums I forgot to fix the genre or something else, so I have to go back to Picard, fix, save, transfer, scan again.

At this point I have to disable the ripped albums in iTunes, fire up my old Python script and run a library cleanup to remove them from the Kodi library.

And then I can finally have Symfonium sync with Kodi and LMS, the FLAC files being transcoded to Opus 128 kbps so that the whole library can be offline-cached on my phone. Transcoding works well enough on my RPi 4 – I urged Tolriq to make the number of concurrent downloads configurable so that I can use three instead of only two transcoding threads.

There are some cases that do not fit into above scheme: self-made compilations, a handful of digital releases that are not in MB (e.g. ripped streams). For those I use kid3 for manual tagging. But the support for multi-value tags could be better in kid3, scripting is a little complicated, and the UI is not the best (not that I like the Picard UI very much). But kid3 is the kind of “honest” tag editor Tolriq was talking about before - it simply shows what is there.

I think I could use more automation at some points (e.g. fixing genres or album types in Picard), but often enough the automation does not fit the individual case, so I left most steps manual for now to have full control. But it is a lot of work. The tagging usually takes longer (I would say at least double the time) then ripping the CD. I rip with two drives in parallel, but when I move too fast I tend to have a lot of windows open, switching contexts a lot and missing steps here and there (I also do some tweaks in my Discogs library while ripping).

Writing this all down feels like self-therapy :face_with_monocle: I spend a lot of time with all this stuff I probably could use more productively, but on the other hand listening to music has been my #1 hobby since I was a kid, so why not? The only thing I miss is having someone in real life who shares this with me. Instead I have to talk to you crazy guys over the Internet. I guess we will meet in tagging hell once streaming has taken over and we are all gone from the Earth :joy:

3 Likes

And just like that my backup costs have doubled :slight_smile:

3 Likes

Oh, except for you, you will end in snotty, entitled dev hell :smiling_imp:. But we will visit you from time to time there.

I you were a straight five-star-rated developer, we would have much less fun here :joy:

This is an interesting link, thank you. Will look into that site to ease my future cover searches.

Whoa!!! I didn’t know that my quick question would produce such detailed answers!!! Thanks for that @splinter and @655321 !!!
I’ll take the time needed to analyze it and light revert with some questions, then I’ll have to adapt my workflow.
I’m happy to have asked it before finalizing it :slight_smile:
Splinter I agree with you regarding the quality of of the data of Discogs, but still think that the tags are better organized and supported by other players/servers with MB.

So you advise to add the missing data on the MB parution, and not add it directly on the tags right?

I have already done that to add losing Labels for releases, but my question is: how much time will it take for it to be approved by the MB team? Isn’t it quicker to add it directly in our tags??

I see that you’re embedding the cover, and this is what I’m doing now, but when I read @655321 workflow I understood that having a large cover file embed in each track could make heavy files ultimately, right??

More questions coming soon! (Including LMS and Kodi that I’ve tried to configure - but at the moment I stick with Plex, even if the lack of multi artists is a bummer)…

I encourage this as than all people profit from your change. And if you rescan your library with Picard it will delete all “custom” tags that are not in the database.

As far as i know there is no wait for approval status. I edit stuff all the time on MB and the changes are online after ~5-10min. And this is the time it takes until the changes are reflected in the search.
Example:

  1. You add a new Album to MB. After you finish it takes a while until Picard can find it with the normal search i guess the same is true with the normal online search. You added “Release “The Remixes (Vol.2)” by Tommee Profitt & Liv Ash - MusicBrainz” to MB and now tries to search it like this: “artist:(Tommee Profitt; Liv Ash) release:(The Remixes (Vol.2)) tracks:(6)” and can’t find the Album. Than you can search the release id directly like this: “reid:(6ae967e3-f57d-4b96-928c-60d3632131b3)” (the id is under details or in the URL) and find your newly added Album directly (without wait time).
  2. You add a new Cover to an Album and after the upload you have to wait until it is processed to different sizes. Picard will show you this with a red CD plate that there exists a Cover image but it was unable to download it. Just retry it in a few minutes and it should work and the CD plate changes from red to yellow. (If your uploaded cover doesn’t show up in picard it could be that you forgot to tell MB that it is a front cover you are uploading. You can also change what type of image gets chosen from picard in your settings)

What is LMS?

1 Like

Exactly this. Give something back.

In my experience there two kinds of changes: the uncritical ones (asding new releases, fixing typos, adding dates, adding disc IDs to existing releases), they are available instantly: I hit submit at MB, and at most have hit reload twice in Picard and it is there. I never have to wait for minutes.

The other ones need to be approved (e.g. merging albums, changing release countries, switching artists). Approval means the change can be voted on for seven days, and if no one votes against it (or votes at all) it is automatically approved after that period. Apparently if you know someone with MB approval privileges, that person can approve before that time is up.

Lightweight Music Server with Open Subsonic API support written by @itm.

1 Like

It is a different scope. Discogs was never meant as a source for tags, it is a platform for record sales and collectors. Therefore they have much stricter definitions for what is a separate release - every pressing, every even so small difference warrants creating a separate release, while there would be no difference in the tags.

MB is way better on the relational side with their artist IDs, extensive credit possibilities and especially recordings (so that you have one ID for the exact same recording even if it appears on different releases - although I think the maintenance level is relatively low here). They have built a cohesive model for their data. But most of the normal users are less pedantic. They simply want the song titles and album cover and don’t care for most of the extra stuff, which is why so often disc IDs are attached to wrong releases.

I already added and edited a lot of stuff on Discogs in the last years. Which becomes tiresome as the rules for specific things are often flexible, so you can do it this way or that way, sparking debates and feuds among the users. And the management which is supposed to decide most of the time does not decide but keeps things open so nobody gets affronted. But as I put a lot of energy into that, I decided to keep my MB engagement to the (for me) necessary: fix obvious mistakes, add missing essential data. But I never go into recordings or song credits, and I also rarely upload images, because it is time-consuming and often does not work - they use the Internet Archive for storage, and there are often disruptions, outages etc.

Sure it does, which is why I aim at 600 to 1200 px (on the smartphone, even less looks good enough), which might be 50 to 500 kB per image, depending on the contents and quality. If I assume 200 kB as a median, I am at about 11 GB for covers only for my 60k tracks. That sounds much, but will increase the whole library from (estimated 40 MB per track) 2,40 to 2,41 TB so why bother? :smile:

On the pro-side I never have to deal with the server not recognizing the cover because of wrong file names, corrupt image files or whatever. And I can easily have different covers per track, which I use for certain cases.

1 Like

And how do you do that?
You store différent images for one track? And how do you display different ones on the player? On Symfonium for exemple?