id3v2.3 (mp3) to vorbiscomment (opus, ogg, flac) conversions

Recommended Equivalents between vorbiscomment tags and id3v2.3 tags

Consider this a “living document” – I’ll be adding to it as I go along. You’re welcome to comment below if you’re wondering about other tags’ equivalents or believe I’m wrong about something here (HERESY!)

Some general notes/reminders:

  • I have no authority here: Until I am properly installed as Emperor of Online Audio, this list is not an official standard but rather my own suggestions on what I think is correct. I will update this list if my mind is ever changed on any of these opinions (quite possible)
  • Vorbiscomment tags may be used multiple times in a file, while generally ID3v2.3 tags may only appear once. For example, no matter how many “performers” there are in a track, there can still only be one TPE1 frame. If you have a duet with Paul Simon and Miley Cyrus, the mp3 version should have one TPE1 frame that says “Paul Simon/Miley Cyrus”, while the opus/ogg/flac/speex files should have both an “artist=Paul Simon” tag and an “artist=Miley Cyrus” tag.
  • When using ID3 TXXX frames to store vorbiscomment tags, my recommendation is to set the frame’s description to the tag name, then place every instance of that tag on its own line in the TXXX frame’s contents (including the “[tag name]=” part, on the assumption that it’ll make parsing the ID3-stored vorbiscomments a little easier. I may change my mind on this.)
  • Vorbiscomment tag ID3v2.3 Frame
    title TIT2
    version TIT3
    artist TPE1 (“Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group”)
    TOPE[1]
    album TALB
    genre TCON[2]
    tracknumber TRCK[3]
    performer TPE1[1]
    copyright TCOP[4]
    license USER
    WCOP
    TCOP[5]
    organization TPUB
    TOWN
    WOAR
    etc.[6]
    description COMM
    date TYER + TDAT – “-“[7]
    location TXXX:location[8]
    contact WOAF
    TXXX:contact[9]
    ISRC TSRC
    metadata_block_picture
    (attached picture)
    APIC[10]
    geo_location TXXX:geo_location[11]

    [1] Vorbiscomments specifies “artist” and “performer”, the latter for when the person you’re hearing isn’t the “artist” who made the original work (i.e. the “artist” will usually stay unchanged, and “performer” would be filled in if it’s different from the “artist”). ID3v2.3 does this a bit backwards: If the “artist” IS the “performer”, just use “TPE1”. If the “artist” is NOT the “performer”, put “artist” in “TOPE” and the “performer” in “TPE1”.

    [2] The ID3 specifications still recommend just putting a number in here, taken from the oddly specific list of 148 or so ID3v1 Genre numbers (note: only the first 80 are “official”, the rest are a “de-facto standard” defined by WinAmp). The TCON frame IS a text frame, though, so a normal text “genre” description of any kind is “valid” here. The vorbiscomment “genre” tag contents should be directly transferrable as a result.

    [3] The ID3 specification allows an optional “/(total number of tracks)” suffix, i.e. if this is the third track on an album containing 10 tracks, ID3v2.3 documents the use of either just “3” or “3/10”. This latter usage is NOT documented (as of 2013-11-26) in the vorbiscomment recommendations, but it it DOES appear to be in use in some places.

    [4] ID3v2.3 insists this frame’s text “must begin with a year and a space character (making five characters)”. The vorbiscomment “copyright” tag requires no such fussiness.

    [5] The most direct equivalent is the ID3v2.3 USER frame, but if the vorbiscomment “license” tag contents is a URL, the WCOP frame is for links to websites with copyright/terms-of-use information.

    [6] ID3v2.3 doesn’t seem to have a direct equivalent here, either. The closest equivalent is probably “publisher” frame (TPUB). “File owner/licensee” (TOWN) may also be appropriate. If the vorbiscomment “organization” is a URL, WOAR (if the “organization” is the band/performing group/etc.), WPUB (if it’s the website of the “publisher”), or possibly just “WOAF” (“Official audio file web page”) linking to the “organization” web site.

    [7] Vorbiscomment dates use the ISO8601 standard “YYYY-MM-DD” format. ID3v2.3 has a “year” (TYER) frame (which “must be four characters”), left over from ID3v1 apparently, and a “date” (TDAT) frame (which ALSO “must be four characters”) in the reverse DDMM format (without any separators). Ugh.
    ID3v2.4 replaces this with several different date frames (TDEN,TDOR,TDRC,TDRL,TDTG) that DO use ISO8601 standard date format…but ID3v2.4 support is still not very widespread nearly a decade and a half after its publication…

    [8]There seems to be no “location of recording” frame for ID3v2.3 at all. It’s probably easiest to just use the “user-defined text” (TXXX) frame with the description of “location”, and copy the whole vorbiscomment location tag into the field.

    [9]There’s no single ID3v2.3 equivalent here. One of the W??? frames is probably best, or a combination of them. Alternatively, just dump the vorbiscomment tag into a TXXX frame with the description “contact”.

    [10] once you base64-decode the contents of the metadata_block_picture tag, you get a flac attached picture data structure, which has very similar information to the ID3v2.3 APIC frame, but you can’t directly extract the data from one and put it directly into the other without some rearrangement. The “picture type” number codes are the same between metadata_block_picture and APIC, as is the usage of the mime-type, “picture description” text, and the preference for PNG or JPG images, though.

    [11] Like I said above, ID3 doesn’t seem to care about where anything was, physically. The best approach is to use the TXXX frame with the description “geo_location”, and each location tag on its own line in the text contents of the TXXX frame.

    This content is published under the Attribution-Share Alike 3.0 Unported license.

Leave a Reply