You are not logged in.
like many I've tried to pay attention to audio file tags over the years, especially since I've recently added a streaming DAC unit to my audio system, and installed music server software on my Arch box. As such, my entire music library can now be addressed via the database that the server software creates by scanning all the tags attached to my music files. So far so good.
Between the way the server software is built (I'm guessing), the way my music tagging has refined itself across the years - and by means of which I land on tagging packages that I've come to rely on, and which (AFAIK) are fully standards compliant - I've seen a few unexpected errors/issues appear in the music server database i.e. I'm seeing options display in some of the categories (by which I mean things like "Album" or "Artist" or "Genre") which are unexpected and in fact errors.
Which leads me here to:
having some seriously cool help from the folks with the server software, I've ended up using a variety of tools to investigate my music files so search out "rogue" tagging. By 'rogue' I'm referring to the fact that despite I've long used a combination of Picard, followed by Kid3 to add or edit tags, some files have retained certain frame types that are ID3v1 only.
I've settled on ID3v2.4.0 only and while I gather this isn't quite universally supported, it was through support tickets from the server software side that led me to start looking at hex dumps of certain mp3 files to discover, for example, that the TCON frame from ID3v1 still exists in certain files. A tool like eyeD3 will reveal some of the inconsitencies, yet ID3v2 is hopelessly out of date and doesn't seem fit for purpose. These frames are invisible to tools like kid3 and Puddletag.
For now, I've simply dealt with the few 'rogue' files by means of simply deleting, saving, and re-entering certain tags.
Now though I'm curious.... just how many files exactly, in a library of almost 70K files (mostly mp3 and FLAC, with a few M4A) have these odd, leftover remnants of unwanted ID3v1 tag information in them?
Would I have to run some form of script across my entire library to find leftover frame information that's still inside particular files? Some tools are mp3 only. Even so... how to then correctly edit them if these frame remnants don't appear in GUI driven tools?
I'm asking here because I haven't as yet found a tool/package that will give me a full overview of exactly what is inside each file and which would then let me edit/write/delete frame data.
Offline
You can achieve auto-removing ID3V1 tags with an id3v2 (duh) program, it’s available in the extra repo:
-s, --delete-v1 Deletes id3v1 tagsID3V1 is just 128 bytes at the end of the file; it's easy to remove it using any programming language.
Also, you may find tagger (AUR) helpful for editing "invisible" tag entries; it shows everything. Picard does too.
For more advanced automatic (but controlled) tagging, I recommend beets (extra), but it requires some python knowledge to write plugins for your specific needs.
But instead of manually handling a lot of files, I'd just retag them all with the picard, using the correct options. Unless you have a lot of truly underground stuff, it'd be much faster.
Last edited by ozwigh (2026-04-14 00:30:19)
Offline
Thank you. That was a clear and very helpful explanation. You also provided the correct syntax for ID3v2 which I could not figure out!
I've since understood that part of the issue I was having was that some files were tagged with both an ID3v2 "Genre" tag, yet the file contained a numeric value for the genre as some holdover from ID3v1 tagging that either I did years ago, or were in files shared with me by others. Thing was, the only way I fixed these (fortunately few) errors was simply to delete the Genre tag, save and re-add. Not elegant really, but it worked.
I do like Picard a lot, but it's not so much "underground" music I have but for example there's a lot of remastered and anniversary stuff being reissued now either as downloads or via Japanese online stores, and almost none of these releases are yet in the Musicbrainz database. While it's usually brilliant with FLAC (for some reason) I've quite often had to correct it when tagging mp3 albums and non-mainstream stuff (think Nigeria before the 1970s).
But you've given me enough that I can now work out how to run a search on my library and in the first instance find out it/what is still to fix. I can then work out the best approach depending on whether I have tens, hundreds or thousands (unlikely) of edits.
Many thanks!
Offline
Maybe some program you (or others) used merged the numeric genre from V1 into V2; it’s quite possible considering that V2 tags allow multiple genres - even a mix of V1 numbers and text (tell me that’s a good idea…). You can try to use mediainfo in a script to check if there is something wrong with tags. Then fix it using id3v2:
genre=$(mediainfo “song.mp3” | grep “Genre” | cut -d':' -f2 | awk '{gsub(/^ +| +$/,"")} {print $0 }')
# fix the genre to your needs
id3v2 --remove-frame TCON “song.mp3” # TCON is a genre field in V2 tags
id3v2 --TCON “$genre” “song.mp3”You can handle other things the same way, for example, remove/edit comments, and so on.
And yes, I fully understand the pain of remasters, reissues with bonuses, Japanese editions, and such, especially stuff from the pre-digital era.
Picard uses the acoustic ID, so no wonder it may fail on MP3s, depending on the used encoding options and bitrate. In that case, a manual search (right click → other versions → more details, and search there; or “search for similar tracks” on individual files) may be helpful if there is an entry in the MusicBrainz database.
Maintaining a clean, well-structured musical collection is not an easy task. Good luck with that!
Offline
Thank you for this also!
Yes... I had quite overlooked mediainfo !! This is exactly the way to dig into the library for specific tags or info, and then edit accordingly (as per other helpful suggestions above).
I entirely agree that maintaining a consistent "clean" music library is no small undertaking! Totally worth the effort though (IMO) ![]()
Offline