cellar S. Lhomme Internet-Draft Intended status: Standards Track M. Bunkus Expires: 29 October 2025 D. Rice 27 April 2025 Matroska Media Container Tag Specifications draft-ietf-cellar-tags-16 Abstract This document defines the Matroska multimedia container tags, namely the tag names and their respective semantic meaning. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on 29 October 2025. Copyright Notice Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/ license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License. Lhomme, et al. Expires 29 October 2025 [Page 1] Internet-Draft Matroska Tags April 2025 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Notation and Conventions . . . . . . . . . . . . . . . . . . 3 3. Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3.1. Why Official Tags Matter . . . . . . . . . . . . . . . . 4 3.2. Tag Formatting . . . . . . . . . . . . . . . . . . . . . 5 3.2.1. TagName Formatting . . . . . . . . . . . . . . . . . 5 3.2.2. TagString Formatting . . . . . . . . . . . . . . . . 5 3.2.2.1. Date Tags Formatting . . . . . . . . . . . . . . 6 3.2.2.2. Number Tags Formatting . . . . . . . . . . . . . 6 3.2.2.3. Country Code Tags Formatting . . . . . . . . . . 6 3.3. Target Types . . . . . . . . . . . . . . . . . . . . . . 7 3.3.1. Target Types Parts . . . . . . . . . . . . . . . . . 10 3.4. Multiple Targets UID . . . . . . . . . . . . . . . . . . 14 4. Official Tags . . . . . . . . . . . . . . . . . . . . . . . . 18 4.1. Nesting Information . . . . . . . . . . . . . . . . . . . 18 4.2. Organization Information . . . . . . . . . . . . . . . . 19 4.3. Titles . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4. Nested Information . . . . . . . . . . . . . . . . . . . 20 4.5. Entities . . . . . . . . . . . . . . . . . . . . . . . . 22 4.6. Search and Classification . . . . . . . . . . . . . . . . 25 4.7. Temporal Information . . . . . . . . . . . . . . . . . . 27 4.8. Spatial Information . . . . . . . . . . . . . . . . . . . 28 4.9. User Information . . . . . . . . . . . . . . . . . . . . 29 4.10. Technical Information . . . . . . . . . . . . . . . . . . 30 4.11. External Identifiers . . . . . . . . . . . . . . . . . . 35 4.12. Commercial . . . . . . . . . . . . . . . . . . . . . . . 36 4.13. Legal . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5. Security Considerations . . . . . . . . . . . . . . . . . . . 37 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38 6.1. Matroska Tags Names Registry . . . . . . . . . . . . . . 38 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 46 7.1. Normative References . . . . . . . . . . . . . . . . . . 46 7.2. Informative References . . . . . . . . . . . . . . . . . 48 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 48 1. Introduction Matroska is a multimedia container format defined in [RFC9559]. It can store timestamped multimedia data but also chapters and tags. The Tag elements add important metadata to identify and classify the information found in a Matroska Segment. It can tag a whole Segment, separate Tracks elements, individual Chapter elements or Attachments elements. Lhomme, et al. Expires 29 October 2025 [Page 2] Internet-Draft Matroska Tags April 2025 Some details about tagging are already present in Section 24 of [RFC9559]. Readers of this document should be familiar with that section, the different high level parts of Matroska as defined in in Section 4.5 of [RFC9559] and EBML Master Elements as defined in in Section 7.7 of [RFC8794]. While the Matroska tagging framework allows anyone to create their own custom tags, it is important to have a common set of values for interoperability. This document defines a set of common tag names used in Matroska. 2. Notation and Conventions The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 3. Tagging When a SimpleTag is nested within another SimpleTag, the nested SimpleTag becomes an attribute of its parent SimpleTag. For instance, if you wanted to store the dates that a singer started being the lead performer, then your SimpleTag tree would look something like this: * Targets - TagTrackUID = {track UID of tagged content}. * ARTIST = "Pet Shop Boys" - LEAD_PERFORMER = "Neil Tennant" o DATE_STARTED = "1981-08" This corresponds to this layout of EBML elements: Lhomme, et al. Expires 29 October 2025 [Page 3] Internet-Draft Matroska Tags April 2025 {track UID of tagged content} ARTIST Pet Shop Boys LEAD_PERFORMER Neil Tennant DATE_STARTED 1981-08 In this way, it becomes possible to store any SimpleTag as attributes of another SimpleTag. 3.1. Why Official Tags Matter There is a debate between people who think all tags should be free and those who think all tags should be strict. Our recommendations are in between. Advanced-users application might let you put any tag in your file. But for the rest of the applications, they usually give you a basic list of tags you can use. Both have their needs, but it's usually a bad idea to use custom or exotic tags because you will probably be the only person to use this information even though everyone else could benefit from it. So hopefully, when someone wants to put information in one's file, they will find an official one that fits their need and hopefully use it. If it's not in the list, this person can try to add a new tag in the Matroska Tags Names registry (Section 6.1). This registry is not meant to have every possible information in a file. Matroska files are not meant to become a whole database of people who made costumes for a film. A website Lhomme, et al. Expires 29 October 2025 [Page 4] Internet-Draft Matroska Tags April 2025 would be better for that. It's hard to define what should be in and what doesn't make sense in a file; thus, each demand needs to balance if it makes sense to be carried over in a file for storage and/or sharing or if it doesn't belong there. We also need an official list simply for developers to be able to display relevant information in their own design, if they choose to support a list of meta-information they should know which tag has the wanted meaning so that other apps could understand the same meaning. 3.2. Tag Formatting 3.2.1. TagName Formatting Official TagName values MUST consist of UTF-8 capital letters, numbers and the underscore character '_'. Official TagName values MUST NOT contain any space. Official TagName values MUST NOT start with the underscore character '_'; see Section 3.1. It is RECOMMENDED to start a tag name with the underscore character '_' for non official tags than are not meant to make it to the list of official tags. 3.2.2. TagString Formatting Although tags are metadata mostly used for reading, there are cases where the string value could be used for sorting, categorization, etc. For this reason, when possible, strict formatting of the value should be used so everyone can agree on how to use the value. Multiple items SHOULD never be stored as a list in a single TagString. If there is more than one tag value with the same name to be stored, then more than one SimpleTag SHOULD be used. Due to preexisting files where these formatting rules were not explicit, they are usually presented as rules that SHOULD be applied when possible, rather than MUST be applied at all times. It is RECOMMENDED to use strict formatting when writing new tag values. Lhomme, et al. Expires 29 October 2025 [Page 5] Internet-Draft Matroska Tags April 2025 3.2.2.1. Date Tags Formatting TagString fields defined in this document with dates MUST have the following format: "YYYY-MM-DD hh:mm:ss.mss" or a reduced version. The format is similar to the [ISO8601] date and time format defined in appendix A without the "T" separator, without the time offset and with the addition of the milliseconds "mss". The date and times represented are in Coordinated Universal Time (UTC). Date and times are usually not precise to a particular millisecond. To store less accurate dates, parts of the date string are removed starting from the right. For instance, to store only the year, one would use "2004". To store a specific day such as May 1st, 2003, one would use "2003-05-01". 3.2.2.2. Number Tags Formatting TagString fields that require a floating-point number MUST use the "." mark instead of the "," mark. Only ASCII numbers "0" to "9" and the "." character MUST be used. The "." separator represents the boundary between the integer value and the decimal parts. If the string doesn't contain the "." separator, the value is an integer value. Digit grouping delimiters MUST NOT be used. To display it differently for another locale, applications MUST support auto replacement on display. In legacy media containers, it is possible that the "," character might have been used as a separator or that digit grouping delimiters might have been used. A Matroska Reader SHOULD consider the following character handling to parse such legacy formats: * if multiple instances of the same non-number character are found, they are be ignored, * if only one "." character is found and no other non-number character is found, the "." is the integer-decimal separator, * if only one "," character is found and no other non-number character is found, the "," is a digit grouping delimiter, * any other non-number character is ignored. 3.2.2.3. Country Code Tags Formatting TagString fields that use a Country Code MUST use the Matroska countries form defined in Section 13 of [RFC9559], i.e. [RFC5646] two-letter region subtags, without the UK exception. Lhomme, et al. Expires 29 October 2025 [Page 6] Internet-Draft Matroska Tags April 2025 3.3. Target Types The TargetTypeValue element allows tagging of different parts that are inside or outside a given file. For example, in an audio file with one song you could have information about the album it comes from the CD set even if it's not found in the file. For applications to know the kind of information (e.g., "TITLE") relates to a certain level (CD title or track title), we also need a set of official TargetTypeValue values and TargetType names. That also means the same tag name can have different meanings depending on its TargetTypeValue, otherwise we would end up with 7 "TITLE_" tag names. For human readability a TargetType string can be added next to the corresponding TargetTypeValue. Audio and video have different TargetType values. The following table summarizes the TargetType values found in Section 5.1.8.1.1.2 of [RFC9559] for audio and video content: Lhomme, et al. Expires 29 October 2025 [Page 7] Internet-Draft Matroska Tags April 2025 +=================+=================+===============================+ | TargetTypeValue | Audio | Comment | | | TargetType | | +=================+=================+===============================+ | 70 | COLLECTION | the high hierarchy consisting | | | | of many different lower items | +-----------------+-----------------+-------------------------------+ | 60 | EDITION / | a list of lower levels | | | ISSUE / | grouped together | | | VOLUME / OPUS | | +-----------------+-----------------+-------------------------------+ | 50 | ALBUM / OPERA | the most common grouping | | | / CONCERT | level of music (e.g., an | | | | album) | +-----------------+-----------------+-------------------------------+ | 40 | PART / | when an album has different | | | SESSION | logical parts | +-----------------+-----------------+-------------------------------+ | 30 | TRACK / SONG | the common parts of an album | +-----------------+-----------------+-------------------------------+ | 20 | SUBTRACK / | corresponds to parts of a | | | PART / | track for audio (e.g., a | | | MOVEMENT | movement) | +-----------------+-----------------+-------------------------------+ | 10 | - | the lowest hierarchy found in | | | | music | +-----------------+-----------------+-------------------------------+ Table 1: TargetTypeValue Values Audio Semantic Description Lhomme, et al. Expires 29 October 2025 [Page 8] Internet-Draft Matroska Tags April 2025 +=================+=================+===============================+ | TargetTypeValue | Video | Comment | | | TargetType | | +=================+=================+===============================+ | 70 | COLLECTION | the high hierarchy consisting | | | | of many different lower items | +-----------------+-----------------+-------------------------------+ | 60 | SEASON / | a list of lower levels | | | SEQUEL / | grouped together | | | VOLUME | | +-----------------+-----------------+-------------------------------+ | 50 | MOVIE / | the most common grouping | | | EPISODE / | level of video (e.g., an | | | CONCERT | episode for TV series) | +-----------------+-----------------+-------------------------------+ | 40 | PART / | when an episode has different | | | SESSION | logical parts | +-----------------+-----------------+-------------------------------+ | 30 | CHAPTER | the common parts of a movie | | | | or episode | +-----------------+-----------------+-------------------------------+ | 20 | SCENE | a sequence of continuous | | | | action in a film or video | +-----------------+-----------------+-------------------------------+ | 10 | SHOT | the lowest hierarchy found in | | | | movies | +-----------------+-----------------+-------------------------------+ Table 2: TargetTypeValue Values Video Semantic Description Tags from a TargetTypeValue apply to the all lower TargetTypeValues. This means that if a CD has the same artist for all tracks, you just need to set the "ARTIST" tag at TargetTypeValue 50 (ALBUM) and not to each TargetTypeValue 30 (TRACK), but you can also repeat the value for each track. If some tracks of that CD have no known "ARTIST", the value MUST be set to nothing, a void string "" as detailed in Section 24.2 of [RFC9559], so that the album "ARTIST" doesn't apply. If a tag with a given TagName is found at a TargetTypeValue, only values of that TagName are valid at that TargetTypeValue level. In other words, the TagName values from upper TargetTypeValue levels don't apply at that level. Lhomme, et al. Expires 29 October 2025 [Page 9] Internet-Draft Matroska Tags April 2025 Multiple SimpleTag with the same TagName can be used at a given TargetTypeValue level when each SimpleTag contain a TagString. For example this can be useful to find a single "ARTIST" even when they are found in a collaboration. The concatenation of each TagString represents the value for the TagName at this level. The presentation, for instance with a separator, is up to the application. 3.3.1. Target Types Parts There are three organizational tags defined in Section 4.2: * TOTAL_PARTS * PART_NUMBER * PART_OFFSET These tags allow specifying the ordering of some tags within another group of tags. For example if you have an album with 10 tracks and you want to tag the second track from it. You set "TOTAL_PARTS" to "10" at TargetTypeValue 50 (ALBUM). It means the "ALBUM" contains 10 lower parts. The lower part in question is the first lower TargetTypeValue that is specified in the file. So, if it's TargetTypeValue = 30 (TRACK), then that means the album contains 10 tracks. If TargetTypeValue is 20 (MOVEMENT), that means the album contains 10 movements, etc. And since it's the second track within the album, the "PART_NUMBER" at TargetTypeValue 30 (TRACK) is set to "2". If the parts are split into multiple logical entities, you can also use "PART_OFFSET". For example you are tagging the third track of the second CD of a double CD album with a total of 10 tracks the "TOTAL_PARTS" at TargetTypeValue 50 (ALBUM) is "10", the "PART_NUMBER" at TargetTypeValue 30 (TRACK) is "3", and the the "PART_OFFSET" at TargetTypeValue 30 (TRACK) is "5", which is the number of tracks on the first CD. When a TargetTypeValue level doesn't exist it MUST NOT be specified in the files, so that the "TOTAL_PARTS" and "PART_NUMBER" elements match the same levels. Here is an example of an audio record with 2 tracks in a single file, corresponding to [DaFunk]. There is one Tag element for the record, and one Tag element per track on the record. Each track is identified by a chapter. Lhomme, et al. Expires 29 October 2025 [Page 10] Internet-Draft Matroska Tags April 2025 The Tag for the record: * Targets - TargetTypeValue = 50 * ARTIST = "Daft Punk" * TITLE = "Da Funk" * TOTAL_PARTS = "2" The Tag for the first track: * Targets - TargetTypeValue = 30 - TagChapterUID = 12345 * TITLE = "Da Funk" * PART_NUMBER = "1" The Tag for the second track: * Targets - TargetTypeValue = 30 - TagChapterUID = 67890 * TITLE = "Rollin' & Scratchin'" * PART_NUMBER = "2" This corresponds to this layout of EBML elements: 50 ARTIST Daft Punk Lhomme, et al. Expires 29 October 2025 [Page 11] Internet-Draft Matroska Tags April 2025 TITLE Da Funk TOTAL_PARTS 2 30 12345 TITLE Da Funk PART_NUMBER 1 30 67890 TITLE Rollin' & Scratchin' PART_NUMBER 2 Lhomme, et al. Expires 29 October 2025 [Page 12] Internet-Draft Matroska Tags April 2025 Here is an example using the "PART_OFFSET" tag. It corresponds to a file that contains the third track on the second CD of the 2-CD album "The Orb's Adventures Beyond The Ultraworld" [OrbUltraworld]: The Tag for the album: * Targets - TargetTypeValue = 50 * ARTIST = "Orb" - SORT_WITH = "Orb, The" * TITLE = "The Orb's Adventures Beyond The Ultraworld" * TOTAL_PARTS = "10" The Tag for the third track of the second CD: * Targets - TargetTypeValue = 30 * TITLE = "Outlands" * PART_NUMBER = "3" * PART_OFFSET = "5" This corresponds to this layout of EBML elements: 50 ARTIST Orb SORT_WITH Orb, The Lhomme, et al. Expires 29 October 2025 [Page 13] Internet-Draft Matroska Tags April 2025 TITLE The Orb's Adventures Beyond The Ultraworld TOTAL_PARTS 10 30 TITLE Outlands PART_NUMBER 3 PART_OFFSET 5 3.4. Multiple Targets UID A Tag element has a single Targets element with a single TargetTypeValue element. But the Targets element can contain various TagTrackUID, TagEditionUID, TagChapterUID and TagAttachmentUID elements. Lhomme, et al. Expires 29 October 2025 [Page 14] Internet-Draft Matroska Tags April 2025 When multiple values are found using the same Tag UID element (e.g., TagTrackUID) a logical OR is applied on these elements. In other words the tags apply to each entity defined by a UID. This is the list of UIDs the tags apply to (e.g., list of TagTrackUID). Such a list may contain a single UID element. When different lists of Tag UID elements are found (e.g., a list of TagTrackUID and a list of TagChapterUID) a logical AND is applied between those lists. In other words the tags apply only to the entities matching a UID in each list of Tag UID elements. These operations allow factorizing tags that would otherwise need to be repeated multiple times. Here is an example of a Tag applying to 2 chapters, using the same [DaFunk] example as in Section 3.3.1: * Targets - TargetTypeValue = 30 - TagChapterUID = 12345 - TagChapterUID = 67890 * WRITTEN_BY = "Thomas Bangalter" * WRITTEN_BY = "Guy-Manuel de Homem-Christo" * PRODUCER = "Thomas Bangalter" * PRODUCER = "Guy-Manuel de Homem-Christo" This corresponds to this layout of EBML elements: Lhomme, et al. Expires 29 October 2025 [Page 15] Internet-Draft Matroska Tags April 2025 30 12345 67890 WRITTEN_BY Thomas Bangalter WRITTEN_BY Guy-Manuel de Homem-Christo PRODUCER Thomas Bangalter PRODUCER Guy-Manuel de Homem-Christo Some combinations of different Tag UID elements are not possible. A TagChapterUID and TagAttachmentUID can't be mixed because there is no overlap with a Chapter and an Attachment that would make sense. An attachment applies to the whole segment and can be tied to tracks, via \Segment\Tracks\TrackEntry\AttachmentLink as defined in Section 5.1.4.1.24 of [RFC9559], but not chapters. Lhomme, et al. Expires 29 October 2025 [Page 16] Internet-Draft Matroska Tags April 2025 Mixing TagEditionUID and TagChapterUID elements is also not useful because each Chapter UID would need to be in one of the Chapter Edition UID. That would be the same as not using the list of TagEditionUID at all. The following table shows the allowed combinations between lists of Tag UID elements: +============+================+=========+=========+================+ | UID | Track | Edition | Chapter | Attachment | | elements | | | | | +============+================+=========+=========+================+ | Track | YES | YES | YES | with matching | | | | | | AttachmentLink | +------------+----------------+---------+---------+----------------+ | Edition | YES | YES | NO | YES | +------------+----------------+---------+---------+----------------+ | Chapter | YES | NO | YES | NO | +------------+----------------+---------+---------+----------------+ | Attachment | with matching | YES | NO | YES | | | AttachmentLink | | | | +------------+----------------+---------+---------+----------------+ Table 3: Tag UID elements allowed combinations Here is an example of a Tag applying to a single track and a single chapter. It represents the composer of the music in a part of a movie. The file may contain a second audio track with audio commentary not including that music, so we only tag the track with the music. * Targets - TargetTypeValue = 30 - TagTrackUID = 123 - TagChapterUID = 987654321 * COMPOSER = "Hans Zimmer" This corresponds to this layout of EBML elements: Lhomme, et al. Expires 29 October 2025 [Page 17] Internet-Draft Matroska Tags April 2025 30 123 67890 COMPOSER Hans Zimmer 4. Official Tags The following is a complete list of the supported Matroska Tags. As stated in Section 3.1 it is better to use official tags as much as possible, otherwise compatibility will be compromised. If you find that there is a Tag missing that you would like to use, then please contact the persons mentioned in the IANA Matroska Tags Registry for its inclusion; see Section 6.1. 4.1. Nesting Information Nesting Information tags are tags that usually contain any other tags. Lhomme, et al. Expires 29 October 2025 [Page 18] Internet-Draft Matroska Tags April 2025 +==========+========+=========================================+ | Tag Name | Type | Description | +==========+========+=========================================+ | ORIGINAL | nested | A special tag that is meant to have | | | | other tags inside (using nested tags) | | | | to describe the original work of art | | | | that this item is based on. | +----------+--------+-----------------------------------------+ | SAMPLE | nested | A tag that contains other tags to | | | | describe a sample used in the targeted | | | | item originally found in another work | | | | of art. | +----------+--------+-----------------------------------------+ | COUNTRY | UTF-8 | The name of the country that is meant | | | | to have other tags inside (using nested | | | | tags) to country specific information | | | | about the item, using the Country Code | | | | format defined in Section 3.2.2.3. | +----------+--------+-----------------------------------------+ Table 4: Nesting Information tags 4.2. Organization Information All tags in this section express hierarchy defined in Section 3.3.1. +=============+=======+=============================================+ | Tag Name | Type | Description | +=============+=======+=============================================+ | TOTAL_PARTS | UTF-8 | Total number of parts defined at the first | | | | lower level. (e.g., if TargetTypeValue is | | | | "50" (TargetType = "ALBUM"), the total | | | | number of tracks of an audio CD). | +-------------+-------+---------------------------------------------+ | PART_NUMBER | UTF-8 | Index of the current part relative to | | | | parts of the same level, starting at 1. | | | | (e.g., if TargetTypeValue is "30" | | | | (TargetType = "TRACK"), the track number | | | | of an audio CD). | +-------------+-------+---------------------------------------------+ | PART_OFFSET | UTF-8 | A number to add to "PART_NUMBER", when the | | | | parts at that level don't start at 1 | | | | (e.g., if TargetTypeValue is "30" | | | | (TargetType = "TRACK"), the track number | | | | of the second audio CD). | +-------------+-------+---------------------------------------------+ Table 5: Organization Information tags Lhomme, et al. Expires 29 October 2025 [Page 19] Internet-Draft Matroska Tags April 2025 4.3. Titles +==========+=======+=======================================+ | Tag Name | Type | Description | +==========+=======+=======================================+ | TITLE | UTF-8 | The title of this item. For example, | | | | for music you might label this "Canon | | | | in D", or for video's audio track you | | | | might use "English 5.1" This is akin | | | | to the "TIT2" tag in [ID3v2.3] when | | | | the TargetTypeValue is 30 (TRACK). | +----------+-------+---------------------------------------+ | SUBTITLE | UTF-8 | Sub Title of the entity. This is | | | | akin to the "TIT3" tag in [ID3v2.3] | | | | when the TargetTypeValue is 30 | | | | (TRACK). | +----------+-------+---------------------------------------+ Table 6: Titles tags 4.4. Nested Information Nested Information tags are tags providing information about their parent tags. Lhomme, et al. Expires 29 October 2025 [Page 20] Internet-Draft Matroska Tags April 2025 +=============+=======+============================================+ | Tag Name | Type | Description | +=============+=======+============================================+ | URL | UTF-8 | URL corresponding to the tag it is | | | | included in, using the format defined in | | | | [RFC3986]. | +-------------+-------+--------------------------------------------+ | SORT_WITH | UTF-8 | A child SimpleTag element to indicate what | | | | alternative value the parent SimpleTag | | | | element can have to be sorted -- for | | | | example, "Pet Shop Boys" instead of "The | | | | Pet Shop Boys". Or "Marley Bob" and | | | | "Marley Robert Nesta" (no comma needed). | +-------------+-------+--------------------------------------------+ | INSTRUMENTS | UTF-8 | The instruments that are being used/ | | | | played, separated by a comma. It MUST be | | | | a child of another tag, including the | | | | following: "ARTIST", "LEAD_PERFORMER", or | | | | "ACCOMPANIMENT". | +-------------+-------+--------------------------------------------+ | EMAIL | UTF-8 | Email corresponding to the tag it is | | | | included in, using the "Addr-Spec" format | | | | defined in Section 3.4.1 of [RFC5322]. | +-------------+-------+--------------------------------------------+ | ADDRESS | UTF-8 | The physical address of the entity. The | | | | address MAY include a country code. If a | | | | country code is included, it is | | | | RECOMMENDED to use the Country Code format | | | | defined in Section 3.2.2.3. It can be | | | | useful for a recording label. | +-------------+-------+--------------------------------------------+ | FAX | UTF-8 | The fax number corresponding to the tag it | | | | is included in. It can be useful for a | | | | recording label. | +-------------+-------+--------------------------------------------+ | PHONE | UTF-8 | The phone number corresponding to the tag | | | | it is included in. It can be useful for a | | | | recording label. | +-------------+-------+--------------------------------------------+ Table 7: Nested Information tags Lhomme, et al. Expires 29 October 2025 [Page 21] Internet-Draft Matroska Tags April 2025 4.5. Entities +=========================+=======+===============================+ | Tag Name | Type | Description | +=========================+=======+===============================+ | ARTIST | UTF-8 | A person or band/collective | | | | generally considered | | | | responsible for the work. | | | | This is akin to the "TPE1" | | | | tag in [ID3v2.3] when the | | | | TargetTypeValue is 30 | | | | (TRACK). | +-------------------------+-------+-------------------------------+ | LEAD_PERFORMER | UTF-8 | Lead Performer/Soloist(s). | | | | This can sometimes be the | | | | same as "ARTIST". This is | | | | akin to the "TPE1" tag in | | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 | | | | (TRACK). | +-------------------------+-------+-------------------------------+ | ACCOMPANIMENT | UTF-8 | Band/orchestra/accompaniment/ | | | | musician. This is akin to | | | | the "TPE2" tag in [ID3v2.3] | | | | when the TargetTypeValue is | | | | 30 (TRACK). | +-------------------------+-------+-------------------------------+ | COMPOSER | UTF-8 | The name of one composer of | | | | this item. This is akin to | | | | the "TCOM" tag in [ID3v2.3] | | | | when the TargetTypeValue is | | | | 30 (TRACK). | +-------------------------+-------+-------------------------------+ | ARRANGER | UTF-8 | The name of a person who | | | | arranged the piece (e.g., | | | | Ravel). | +-------------------------+-------+-------------------------------+ | LYRICS | UTF-8 | The lyrics corresponding to a | | | | song, in case audio | | | | synchronization is not known | | | | or as a duplicate of a | | | | subtitle track. Editing this | | | | value, when it is a duplicate | | | | of a subtitle track, SHOULD | | | | also result in editing the | | | | subtitle track for more | | | | consistency, and vice versa. | +-------------------------+-------+-------------------------------+ Lhomme, et al. Expires 29 October 2025 [Page 22] Internet-Draft Matroska Tags April 2025 | LYRICIST | UTF-8 | The name of a person who | | | | wrote the lyrics for a | | | | musical item. This is akin | | | | to the "TEXT" tag in | | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 | | | | (TRACK). | +-------------------------+-------+-------------------------------+ | CONDUCTOR | UTF-8 | Conductor/performer | | | | refinement. This is akin to | | | | the "TPE3" tag in [ID3v2.3] | | | | when the TargetTypeValue is | | | | 30 (TRACK). | +-------------------------+-------+-------------------------------+ | DIRECTOR | UTF-8 | The name of a director of a | | | | movie. This is akin to the | | | | "IART" tag [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | ASSISTANT_DIRECTOR | UTF-8 | The name of the assistant | | | | director. | +-------------------------+-------+-------------------------------+ | DIRECTOR_OF_PHOTOGRAPHY | UTF-8 | The name of the director of | | | | photography, also known as | | | | cinematographer. This is | | | | akin to the "ICNM" tag in | | | | [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | SOUND_ENGINEER | UTF-8 | The name of the sound | | | | engineer or sound recordist. | +-------------------------+-------+-------------------------------+ | ART_DIRECTOR | UTF-8 | The person who oversees the | | | | artists and craftspeople who | | | | build the sets. | +-------------------------+-------+-------------------------------+ | PRODUCTION_DESIGNER | UTF-8 | Artist responsible for | | | | designing the overall visual | | | | appearance of a movie. | +-------------------------+-------+-------------------------------+ | CHOREGRAPHER | UTF-8 | The name of the choregrapher | +-------------------------+-------+-------------------------------+ | COSTUME_DESIGNER | UTF-8 | The name of the costume | | | | designer | +-------------------------+-------+-------------------------------+ | ACTOR | UTF-8 | An actor or actress playing a | | | | role in this movie. This is | | | | the person's real name, not | | | | the character's name the | | | | person is playing. | Lhomme, et al. Expires 29 October 2025 [Page 23] Internet-Draft Matroska Tags April 2025 +-------------------------+-------+-------------------------------+ | CHARACTER | UTF-8 | The name of the character an | | | | actor or actress plays in | | | | this movie. This SHOULD be a | | | | sub-tag of an ACTOR tag in | | | | order to not cause | | | | ambiguities. | +-------------------------+-------+-------------------------------+ | WRITTEN_BY | UTF-8 | The author of the story or | | | | script (used for movies and | | | | TV shows). | +-------------------------+-------+-------------------------------+ | SCREENPLAY_BY | UTF-8 | The author of the screenplay | | | | or scenario (used for movies | | | | and TV shows). | +-------------------------+-------+-------------------------------+ | EDITED_BY | UTF-8 | The name of a film editor for | | | | a movie. This is akin to the | | | | "IEDT" tag in [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | PRODUCER | UTF-8 | The name of a producer for a | | | | song/movie. This is akin to | | | | the "IPRO" tag in | | | | [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | COPRODUCER | UTF-8 | The name of a co-producer. | +-------------------------+-------+-------------------------------+ | EXECUTIVE_PRODUCER | UTF-8 | The name of an executive | | | | producer. | +-------------------------+-------+-------------------------------+ | DISTRIBUTED_BY | UTF-8 | The name of a company | | | | distributing the content. | | | | This is akin to the "IDST" | | | | tag in [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | MASTERED_BY | UTF-8 | The engineer who mastered the | | | | content for a physical medium | | | | or for digital distribution. | +-------------------------+-------+-------------------------------+ | ENCODED_BY | UTF-8 | This is akin to the "TENC" | | | | tag in [ID3v2.3]. | +-------------------------+-------+-------------------------------+ | MIXED_BY | UTF-8 | DJ mix by the artist | | | | specified | +-------------------------+-------+-------------------------------+ | REMIXED_BY | UTF-8 | Interpreted, remixed, or | | | | otherwise modified by. This | | | | is akin to the "TPE4" tag in | Lhomme, et al. Expires 29 October 2025 [Page 24] Internet-Draft Matroska Tags April 2025 | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 | | | | (TRACK). | +-------------------------+-------+-------------------------------+ | PRODUCTION_STUDIO | UTF-8 | The name of a physical studio | | | | where the content was | | | | recorded. This is akin to | | | | the "ISTD" tag in | | | | [RIFF.tags]. | +-------------------------+-------+-------------------------------+ | THANKS_TO | UTF-8 | A very general tag for | | | | everyone else that wants to | | | | be listed. | +-------------------------+-------+-------------------------------+ | PUBLISHER | UTF-8 | This is akin to the "TPUB" | | | | tag in [ID3v2.3] when the | | | | TargetTypeValue is 30 | | | | (TRACK). | +-------------------------+-------+-------------------------------+ | LABEL | UTF-8 | The record label or imprint | | | | on the disc. | +-------------------------+-------+-------------------------------+ Table 8: Entities tags 4.6. Search and Classification +=====================+=======+=====================================+ | Tag Name | Type | Description | +=====================+=======+=====================================+ | GENRE | UTF-8 | The main genre (classical, | | | | ambient-house, synthpop, sci- | | | | fi, drama, etc.). The format | | | | follows the "TCON" tag in | | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 (TRACK). | +---------------------+-------+-------------------------------------+ | MOOD | UTF-8 | Intended to reflect the mood of | | | | the item with a few keywords | | | | (e.g., "Romantic", "Sad" or | | | | "Uplifting"). The format | | | | follows that of the "TMOO" tag | | | | in [ID3v2.4] when the | | | | TargetTypeValue is 30 (TRACK). | +---------------------+-------+-------------------------------------+ | ORIGINAL_MEDIA_TYPE | UTF-8 | Describes the original type of | | | | the media, such as, "DVD", | | | | "CD", "computer image," | Lhomme, et al. Expires 29 October 2025 [Page 25] Internet-Draft Matroska Tags April 2025 | | | "drawing," "lithograph," and so | | | | forth. This is akin to the | | | | "TMED" tag in [ID3v2.4]. | +---------------------+-------+-------------------------------------+ | CONTENT_TYPE | UTF-8 | The type of the item (e.g., | | | | Documentary, Feature Film, | | | | Cartoon, Music Video, Music, | | | | Sound FX). | +---------------------+-------+-------------------------------------+ | SUBJECT | UTF-8 | Describes the topic of the | | | | file, such as "Aerial view of | | | | Seattle." | +---------------------+-------+-------------------------------------+ | DESCRIPTION | UTF-8 | A short description of the | | | | content, such as "Two birds | | | | flying." | +---------------------+-------+-------------------------------------+ | KEYWORDS | UTF-8 | Keywords to the item separated | | | | by a comma, used for searching. | +---------------------+-------+-------------------------------------+ | SUMMARY | UTF-8 | A plot outline or a summary of | | | | the story. | +---------------------+-------+-------------------------------------+ | SYNOPSIS | UTF-8 | A description of the story line | | | | of the item. | +---------------------+-------+-------------------------------------+ | INITIAL_KEY | UTF-8 | The initial key that a musical | | | | track starts in. The format is | | | | identical to "TKEY" tag in | | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 (TRACK). | +---------------------+-------+-------------------------------------+ | PERIOD | UTF-8 | Describes the period that the | | | | piece is from or about. For | | | | example, "Renaissance". | +---------------------+-------+-------------------------------------+ | LAW_RATING | UTF-8 | Depending on the "COUNTRY" it | | | | is the format of the rating of | | | | a movie (P, R, X in the USA, an | | | | age in other countries or a URI | | | | defining a logo). | +---------------------+-------+-------------------------------------+ Table 9: Search and Classification tags Lhomme, et al. Expires 29 October 2025 [Page 26] Internet-Draft Matroska Tags April 2025 4.7. Temporal Information All tags in this section use the Date format defined in Section 3.2.2.1. +================+=======+========================================+ | Tag Name | Type | Description | +================+=======+========================================+ | DATE_RELEASED | UTF-8 | The time that the item was originally | | | | released. This is akin to the "TDRL" | | | | tag in [ID3v2.4] when the | | | | TargetTypeValue is 30 (TRACK). | +----------------+-------+----------------------------------------+ | DATE_RECORDED | UTF-8 | The time that the recording began. | | | | This is akin to the "TDRC" tag in | | | | [ID3v2.4] when the TargetTypeValue is | | | | 30 (TRACK). | +----------------+-------+----------------------------------------+ | DATE_ENCODED | UTF-8 | The time that the encoding of this | | | | item was completed began. This is | | | | akin to the "TDEN" tag in [ID3v2.4] | | | | when the TargetTypeValue is 30 | | | | (TRACK). | +----------------+-------+----------------------------------------+ | DATE_TAGGED | UTF-8 | The time that the tags were done for | | | | this item. This is akin to the "TDTG" | | | | tag in [ID3v2.4] when the | | | | TargetTypeValue is 30 (TRACK). | +----------------+-------+----------------------------------------+ | DATE_DIGITIZED | UTF-8 | The time that the item was transferred | | | | to a digital medium. This is akin to | | | | the "IDIT" tag in [RIFF.tags]. | +----------------+-------+----------------------------------------+ | DATE_WRITTEN | UTF-8 | The time that the writing of the | | | | music/script began. | +----------------+-------+----------------------------------------+ | DATE_PURCHASED | UTF-8 | Information on when the file was | | | | purchased; see also Section 4.12 on | | | | purchase tags. | +----------------+-------+----------------------------------------+ | DATE_STARTED | UTF-8 | When the information of the parent | | | | SimpleTag element starts being valid. | | | | The information of the parent | | | | SimpleTag element is only valid | | | | between this date and the "DATE_ENDED" | | | | date of the same level. The | | | | "DATE_ENDED" is OPTIONAL. If empty or | | | | omitted the end date is unknown. | Lhomme, et al. Expires 29 October 2025 [Page 27] Internet-Draft Matroska Tags April 2025 +----------------+-------+----------------------------------------+ | DATE_ENDED | UTF-8 | When the information is not valid | | | | anymore. The information of the | | | | parent SimpleTag element is only valid | | | | between the "DATE_STARTED" date of the | | | | same level and this date. The | | | | "DATE_STARTED" is OPTIONAL. If empty | | | | or omitted the start date is unknown. | +----------------+-------+----------------------------------------+ Table 10: Temporal Information tags 4.8. Spatial Information +======================+=======+===================================+ | Tag Name | Type | Description | +======================+=======+===================================+ | RECORDING_LOCATION | UTF-8 | The location where the item was | | | | recorded, using the Country Code | | | | format defined in | | | | Section 3.2.2.3. This code is | | | | followed by a comma, then more | | | | detailed information such as | | | | state/province, another comma, | | | | and then city. For example, "US, | | | | Texas, Austin". This will allow | | | | for easy sorting. It is okay to | | | | only store the country, or the | | | | country and the state/province. | | | | More detailed information can be | | | | added after the city through the | | | | use of additional commas. In | | | | cases where the province/state is | | | | unknown, but you want to store | | | | the city, simply leave a space | | | | between the two commas. For | | | | example, "US, , Austin". | +----------------------+-------+-----------------------------------+ | COMPOSITION_LOCATION | UTF-8 | Location that the item was | | | | originally designed/written, | | | | using the Country Code format | | | | defined in Section 3.2.2.3. This | | | | code is followed by a comma, then | | | | more detailed information such as | | | | state/province, another comma, | | | | and then city. For example, "US, | | | | Texas, Austin". This will allow | | | | for easy sorting. It is okay to | Lhomme, et al. Expires 29 October 2025 [Page 28] Internet-Draft Matroska Tags April 2025 | | | only store the country, or the | | | | country and the state/province. | | | | More detailed information can be | | | | added after the city through the | | | | use of additional commas. In | | | | cases where the province/state is | | | | unknown, but you want to store | | | | the city, simply leave a space | | | | between the two commas. For | | | | example, "US, , Austin". | +----------------------+-------+-----------------------------------+ | COMPOSER_NATIONALITY | UTF-8 | Nationality of the main composer | | | | of the item, mostly for classical | | | | music, using the Country Code | | | | format defined in | | | | Section 3.2.2.3. | +----------------------+-------+-----------------------------------+ Table 11: Spatial Information tags 4.9. User Information All tags in this section are personal to the user of these files. +==============+=======+=======================================+ | Tag Name | Type | Description | +==============+=======+=======================================+ | COMMENT | UTF-8 | Any comment related to the content. | +--------------+-------+---------------------------------------+ | PLAY_COUNTER | UTF-8 | The number of time the item has been | | | | played. | +--------------+-------+---------------------------------------+ | RATING | UTF-8 | A numeric value defining how much a | | | | person likes the song/movie. The | | | | number is between 0 and 5 with stored | | | | using the Float number defined in | | | | Section 3.2.2.2 (e.g., 2.7), 5(.0) | | | | being the highest possible rating. | | | | Other rating systems with different | | | | ranges will have to be scaled. | +--------------+-------+---------------------------------------+ Table 12: User Information tags Lhomme, et al. Expires 29 October 2025 [Page 29] Internet-Draft Matroska Tags April 2025 4.10. Technical Information +=================================+========+========================+ | Tag Name | Type | Description | +=================================+========+========================+ | ENCODER | UTF-8 | The software or | | | | hardware used to | | | | encode this item. | | | | ("LAME" or "XviD") | +---------------------------------+--------+------------------------+ | ENCODER_SETTINGS | UTF-8 | A list of the | | | | settings used for | | | | encoding this item. | | | | No specific format. | +---------------------------------+--------+------------------------+ | BPS | UTF-8 | The average bits per | | | | second of the | | | | specified item stored | | | | using the Float | | | | number defined in | | | | Section 3.2.2.2. | | | | This is only the data | | | | in the Block(s), and | | | | excludes headers and | | | | any container | | | | overhead. | +---------------------------------+--------+------------------------+ | FPS | UTF-8 | The average frames | | | | per second of the | | | | specified item. This | | | | is typically the | | | | average number of | | | | Blocks per second | | | | stored using the | | | | Float number defined | | | | in Section 3.2.2.2. | | | | In the event that | | | | lacing is used, each | | | | laced chunk is to be | | | | counted as a separate | | | | frame. | +---------------------------------+--------+------------------------+ | BPM | UTF-8 | Average number of | | | | beats per minute in | | | | the complete target | | | | (e.g., a chapter) | | | | stored using the | | | | Float number defined | Lhomme, et al. Expires 29 October 2025 [Page 30] Internet-Draft Matroska Tags April 2025 | | | in Section 3.2.2.2. | +---------------------------------+--------+------------------------+ | MEASURE | UTF-8 | In music, a measure | | | | is a unit of time in | | | | Western music like | | | | "4/4". It represents | | | | a regular grouping of | | | | beats, a meter, as | | | | indicated in musical | | | | notation by the time | | | | signature. The | | | | majority of the | | | | contemporary rock and | | | | pop music you hear on | | | | the radio these days | | | | is written in the 4/4 | | | | time signature. | +---------------------------------+--------+------------------------+ | TUNING | UTF-8 | It is saved as a | | | | frequency in hertz to | | | | allow near-perfect | | | | tuning of instruments | | | | to the same tone as | | | | the musical piece | | | | (e.g., "441.34" in | | | | Hertz). The values | | | | is stored using the | | | | Float number defined | | | | in Section 3.2.2.2. | +---------------------------------+--------+------------------------+ | REPLAYGAIN_GAIN | UTF-8 | The gain to apply to | | | | reach 89 dB SPL | | | | (Sound Pressure Level | | | | in decibels) on | | | | playback. The value | | | | is computed according | | | | to the [ReplayGain] | | | | standard. The value | | | | in decibels (dB) is | | | | stored as a string | | | | (e.g., "-0.42 dB"), | | | | using the Float | | | | number defined in | | | | Section 3.2.2.2. The | | | | decibel unit is | | | | OPTIONAL. There MAY | | | | be a space between | | | | the number and the | Lhomme, et al. Expires 29 October 2025 [Page 31] Internet-Draft Matroska Tags April 2025 | | | decibel unit. Note | | | | that ReplayGain | | | | information can be | | | | found at all | | | | TargetType levels | | | | (track, album, etc). | +---------------------------------+--------+------------------------+ | REPLAYGAIN_PEAK | UTF-8 | The maximum absolute | | | | peak amplitude of the | | | | item. The value is | | | | computed according to | | | | the [ReplayGain] | | | | standard. The value | | | | is a normalized | | | | absolute sample value | | | | of the target audio, | | | | using the Float | | | | number defined in | | | | Section 3.2.2.2 | | | | (e.g., "1.0129"). | | | | Note that ReplayGain | | | | information can be | | | | found at all | | | | TargetType levels | | | | (track, album, etc). | +---------------------------------+--------+------------------------+ | EBU_R128_LOUDNESS | binary | EBU R 128 Loudness. | | | | The value is the | | | | Loudness relative to | | | | nominal full scale in | | | | LUFS (Loudness Units | | | | Full Scale) | | | | normalized to a | | | | Target Level of -23.0 | | | | LUFS as defined in | | | | [EBU-R.128]. This | | | | value is stored as a | | | | floating-point number | | | | in the 32-bit and | | | | 64-bit binary | | | | interchange format, | | | | as defined in | | | | [IEEE.754]. It is | | | | similar to a EBML | | | | floating number value | | | | Section 7.3 of | | | | [RFC8794]. | +---------------------------------+--------+------------------------+ Lhomme, et al. Expires 29 October 2025 [Page 32] Internet-Draft Matroska Tags April 2025 | EBU_R128_MAX_TRUE_PEAK | binary | EBU R 128 Maximum | | | | True Peak Level. | | | | This corresponds to | | | | the maximum value of | | | | the audio signal | | | | waveform of a | | | | programme in the | | | | continuous time | | | | domain, measured in | | | | dB True Peak (dBTP), | | | | as defined in | | | | [EBU-R.128]. This | | | | value is stored as a | | | | floating-point number | | | | in the 32-bit and | | | | 64-bit binary | | | | interchange format, | | | | as defined in | | | | [IEEE.754]. It is | | | | similar to a EBML | | | | floating number value | | | | Section 7.3 of | | | | [RFC8794]. | +---------------------------------+--------+------------------------+ | EBU_R128_LOUDNESS_RANGE | binary | EBU R 128 Loudness | | | | Range, measures the | | | | variation in a time- | | | | varying loudness | | | | measurement, in LU | | | | (Loudness Units) as | | | | defined in | | | | [EBU-TECH.3342]. | | | | This value is stored | | | | as a floating-point | | | | number in the 32-bit | | | | and 64-bit binary | | | | interchange format, | | | | as defined in | | | | [IEEE.754]. It is | | | | similar to a EBML | | | | floating number value | | | | Section 7.3 of | | | | [RFC8794]. | +---------------------------------+--------+------------------------+ | EBU_R128_MAX_MOMENTARY_LOUDNESS | binary | EBU R 128 Maximum | | | | Momentary Loudness, | | | | measures the | | | | variation of loudness | Lhomme, et al. Expires 29 October 2025 [Page 33] Internet-Draft Matroska Tags April 2025 | | | on a 0.4 s sliding | | | | rectangular window, | | | | in LUFS (Loudness | | | | Units Full Scale) as | | | | defined in | | | | [EBU-TECH.3341]. | | | | This value is stored | | | | as a floating-point | | | | number in the 32-bit | | | | and 64-bit binary | | | | interchange format, | | | | as defined in | | | | [IEEE.754]. It is | | | | similar to a EBML | | | | floating number value | | | | Section 7.3 of | | | | [RFC8794]. | +---------------------------------+--------+------------------------+ | EBU_R128_MAX_SHORT_LOUDNESS | binary | EBU R 128 Maximum | | | | Short-Term Loudness, | | | | measures the | | | | variation of loudness | | | | on a 3 s sliding | | | | rectangular window, | | | | in LUFS (Loudness | | | | Units Full Scale) as | | | | defined in | | | | [EBU-TECH.3341]. | | | | This value is stored | | | | as a floating-point | | | | number in the 32-bit | | | | and 64-bit binary | | | | interchange format, | | | | as defined in | | | | [IEEE.754]. It is | | | | similar to a EBML | | | | floating number value | | | | Section 7.3 of | | | | [RFC8794]. | +---------------------------------+--------+------------------------+ Table 13: Technical Information tags Lhomme, et al. Expires 29 October 2025 [Page 34] Internet-Draft Matroska Tags April 2025 4.11. External Identifiers +================+========+=====================================+ | Tag Name | Type | Description | +================+========+=====================================+ | ISRC | UTF-8 | The International Standard | | | | Recording Code [ISRC], excluding | | | | the "ISRC" prefix and including | | | | hyphens. | +----------------+--------+-------------------------------------+ | MCDI | binary | This is a binary dump of the TOC of | | | | the CDROM that this item was taken | | | | from. This holds the same | | | | information as the "MCDI" in | | | | [ID3v2.3] when the TargetTypeValue | | | | is 50 (ALBUM). | +----------------+--------+-------------------------------------+ | ISBN | UTF-8 | International Standard Book Number | | | | [ISBN]. | +----------------+--------+-------------------------------------+ | BARCODE | UTF-8 | European Article Numbering EAN-13 | | | | barcode defined in [GS1] General | | | | Specifications. | +----------------+--------+-------------------------------------+ | CATALOG_NUMBER | UTF-8 | A label-specific string used to | | | | identify the release -- for | | | | example, TIC 01. | +----------------+--------+-------------------------------------+ | LABEL_CODE | UTF-8 | A 4-digit or 5-digit number to | | | | identify the record label, | | | | typically printed as (LC) xxxx or | | | | (LC) 0xxxx on CDs medias or covers | | | | (only the number is stored). | +----------------+--------+-------------------------------------+ | LCCN | UTF-8 | Library of Congress Control Number | | | | [LCCN]. | +----------------+--------+-------------------------------------+ | IMDB | UTF-8 | Internet Movie Database [IMDb] | | | | title identifier. "tt" followed by | | | | at least 7 digits for Movies, TV | | | | Shows, and Episodes. | +----------------+--------+-------------------------------------+ | TMDB | UTF-8 | The Movie DB "movie_id" or "tv_id" | | | | identifier for movies/TV shows | | | | [MovieDB]. The variable length | | | | digits string MUST be prefixed with | | | | either "movie/" or "tv/". | +----------------+--------+-------------------------------------+ Lhomme, et al. Expires 29 October 2025 [Page 35] Internet-Draft Matroska Tags April 2025 | TVDB | UTF-8 | The TV Database "Series ID" or | | | | "Episode ID" identifier for TV | | | | shows [TheTVDB]. Variable length | | | | all-digits string identifying a TV | | | | Show to use with the "series/{id}" | | | | API. | +----------------+--------+-------------------------------------+ | TVDB2 | UTF-8 | The TV Database [TheTVDB] tag which | | | | can include movies. The variable | | | | length digits string representing a | | | | "Series ID", "Episode ID" or "Movie | | | | ID" identifier MUST be prefixed | | | | with "series/", "episodes/", or | | | | "movies/", respectively. | +----------------+--------+-------------------------------------+ Table 14: External Identifiers tags 4.12. Commercial +===================+=======+=======================================+ | Tag Name | Type | Description | +===================+=======+=======================================+ | PURCHASE_ITEM | UTF-8 | URL to purchase this file using the | | | | URL format defined in [RFC3986]. | | | | This is akin to the "WPAY" tag in | | | | [ID3v2.3] when the TargetTypeValue | | | | is 30 (TRACK). | +-------------------+-------+---------------------------------------+ | PURCHASE_INFO | UTF-8 | Information on where to purchase | | | | this album using the URL format | | | | defined in [RFC3986]. This is akin | | | | to the "WCOM" tag in [ID3v2.3] when | | | | the TargetTypeValue is 30 (TRACK). | +-------------------+-------+---------------------------------------+ | PURCHASE_OWNER | UTF-8 | Information on the person who | | | | purchased the file. This is akin | | | | to the "TOWN" tag in [ID3v2.3] when | | | | the TargetTypeValue is 30 (TRACK). | +-------------------+-------+---------------------------------------+ | PURCHASE_PRICE | UTF-8 | The amount paid for entity, using | | | | the Float number defined in | | | | Section 3.2.2.2. The currency is | | | | not included. For instance, you | | | | would store "15.59" instead of | | | | "$15.59USD". | +-------------------+-------+---------------------------------------+ | PURCHASE_CURRENCY | UTF-8 | The currency type used to pay for | Lhomme, et al. Expires 29 October 2025 [Page 36] Internet-Draft Matroska Tags April 2025 | | | the entity. Use [ISO4217] for the | | | | 3 letter alphabetic code. | +-------------------+-------+---------------------------------------+ Table 15: Commercial tags 4.13. Legal +======================+=======+==================================+ | Tag Name | Type | Description | +======================+=======+==================================+ | COPYRIGHT | UTF-8 | The copyright information as per | | | | the copyright holder. This is | | | | akin to the "TCOP" tag in | | | | [ID3v2.3] when the | | | | TargetTypeValue is 30 (TRACK). | +----------------------+-------+----------------------------------+ | PRODUCTION_COPYRIGHT | UTF-8 | The copyright information as per | | | | the production copyright holder. | | | | This is akin to the "TPRO" tag | | | | in [ID3v2.4] when the | | | | TargetTypeValue is 30 (TRACK). | +----------------------+-------+----------------------------------+ | LICENSE | UTF-8 | The license applied to the | | | | content (e.g., Creative Commons | | | | variants). | +----------------------+-------+----------------------------------+ | TERMS_OF_USE | UTF-8 | The terms of use for this item. | | | | This is akin to the "USER" tag | | | | in [ID3v2.3]. | +----------------------+-------+----------------------------------+ Table 16: Legal tags 5. Security Considerations This document inherits security considerations from the EBML [RFC8794] and Matroska [RFC9559] documents. Tag values can be either TagString or TagBinary blobs. In both cases issues can happen if the parsing of the data fails. Most of the time strings are kept as-is and don't pose a security issue, apart from invalid UTF-8 values. Lhomme, et al. Expires 29 October 2025 [Page 37] Internet-Draft Matroska Tags April 2025 String tags that are parsed like "REPLAYGAIN_GAIN" or "REPLAYGAIN_PEAK" defined in Section 4.10 or string tags following the rules from Section 3.2.2 or string tags following other strict formats like URLs may cause issues when the string is bogus or in an unexpected format. Binary tags that need to be parsed like "MCDI" defined in Section 4.11 may cause issues when the data is bogus or incomplete. Due to the nature of nested SimpleTag, it is possible to exhaust the memory of the host app by using very deep nesting. An host app MAY add some limits to the amount of nesting possible to avoid such issues. 6. IANA Considerations 6.1. Matroska Tags Names Registry IANA has created a new registry called the "Matroska Tag Names" registry. To register a new Tag Name in this registry, one needs a Name, a Type, a Change Controller, and an optional Reference to a document describing the Element ID. The Name corresponds to the value stored in the TagName element. The Name SHOULD always be written in all capital letters and contain no space as defined in Section 3.2, The Type corresponds to which element will be stored the tag value. There can be 3 values for the Type: * UTF-8: the value of the Tag is stored in TagString, Matroska Tag Names for UTF-8 data are to be allocated according to the "First Come First Served" policy [RFC8126]. * binary: the value of the Tag is stored in TagBinary, Matroska Tag Names for binary data are to be allocated according to the "Specification Required" policy [RFC8126]. * nested: the tag doesn't contain a value, only nested tags inside. Matroska Tag Names for nested tags are to be allocated according to the "Specification Required" policy [RFC8126]. Lhomme, et al. Expires 29 October 2025 [Page 38] Internet-Draft Matroska Tags April 2025 Matroska Tag Names Values found in this document are assigned as initial values as follows: +=================================+==========+================+ | Tag Name | Tag Type | Reference | +=================================+==========+================+ | ORIGINAL | nested | This document, | | | | Section 4.1 | +---------------------------------+----------+----------------+ | SAMPLE | nested | This document, | | | | Section 4.1 | +---------------------------------+----------+----------------+ | COUNTRY | UTF-8 | This document, | | | | Section 4.1 | +---------------------------------+----------+----------------+ | TOTAL_PARTS | UTF-8 | This document, | | | | Section 4.2 | +---------------------------------+----------+----------------+ | PART_NUMBER | UTF-8 | This document, | | | | Section 4.2 | +---------------------------------+----------+----------------+ | PART_OFFSET | UTF-8 | This document, | | | | Section 4.2 | +---------------------------------+----------+----------------+ | TITLE | UTF-8 | This document, | | | | Section 4.3 | +---------------------------------+----------+----------------+ | SUBTITLE | UTF-8 | This document, | | | | Section 4.3 | +---------------------------------+----------+----------------+ | URL | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | SORT_WITH | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | INSTRUMENTS | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | EMAIL | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | ADDRESS | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | FAX | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 39] Internet-Draft Matroska Tags April 2025 | PHONE | UTF-8 | This document, | | | | Section 4.4 | +---------------------------------+----------+----------------+ | ARTIST | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | LEAD_PERFORMER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ACCOMPANIMENT | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | COMPOSER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ARRANGER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | LYRICS | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | LYRICIST | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | CONDUCTOR | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | DIRECTOR | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ASSISTANT_DIRECTOR | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | DIRECTOR_OF_PHOTOGRAPHY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | SOUND_ENGINEER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ART_DIRECTOR | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | PRODUCTION_DESIGNER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | CHOREGRAPHER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 40] Internet-Draft Matroska Tags April 2025 | COSTUME_DESIGNER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ACTOR | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | CHARACTER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | WRITTEN_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | SCREENPLAY_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | EDITED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | PRODUCER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | COPRODUCER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | EXECUTIVE_PRODUCER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | DISTRIBUTED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | MASTERED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | ENCODED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | MIXED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | REMIXED_BY | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | PRODUCTION_STUDIO | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | THANKS_TO | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 41] Internet-Draft Matroska Tags April 2025 | PUBLISHER | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | LABEL | UTF-8 | This document, | | | | Section 4.5 | +---------------------------------+----------+----------------+ | GENRE | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | MOOD | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | ORIGINAL_MEDIA_TYPE | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | CONTENT_TYPE | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | SUBJECT | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | DESCRIPTION | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | KEYWORDS | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | SUMMARY | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | SYNOPSIS | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | INITIAL_KEY | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | PERIOD | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | LAW_RATING | UTF-8 | This document, | | | | Section 4.6 | +---------------------------------+----------+----------------+ | DATE_RELEASED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_RECORDED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 42] Internet-Draft Matroska Tags April 2025 | DATE_ENCODED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_TAGGED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_DIGITIZED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_WRITTEN | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_PURCHASED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_STARTED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | DATE_ENDED | UTF-8 | This document, | | | | Section 4.7 | +---------------------------------+----------+----------------+ | RECORDING_LOCATION | UTF-8 | This document, | | | | Section 4.8 | +---------------------------------+----------+----------------+ | COMPOSITION_LOCATION | UTF-8 | This document, | | | | Section 4.8 | +---------------------------------+----------+----------------+ | COMPOSER_NATIONALITY | UTF-8 | This document, | | | | Section 4.8 | +---------------------------------+----------+----------------+ | COMMENT | UTF-8 | This document, | | | | Section 4.9 | +---------------------------------+----------+----------------+ | PLAY_COUNTER | UTF-8 | This document, | | | | Section 4.9 | +---------------------------------+----------+----------------+ | RATING | UTF-8 | This document, | | | | Section 4.9 | +---------------------------------+----------+----------------+ | ENCODER | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | ENCODER_SETTINGS | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | BPS | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 43] Internet-Draft Matroska Tags April 2025 | FPS | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | BPM | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | MEASURE | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | TUNING | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | REPLAYGAIN_GAIN | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | REPLAYGAIN_PEAK | UTF-8 | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | EBU_R128_LOUDNESS | binary | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | EBU_R128_MAX_TRUE_PEAK | binary | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | EBU_R128_LOUDNESS_RANGE | binary | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | EBU_R128_MAX_MOMENTARY_LOUDNESS | binary | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | EBU_R128_MAX_SHORT_LOUDNESS | binary | This document, | | | | Section 4.10 | +---------------------------------+----------+----------------+ | ISRC | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | MCDI | binary | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | ISBN | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | BARCODE | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | CATALOG_NUMBER | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ Lhomme, et al. Expires 29 October 2025 [Page 44] Internet-Draft Matroska Tags April 2025 | LABEL_CODE | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | LCCN | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | IMDB | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | TMDB | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | TVDB | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | TVDB2 | UTF-8 | This document, | | | | Section 4.11 | +---------------------------------+----------+----------------+ | PURCHASE_ITEM | UTF-8 | This document, | | | | Section 4.12 | +---------------------------------+----------+----------------+ | PURCHASE_INFO | UTF-8 | This document, | | | | Section 4.12 | +---------------------------------+----------+----------------+ | PURCHASE_OWNER | UTF-8 | This document, | | | | Section 4.12 | +---------------------------------+----------+----------------+ | PURCHASE_PRICE | UTF-8 | This document, | | | | Section 4.12 | +---------------------------------+----------+----------------+ | PURCHASE_CURRENCY | UTF-8 | This document, | | | | Section 4.12 | +---------------------------------+----------+----------------+ | COPYRIGHT | UTF-8 | This document, | | | | Section 4.13 | +---------------------------------+----------+----------------+ | PRODUCTION_COPYRIGHT | UTF-8 | This document, | | | | Section 4.13 | +---------------------------------+----------+----------------+ | LICENSE | UTF-8 | This document, | | | | Section 4.13 | +---------------------------------+----------+----------------+ | TERMS_OF_USE | UTF-8 | This document, | | | | Section 4.13 | +---------------------------------+----------+----------------+ Table 17: Initial Contents of "Matroska Tag Names" Registry Lhomme, et al. Expires 29 October 2025 [Page 45] Internet-Draft Matroska Tags April 2025 7. References 7.1. Normative References [EBU-R.128] "LOUDNESS NORMALISATION AND PERMITTED MAXIMUM LEVEL OF AUDIO SIGNALS", November 2023, . [EBU-TECH.3341] "LOUDNESS METERING: ‘EBU MODE’ METERING TO SUPPLEMENT EBU R 128 LOUDNESS NORMALIZATION", November 2023, . [EBU-TECH.3342] "LOUDNESS RANGE: A MEASURE TO SUPPLEMENT EBU R 128 LOUDNESS NORMALIZATION", November 2023, . [GS1] "GS1 General Specifications", GS1 20.0, January 2020, . [ID3v2.3] Nilsson, M., Mahoney, D., Ed., and J. Sundstrom, Ed., "ID3 tag version 2.3.0", 3 February 1999, . [ID3v2.4] Nilsson, M., "ID3 tag version 2.4.0 - Native Frames", 1 November 2000, . [IEEE.754] IEEE, "IEEE Standard for Binary Floating-Point Arithmetic", 13 June 2019, . [IMDb] Internet Movie Database, "IMDb data key concepts", . [ISBN] International ISBN Agency, "ISBN Users' Manual", December 2017, . [ISO4217] International Organization for Standardization, "ISO 4217 Currency codes", ISO 4217:2015, August 2015, . [ISRC] International ISRC Registration Authority, "International Standard Recording Code (ISRC) Handbook", IFPI 4th Edition, 2021, . Lhomme, et al. Expires 29 October 2025 [Page 46] Internet-Draft Matroska Tags April 2025 [LCCN] United States Library Of Congress, "Library Of Congress Control Number", October 1999, . [MovieDB] The Movie Database, "The Movie Database API", . [ReplayGain] Robinson, D., "ReplayGain 1.0 specification", 10 July 2001, . [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, DOI 10.17487/RFC3986, January 2005, . [RFC5322] Resnick, P., Ed., "Internet Message Format", RFC 5322, DOI 10.17487/RFC5322, October 2008, . [RFC5646] Phillips, A., Ed. and M. Davis, Ed., "Tags for Identifying Languages", BCP 47, RFC 5646, DOI 10.17487/RFC5646, September 2009, . [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, June 2017, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8794] Lhomme, S., Rice, D., and M. Bunkus, "Extensible Binary Meta Language", RFC 8794, DOI 10.17487/RFC8794, July 2020, . [RFC9559] Lhomme, S., Bunkus, M., and D. Rice, "Matroska Media Container Format Specification", RFC 9559, DOI 10.17487/RFC9559, October 2024, . Lhomme, et al. Expires 29 October 2025 [Page 47] Internet-Draft Matroska Tags April 2025 [TheTVDB] The TVDB, "TVDB API V4", . 7.2. Informative References [DaFunk] Discogs, "Daft Punk - Da Funk", . [ISO8601] International Organization for Standardization, "Date and time — Representations for information interchange — Part 1: Basic rules", ISO 8601-1:2019, February 2019, . [OrbUltraworld] Discogs, "Orb - The Orb's Adventures Beyond The Ultraworld", . [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, . [RIFF.tags] Exiftool, "RIFF Tags", . Authors' Addresses Steve Lhomme Email: slhomme@matroska.org Moritz Bunkus Email: moritz@bunkus.org Dave Rice Email: dave@dericed.com Lhomme, et al. Expires 29 October 2025 [Page 48]