Tagging-scripts: When setting date, Date and DATE (case sensitive) - Only "date" is standard?

As a Picard-scripting noobie, experimenting with the basics of tagging-scripts…
Based on a self-created dummy (short silent) .mp3 file having no tags to start with…

I tried $set(date,2022) and as hoped, it added a tag-field, which was displayed by Picard (main pane) as “Date: 2022”. I noted that despite the name “date” in the script, it appeared as “Date”. Meanwhile in App: Invisor it showed “Recorded date” as “2022”.

Afterwards (on same file, still containing “2022”) I tried $set(Date,2023), to see what if any effect capitalising the first letter would have. The result was a further tag-field, displayed by Picard (main pane) as “Date: 2023” and also by App: Invisor as “Date: 2023”. Maybe this counted as a non standard / custom field?

I noted that the displayed names of these two fields in Picard were identical.

Then, (on same file, now containing “2022” and “2023”) I tried $set(DATE,2024). The result was a third tag-field (as I had imagined), which Picard and Invisor both displayed as “DATE”.

Finally, I did $set(DATE,2025), to see what that would accomplish. It overwrote the value in DATE (from 2024 to 2025). (I had wondered whether it would create an additional field called “DATE”).

So I guess only the $set(date one is standard, and maps to “Recorded date”. The other two, $set(Date and $set(DATE are non standard (just my own custom fields, thereby demonstrating how easy it is to create such things - and the confusion that could potentially be had over items that look the same “on the surface” while representing two different things).

Is that correct?

This may be useful…

https://picard-docs.musicbrainz.org/en/appendices/tag_mapping.html?highlight=tags

1 Like

I see from the online manual re basic tags that date means Release Date.

I opened the file in foobar2000 (Mac version) and it listed all three dates under Date.

MediaInfo (Mac app) listed 2022 under “Recorded date” (same as Invisor) and separately listed Date and DATE.

ffprobe listed 2022 under “date” - which matches how I assigned it in the tagging-script

ffworks listed 2022 under “Recorded date”

exiftool (commandline utility reported 2022 under “Date/Time Original” and also under “Year”. Also 2023 as “User Defined Text: (Date) 2023”. 2025 was not displayed however.

Axone displayed
TYER: 2022 (the only field containing “2022”)
TXXX: 2023, Description: “Date”
TXXX: 2025, Description: “DATE”

Eyed3 (commandline) displayed
recording date: 2022
UserTextFrame: [Description: DATE]: 2025
UserTextFrame: [Description: Date]: 2023

Conclusions:

  • My “custom fields” are in fact separate instances of one field-type: User Text Frame
  • The %date% field has no universally agreed interpretation - for some it is “Release Date”, for others it is “Recording Date”, while others just call it (neutrally) “Date”

Appendix B of the documentation provides information as to how the tags in Picard are mapped to storage in the various formats. In the case of your MP3 files, this would be the ID3v2 mapping. You can see that Release Date (date in Picard) maps to TYER in ID3v2.3.

1 Like

I’ve been reading through those linked documents - thanks.
Also (as some linked to): the ID3v2.3 Specification - at id3v2.3.0 - ID3.org

From the latter I see there are the following types of date-related frame:

  • 4.2.1 TDAT [#TDAT Date]
    ** The ‘Date’ frame is a numeric string in the DDMM format containing the date for the recording. This field is always four characters long.

  • 4.2.1 TYER [#TYER Year]
    ** The ‘Year’ frame is a numeric string with a year of the recording. This frames is always four characters long (until the year 10000).

  • In Picard, %date% = TYER+TDAT – which seems very reasonable!

  • 4.2.1 TORY [#TORY Original release year]
    ** The ‘Original release year’ frame is intended for the year when the original recording, if for example the music in the file should be a cover of a previously released song, was released. The field is formatted as in the “TYER” frame. {Hence YYYY}

  • In Picard, TORY = %originaldate%
    ** But I am confused - one bit of the ID3v2.3 spec says 'Original release year but another bit (concatenated above) says “the year when the original recording”.
    ** Just now I tried looking up a couple of classic 1960’s tracks, once by lookup and again by scan. In both cases %originaldate% merely held the same value as %date%.

  • 4.2.1 TRDA [#TRDA Recording dates]
    ** The ‘Recording dates’ frame is a intended to be used as complement to the “TYER”, “TDAT” and “TIME” frames. E.g. “4th-7th June, 12th June” in combination with the “TYER” frame.
    ** Doesn’t sound relevant to my requirement.
    ** Not supported by Picard in any case.

I have come across one rare soul track that was recorded back in the 1960’s but only released a decade or so later. So for reflecting/grouping the sound of the music, I’d want to use the date of that actual recording, as opposed to the release. From the previous, I would guess at using %date% (=TDAT+TYER) for the date of recording and %originaldate% (=TORY) for the release.

Does that sound reasonable?