Hacker News new | past | comments | ask | show | jobs | submit login

I still run into challenges with ID3v2 tags on a regular basis trying to manage my offline music collection.

One of the most frequent problems is how to organize various pressings of an album. Specifically, if I have an album that was originally released in 1970, but my copy in question is a Remaster from 2001, what do I use for the year? 1970, or 2001? You might initially think to pick the Remaster year, but let's assume that this is Album II of Famous Band, and I don't happen to have a rip of the original release. Now when I'm navigating through the band chronologically (as I usually do), the order looks like this:

Famous Band - 1968 - Album I

Famous Band - 1969 - Album II

Famous Band - 1974 - Album IV

Famous Band - 1980 - Album V

Famous Band - 1990 - Album VI

Famous Band - 2001 - Album III (Remastered)

My solution thus far has been to tag the album with the original release year, but then change the Album Name to "Album III (Remastered, 2001)". It's still not perfect, though.

It's somewhat gratifying to see that streaming platforms have the same problem, though, as I can see on Spotify/Tidal/Youtube Music that they regularly disagree on the release date of an album if their source is the remaster or re-release pressing.




Check out Musicbrainz Picard[1]. If the releases have their own entries in the Musicbrainz database (which they very likely do) you can differentiate between releases in both tagging and directory structure.

I've not personally done this as I only keep one copy of each album (whichever I think is the best, subjective I know but it's my collection) but they have a powerful file naming scripting interface[2] which you can probably come up with something to satisfy your needs.

Obligatory: Make sure you perfect this with your edgecases on some copies of the files first!

1. https://picard.musicbrainz.org/

2. https://picard-docs.musicbrainz.org/en/config/options_filere...


- TDOR: original date

- TDRL: release date

https://wiki.hydrogenaud.io/index.php?title=Tag_Mapping

Unfortunately ID3 doesn't define a VERSION tag like Vorbis does, which can be used to store the "Remastered", "Japanese Version", etc. metadata.


Thanks! I'm highly suspicious that any of my mp3 players or player software can actually sort by these fields, though.


I found that MusicBee supports it, but yeah, generally support for that tag seems to remain pretty exotic, and I've got no idea either whether any Android music players support it.

Compilation albums pose similar issues, by the way. If I tag the release year of the compilation album, then the individual songs won't be filtered correctly if I want to do something like "play 60s music" or "play 70s music" etc. (and the same issue also applies to your "remastered album" scenario), and if I tag the original release years of the individual songs, then the positioning of the album will be a bit wonky (and I've found that some software uses the earliest date found for the whole album, whereas other software uses the perhaps somewhat more sensible latest date. I'm sure some software exists out there that simply uses the date of the first/last track [1], as well).

Next problem is that support for timestamps more fine-grained than a year is equally spotty, so if an artist has released multiple albums in one year that don't happen to sort alphabetically, you also run into problems. To some extent you can override it by setting a custom sort order album name, but that can cause other issues elsewhere (i.e. when you do want to actually sort the albums alphabetically) and isn't supported by all players, either.

Curiously enough, I've found that files bought from the iTunes store often come with a full timestamp in their tags, even though iTunes itself only supports years, i.e. you can only view and enter a year within the UI and the full timestamp doesn't even appear to be used internally behind the scenes, because multiple albums released within the same year are still only sorted alphabetically even if they have full timestamp tags with the proper dates set.

[1] In fact iTunes does that for displaying the genre of an album – it just uses the genre of the first track, regardless of how representative that might be (or not).


This is the crux of it. All software chooses what elements of the "spec" it supports. There are ways to do what you want, but whether those are useful depends on your use cases and specifically the other software (and hardware) you use.


Then also some of this stuff has not been touched in years. So you can end up with quirky bugs. Like if you use picard in a particular way then give it over to windows media player, WMP sometimes will corrupt the file. However, if you tag it in the particular way it likes then it is OK. All of those fields are 100% left up to the interpretation of the program.

Then you have fun things like should you use "; " or " / " or ";" or "/" to do multi item fields. Or should the tagger put the same tag in more than once? What happens if the band/artist has that char in its name? What will the player do? Do you want utf-8 or 16? It is a quirky mess. Then lord help you if you mix in 2 or 3 different programs that have their own interpretations of all of that.

Oh then you can have all flavors of an id3 tag in one file, plus ape, etc. That may or may not be synced between each other.

Then there is the generic TXXX tag. Oh boy that thing is an interesting one. Random things are stored in them. Is it necessary? Some is, some isnt. I have seen anything from picard NVP bits, random binary data, XML purchasing data, volume leveling, etc. Then if your editor of choice does not recognize the particular NVP they usually just ignore it. So removing them is interesting.

Oh then the data in the tags themselves can be fun. Depending on your source data. You can end up with "Random Person" "Random Q. Person" "R. Person" "R. 'coolnick' Person" "Random P." and so on. Musicbrainz uuid tag for that sort of fixes it. But only if the player supports it.

There is a tool out there that does a sanity check of some of this. Unfortunately the name eludes me at the moment. I usually use it to remove extra padding. Some of the editors like to leave 2-4k extra padding in each file for if you make another update. It speeds up updating. But once you are done...


This drove me crazy enough to give up on managing a music library. I had about 45k songs and was pretty meticulous on organization at a folder level. In Winamp the dashes for filenames were slightly different from dashes from ID3 tags, and this was unacceptable, so I decided I wanted to fix all the terrible or missing ID3 tags. Manually looking up every song/album to find the release date took forever. A lot of the original tags were for the remastered year, so I'd manually look up the release date to "correct" it. If I wanted to make a smart playlist of "00s Music" I didn't want an album from the 70s showing up (or vice versa). This was often easier said that done in some cases, as release years weren't always clear, especially for albums that came out near the end of the year.

I tried one of those software packages to fix tags and that was an unmitigated disaster. I kept the blast radius small, but it trashed everything I put through it, so I gave up on using anything automatic.

I think I only made it through the Bs or Cs (going alphabetically by artist) when it came to the level of detail to get release dates.

As you mention, steaming platforms have the same issue, which I find annoying, but at least I don't feel like it's my responsibility to fix it anymore.


> 45k songs

Oof. I recently embarked on a similar retagging project, but since I'm not that big a music listener and only had a few thousand files, I actually made it through.

On the other hand in a similar vein I decided that I wanted to geotag all my old pictures and I've got no idea whether I'll ever make it through that project, or not…


>I decided that I wanted to geotag all my old pictures and I've got no idea whether I'll ever make it through that project, or not…

This is something I should probably do as well. Lucky for me I've had an iPhone since 2007, so a good number of my stuff is geotagged, but I do have older photos and gaps due to photos given to me by others.

I just made a Smart Album in Photos to show me all the photos that aren't geotagged... Just shy of 2,000. That seems like something I can chip away at while bored.


I've always labelled those notes in parenthesis in the Album field, like your final example. I do wish it had a separate field.

The biggest pain point I have with ID3 tags is how compilations are handled, particularly when that compo is a DJ mix with individual tracks. I prefer to not have these pop up in searches unless I specifically want to listen to the whole album, so I've taken to setting the genre to "Mixed / Drum & Bass", for example. (I usually queue up music by the genre tag.) I also like to separate tracks with vocals vs purely instrumental, so those guys get "/ Vocal" appended.

iMusic on iPhone handles both cases poorly. It is sad that they are letting that app essentially rot.

I wish there was a better way.


Musicbrainz Picard will put the release date of the remastered album in the DATE tag, and the release date of the first release in the ORIGINALDATE tag. Some players support sorting by original release date.


Wouldn't you have the exact same problem trying to organize physical copies of the albums, though?

My personal strategy when it comes to remasters is to pick my favorite version of each song and delete the others.


I always use original release date. Remaster goes into a metadata field, flac has options with vorbis comments. But I don’t care much about it.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: