How do I set the recording date of a track?

I’m cleaning up metadata on some of my compilations, but don’t understand how to do set the original recording date

Here’s an example from Heartbreak Hotel released on the ‘Elvis Presley Years’ Release “The Elvis Presley Years (disc 1)” by Various Artists - MusicBrainz

It’s a CD, released in 1991, Picard (2.6.3) is showing Original Release Date and Year as 1991
Heartbreak Hotel is track 12, and is listed as 'recording of Heartbreak Hotel on 1956-01-10.

Picard does not list the original recording date. How can I get access to it? - and set the recording date?



You will need to do some scripting inside Picard to display it.
Have a look on the below thread to see different examples: Original release date: Community opinion on how to handle the originaldate tag, first release date of release group and / or recording - #47 by Sophist


Quite a read.
Can’t see how to display all the tags in Picard though. I have a lot of metadata turned on, but the variables / tags mentioned dont appear when i click on the track.

You can use the %_recording_firstreleasedate% variable. See the examples in the documentation:

You’d probably want to use a script like this:


That requires the recordings to be used in the original release as well, but for the example you gave that looks good.

1 Like


I’ve got this as my script:




(I need to put in the condition handling for if the first release date is missing)

Tested it out on Release “Worldwide 50 Gold Award Hits, Vol. 1” by Elvis - MusicBrainz with Heartbreak Hotel. again. he database says:

  1. My CD from 1991 is part of a release group that includes the vynl records released in 1970

  2. Heartbreak Hotel was recorded on 1956-01-10 and released as a single on 1956-01-27.

My script results in:

  1. Date = 1956-01-27
  2. Original Release Date = 1956-01-27
  3. Original Year = 1956

Overall, a good result and what it should be. I do not want Elvis showing up as 1991 music or 1970s!

Of course, this relies on good data in the database.


Is there a way to get back to the original recording and its metadata - in this case the release as a single? the release type of a single etc

i note that there is the ambiguity about subsequent releases might have been remixed etc.

Not automatically, but you can of course load the single and tag the file against it. If you always prefer singles you can also try to set “single” higher in Options > Metadata > Preferred Releases, and lower your preference for other types. Only makes sense of course if you don’t have all files for an album and cluster and lookup those.

Alternatively you can tag files as non-album tracks, that’s quite simple using the “Load as non-album track” plugin, which provides a context menu action. Won’t set you the release type to single, though.

1 Like

Thanks. I was hopeful of automation!

Is there a way of pulling out any other ‘groupings’ ? by groupings I mean that Heartbreak Hotel is part of Rolling Stone’s Top 500 songs? (might make a nice playlist etc)

is there a variable with the recording date for a track ?
If you look at Heartbreak Hotel, it has a date…

1 Like

Have a look at the %_recording_firstreleasedate% variable in the Basic Variables section of the documentation and see if that’s what your looking for.

1 Like

Hi rd,

I’m looking for the actual recording date, not the release date. For example: 1991-11-21 from below:


or in the case of Heartbreak hotel 1956-01-10.

Sorry, I misunderstood. I don’t believe that there is anything in Picard that can provide this. It will likely need to be done using a plugin.

1 Like

so close, just need that variable!

You might want to comment on


Thanks for the link,

It’s really surprising that Picard doesn’t support this:

  1. The MB database has this information already stored
  2. It’s a standard tag in MP3 ID tag land v2.3 and v2.4 (and yes there is some confusion),

A question. Is there a specific field in database that holds the recording date? I’m assuming that there is and in the example of Heartbreak Hotel above, that is where the value of date displayed is stored?

If so, adding it to Picard who would be relatively simple?

There are multiple ways to store the recording date. Essentially it is stored with relationships to work, place, event and/or area. Pease see the ticket I linked above.

The open question is which dates to use in case of multiple different dates or for date ranges. What is the reocording date if it says “Recorded between August and September 2013 at Studio A, vocals recorded in Studio X between September and November 2013, drums recorded January 2014 in Studio Y”?

So far there hasn’t been much feedback on that question.


I guess there are two key dates to extract. The first available date, presumably when recording started. And the last available date, presumably when recording finished.

I would use the second date but if both were provided then users could use them as they please, including using scripting to have a field that displays the range?

1 Like

@aerozol I would also add the “mixed” date as that is really the first time the completed recording comes together as a whole.

Another confusion is sometimes the date range is caused by an album being “recorded in Winter 1988” and no way of knowing which track was on which day, just a date for the album as a whole.


I would just supply the album date for the tracks and not lose sleep over it. I think inevitably this field is going to be very variable in quality - both because the data won’t always be in mb, and because many artists don’t supply it - and if they do it’s inconsistent. Yy, or yy-mm, or yy-mm-dd + time and moonphase…

P.s. I don’t have any skin in this game but the thread posed an interesting question :blush:

1 Like