I have been searching for a software like this for so long. It works very well too, but there is just one small thing, it doesn’t update the year or genre. Sometimes I find it useful to search by genre or year to find songs I am looking for to listen to, put into playlists, etc. I feel it would be very beneficial to include the genre and year of the files in your data base.
Let me know what you all think!
You can get Genre from MusicBrainz by setting Options… / Metadata / Genre / Use genres from MusicBrainz - or you can use a plugin to get genres from elsewhere.
There has been extensive discussion elsewhere in this community about having recording years available in a variable (and you can copy this to Year / Date fields with a script (overwriting the album year / date) if you wish - BUT because MusicBrainz has many, many, many duplicate recording ids for the same actual recording, the dates in this field are often incorrect. The best suggestion has been to use the minimum of %date% and %originaldate% and %~recording_firstreleasedate%.
The release date is updated by default. There are actually two years that are available by default in the tags Picard writes:
date: This is the release date for the specific release your are tagging. It gets written to the release date tags, depending on file format.
originaldate: This is the the first release date for the entire release group. It gets written to the tags also. Support for this tag varies.
E.g. if you have a 2020 re-release of an album originally released in 1990, the originaldate will be 1990, the date 2020. If you prefer you can also use a script to set originaldate for the main date (because this is what players usually will show):
There is a third date available for scripting, and that is
%_recording_firstreleasedate%. This aims to provide the first release date of the specific recording. Again you can e.g. set this date if your prefer. E.g. the following script will set the date tag to
%_recording_firstreleasedate%. If that is not set, it will use
%originaldate%, if that is also empty it keeps the value from