idnits 2.17.1 draft-ietf-cellar-tags-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (19 October 2020) is 1282 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 cellar S. Lhomme 3 Internet-Draft 4 Intended status: Informational M. Bunkus 5 Expires: 22 April 2021 6 D. Rice 7 19 October 2020 9 Matroska Media Container Tag Specifications 10 draft-ietf-cellar-tags-05 12 Abstract 14 This document defines the Matroska tags, namely the tag names and 15 their respective semantic meaning. 17 Status of This Memo 19 This Internet-Draft is submitted in full conformance with the 20 provisions of BCP 78 and BCP 79. 22 Internet-Drafts are working documents of the Internet Engineering 23 Task Force (IETF). Note that other groups may also distribute 24 working documents as Internet-Drafts. The list of current Internet- 25 Drafts is at https://datatracker.ietf.org/drafts/current/. 27 Internet-Drafts are draft documents valid for a maximum of six months 28 and may be updated, replaced, or obsoleted by other documents at any 29 time. It is inappropriate to use Internet-Drafts as reference 30 material or to cite them other than as "work in progress." 32 This Internet-Draft will expire on 22 April 2021. 34 Copyright Notice 36 Copyright (c) 2020 IETF Trust and the persons identified as the 37 document authors. All rights reserved. 39 This document is subject to BCP 78 and the IETF Trust's Legal 40 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 41 license-info) in effect on the date of publication of this document. 42 Please review these documents carefully, as they describe your rights 43 and restrictions with respect to this document. Code Components 44 extracted from this document must include Simplified BSD License text 45 as described in Section 4.e of the Trust Legal Provisions and are 46 provided without warranty as described in the Simplified BSD License. 48 Table of Contents 50 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 51 2. Status of this document . . . . . . . . . . . . . . . . . . . 3 52 3. Security Considerations . . . . . . . . . . . . . . . . . . . 3 53 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 54 5. Notation and Conventions . . . . . . . . . . . . . . . . . . 3 55 6. Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 6.1. Why official tags matter . . . . . . . . . . . . . . . . 4 57 6.2. Tag translations . . . . . . . . . . . . . . . . . . . . 4 58 6.3. Tag Formatting . . . . . . . . . . . . . . . . . . . . . 5 59 6.4. Target types . . . . . . . . . . . . . . . . . . . . . . 5 60 6.5. Official tags . . . . . . . . . . . . . . . . . . . . . . 7 61 6.6. Nesting Information . . . . . . . . . . . . . . . . . . . 7 62 6.7. Organization Information . . . . . . . . . . . . . . . . 8 63 6.8. Titles . . . . . . . . . . . . . . . . . . . . . . . . . 8 64 6.9. Nested Information . . . . . . . . . . . . . . . . . . . 9 65 6.10. Entities . . . . . . . . . . . . . . . . . . . . . . . . 9 66 6.11. Search and Classification . . . . . . . . . . . . . . . . 11 67 6.12. Temporal Information . . . . . . . . . . . . . . . . . . 11 68 6.13. Spacial Information . . . . . . . . . . . . . . . . . . . 12 69 6.14. Personal . . . . . . . . . . . . . . . . . . . . . . . . 13 70 6.15. Technical Information . . . . . . . . . . . . . . . . . . 13 71 6.16. Identifiers . . . . . . . . . . . . . . . . . . . . . . . 14 72 6.17. Commercial . . . . . . . . . . . . . . . . . . . . . . . 15 73 6.18. Legal . . . . . . . . . . . . . . . . . . . . . . . . . . 15 74 6.19. Notes . . . . . . . . . . . . . . . . . . . . . . . . . . 16 75 7. Normative References . . . . . . . . . . . . . . . . . . . . 16 76 8. Informative References . . . . . . . . . . . . . . . . . . . 16 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 79 1. Introduction 81 Matroska aims to become THE standard of multimedia container formats. 82 It can store timestamped multimedia data but also chapters and tags. 83 The "Tag Elements" add important metadata to identify and classify 84 the information found in a "Matroska Segment". It can tag a whole 85 "Segment", separate "Track Elements", individual "Chapter Elements" 86 or "Attachment Elements". 88 While the Matroska tagging framework allows anyone to create their 89 own custom tags, it's important to have a common set of values for 90 interoperability. This document intends to define a set of common 91 tag names used in Matroska. 93 2. Status of this document 95 This document is a work-in-progress specification defining the 96 Matroska file format as part of the IETF Cellar working group 97 (https://datatracker.ietf.org/wg/cellar/charter/). It uses basic 98 elements and concepts already defined in the Matroska specifications 99 defined by this workgroup. 101 3. Security Considerations 103 "Tag" values can be either strings or binary blobs. This document 104 inherits security considerations from the EBML and Matroska 105 documents. 107 4. IANA Considerations 109 To be determined. 111 5. Notation and Conventions 113 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 114 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 115 "OPTIONAL" in this document are to be interpreted as described in BCP 116 14 [RFC2119] [RFC8174] when, and only when, they appear in all 117 capitals, as shown here. 119 6. Tagging 121 When a Tag is nested within another Tag, the nested Tag becomes an 122 attribute of the base tag. For instance, if you wanted to store the 123 dates that a singer used certain addresses for, that singer being the 124 lead singer for a track that included multiple bands simultaneously, 125 then your tag tree would look something like this: 127 * Targets 129 - TrackUID 131 * BAND 133 - LEADPERFORMER 135 - ADDRESS 137 o DATE 139 o DATEEND 141 - ADDRESS 143 o DATE 145 In this way, it becomes possible to store any Tag as attributes of 146 another tag. 148 Multiple items SHOULD never be stored as a list in a single 149 TagString. If there is more than one tag of a certain type to be 150 stored, then more than one SimpleTag SHOULD be used. 152 For authoring Tags outside of EBML, the following XML syntax is 153 proposed (https://www.matroska.org/files/tags/matroskatags.dtd) used 154 in mkvmerge (https://mkvtoolnix.download/doc/ 155 mkvmerge.html#mkvmerge.tags). Binary data SHOULD be stored using 156 BASE64 encoding if it is being stored at authoring time. 158 6.1. Why official tags matter 160 There is a debate between people who think all tags SHOULD be free 161 and those who think all tags SHOULD be strict. If you look at this 162 page you will realize we are in between. 164 Advanced-users application might let you put any tag in your file. 165 But for the rest of the applications, they usually give you a basic 166 list of tags you can use. Both have their needs. But it's usually a 167 bad idea to use custom/exotic tags because you will probably be the 168 only person to use this information even though everyone else could 169 benefit from it. So hopefully, when someone wants to put information 170 in one's file, they will find an official one that fit them and 171 hopefully use it ! If it's not in the list, this person can contact 172 us any time for addition of such a missing tag. But it doesn't mean 173 it will be accepted... Matroska files are not meant the become a 174 whole database of people who made costumes for a film. A website 175 would be better for that... It's hard to define what SHOULD be in and 176 what doesn't make sense in a file. So we'll treat each request 177 carefully. 179 We also need an official list simply for developers to be able to 180 display relevant information in their own design (if they choose to 181 support a list of meta-information they SHOULD know which tag has the 182 wanted meaning so that other apps could understand the same meaning). 184 6.2. Tag translations 186 To be able to save tags from other systems to Matroska we need to 187 translate them to our system. There is a translation table on our 188 site (othertagsystems/comparetable.html). 190 6.3. Tag Formatting 192 * The TagName SHOULD always be written in all capital letters and 193 contain no space. 195 * The fields with dates SHOULD have the following format: YYYY-MM-DD 196 hh:mm:ss.mss YYYY = Year, MM = Month, DD = Days, HH = Hours, mm = 197 Minutes, ss = Seconds, mss = Milliseconds. To store less 198 accuracy, you remove items starting from the right. To store only 199 the year, you would use, "2004". To store a specific day such as 200 May 1st, 2003, you would use "2003-05-01". 202 * Fields that require a Float SHOULD use the "." mark instead of the 203 "," mark. To display it differently for another local, 204 applications SHOULD support auto replacement on display. Also, a 205 thousandths separator SHOULD NOT be used. 207 * For currency amounts, there SHOULD only be a numeric value in the 208 Tag. Only numbers, no letters or symbols other than ".". For 209 instance, you would store "15.59" instead of "$15.59USD". 211 6.4. Target types 213 The TargetType element allows tagging of different parts that are 214 inside or outside a given file. For example, in an audio file with 215 one song you could have information about the album it comes from and 216 even the CD set even if it's not found in the file. 218 For application to know what kind of information (like TITLE) relates 219 to a certain level (CD title or track title), we also need a set of 220 official TargetType names. For now audio and video will have 221 different values & names. That also means the same tag name can have 222 different meanings depending on where it is (otherwise we would end 223 up with 15 TITLE_ tags). 225 +=================+============+============+=======================+ 226 | TargetTypeValue | Audio | Video | Comment | 227 | | strings | strings | | 228 +=================+============+============+=======================+ 229 | 70 | COLLECTION | COLLECTION | the high | 230 | | | | hierarchy | 231 | | | | consisting of | 232 | | | | many different | 233 | | | | lower items | 234 +-----------------+------------+------------+-----------------------+ 235 | 60 | EDITION / | SEASON / | a list of lower | 236 | | ISSUE / | SEQUEL / | levels grouped | 237 | | VOLUME / | VOLUME | together | 238 | | OPUS | | | 239 +-----------------+------------+------------+-----------------------+ 240 | 50 | ALBUM / | MOVIE / | the most common | 241 | | OPERA / | EPISODE / | grouping level | 242 | | CONCERT | CONCERT | of music and | 243 | | | | video (equals | 244 | | | | to an episode | 245 | | | | for TV series) | 246 +-----------------+------------+------------+-----------------------+ 247 | 40 | PART / | PART / | when an album | 248 | | SESSION | SESSION | or episode has | 249 | | | | different | 250 | | | | logical parts | 251 +-----------------+------------+------------+-----------------------+ 252 | 30 | TRACK / | CHAPTER | the common | 253 | | SONG | | parts of an | 254 | | | | album or a | 255 | | | | movie | 256 +-----------------+------------+------------+-----------------------+ 257 | 20 | SUBTRACK / | SCENE | corresponds to | 258 | | PART / | | parts of a | 259 | | MOVEMENT | | track for audio | 260 | | | | (like a | 261 | | | | movement) | 262 +-----------------+------------+------------+-----------------------+ 263 | 10 | - | SHOT | the lowest | 264 | | | | hierarchy found | 265 | | | | in music or | 266 | | | | movies | 267 +-----------------+------------+------------+-----------------------+ 269 Table 1 271 An upper level value tag applies to the lower level. That means if a 272 CD has the same artist for all tracks, you just need to set the 273 ARTIST tag at level 50 (ALBUM) and not to each TRACK (but you can). 274 That also means that, if some parts of the CD have no known ARTIST, 275 the value MUST be set to nothing (a void string ""). 277 When a level doesn't exist it MUST NOT be specified in the files, so 278 that the TOTAL_PARTS and PART_NUMBER elements match the same levels. 280 Here is an example of how these "organizational" tags work: If you 281 set 10 TOTAL_PARTS to the ALBUM level (40) it means the album 282 contains 10 lower parts. The lower part in question is the first 283 lower level that is specified in the file. So, if it's TRACK (30), 284 then that means it contains 10 tracks. If it's MOVEMENT (20), that 285 means it's 10 movements, etc. 287 6.5. Official tags 289 The following is a complete list of the supported Matroska Tags. 290 While it is possible to use Tag names that are not listed below, this 291 is not recommended as compatibility will be compromised. If you find 292 that there is a Tag missing that you would like to use, then please 293 contact the Matroska team for its inclusion in the specifications 294 before the format reaches 1.0. 296 6.6. Nesting Information 298 Nesting Information tags are intended to contain other tags. 300 +==========+======+=======================================+ 301 | Tag Name | Type | Description | 302 +==========+======+=======================================+ 303 | ORIGINAL | - | A special tag that is meant to have | 304 | | | other tags inside (using nested tags) | 305 +----------+------+---------------------------------------+ 307 Table 2 309 to describe the original work of art that this item is based on. All 310 tags in this list can be used "under" the ORIGINAL tag like LYRICIST, 311 PERFORMER, etc. SAMPLE | - | A tag that contains other tags to 312 describe a sample used in the targeted item taken from another work 313 of art. All tags in this list can be used "under" the SAMPLE tag 314 like TITLE, ARTIST, DATE_RELEASED, etc. COUNTRY | UTF-8 | The name 315 of the country ([biblio ISO-639-2](https://www.loc.gov/standards/ 316 iso639-2/php/English (https://www.loc.gov/standards/iso639-2/php/ 317 English)_list.php)) that is meant to have other tags inside (using 318 nested tags) to country specific information about the item. All 319 tags in this list can be used "under" the COUNTRY_SPECIFIC tag like 320 LABEL, PUBLISH_RATING, etc. 322 6.7. Organization Information 324 +=============+=======+=============================================+ 325 | Tag Name | Type | Description | 326 +=============+=======+=============================================+ 327 | TOTAL_PARTS | UTF-8 | Total number of parts defined | 328 | | | at the first lower level. | 329 | | | (e.g., if TargetType is ALBUM, | 330 +-------------+-------+---------------------------------------------+ 332 Table 3 334 the total number of tracks of an audio CD) PART_NUMBER | UTF-8 | 335 Number of the current part of the current level. (e.g., if TargetType 336 is TRACK, the track number of an audio CD) PART_OFFSET | UTF-8 | A 337 number to add to PART_NUMBER, when the parts at that level don't 338 start at 1. (e.g., if TargetType is TRACK, the track number of the 339 second audio CD) 341 6.8. Titles 343 +==========+=======+===========================================+ 344 | Tag Name | Type | Description | 345 +==========+=======+===========================================+ 346 | TITLE | UTF-8 | The title of this item. For example, for | 347 | | | music you might label this "Canon in D", | 348 +----------+-------+-------------------------------------------+ 350 Table 4 352 or for video's audio track you might use "English 5.1" This is akin 353 to the TIT2 tag in ID3. SUBTITLE | UTF-8 | Sub Title of the entity. 355 6.9. Nested Information 357 Nested Information includes tags contained in other tags. 359 +===========+=======+===========================================+ 360 | Tag Name | Type | Description | 361 +===========+=======+===========================================+ 362 | URL | UTF-8 | URL corresponding to the tag it's | 363 | | | included in. | 364 +-----------+-------+-------------------------------------------+ 365 | SORT_WITH | UTF-8 | A child element to indicate what | 366 | | | alternative value the parent tag can have | 367 +-----------+-------+-------------------------------------------+ 369 Table 5 371 to be sorted -- for example, "Pet Shop Boys" instead of "The Pet Shop 372 Boys". Or "Marley Bob" and "Marley Ziggy" (no comma needed). 373 INSTRUMENTS | UTF-8 | The instruments that are being used/played, 374 separated by a comma. It SHOULD be a child of the following tags: 375 ARTIST, LEAD_PERFORMER, or ACCOMPANIMENT. EMAIL | UTF-8 | Email 376 corresponding to the tag it's included in. ADDRESS | UTF-8 | The 377 physical address of the entity. The address SHOULD include a country 378 code. It can be useful for a recording label. FAX | UTF-8 | The fax 379 number corresponding to the tag it's included in. It can be useful 380 for a recording label. PHONE | UTF-8 | The phone number 381 corresponding to the tag it's included in. It can be useful for a 382 recording label. 384 6.10. Entities 386 +==========+=======+=======================================+ 387 | Tag Name | Type | Description | 388 +==========+=======+=======================================+ 389 | ARTIST | UTF-8 | A person or band/collective generally | 390 | | | considered responsible for the work. | 391 +----------+-------+---------------------------------------+ 393 Table 6 395 This is akin to the TPE1 tag in ID3 (http://id3.org/id3v2.3.0#TPE1). 396 LEAD_PERFORMER | UTF-8 | Lead Performer/Soloist(s). This can 397 sometimes be the same as ARTIST. ACCOMPANIMENT | UTF-8 | 398 Band/orchestra/accompaniment/musician. This is akin to the TPE2 tag 399 in ID3 (http://id3.org/id3v2.3.0#TPE2). COMPOSER | UTF-8 | The name 400 of the composer of this item. This is akin to the TCOM tag in ID3 401 (http://id3.org/id3v2.3.0#TCOM). ARRANGER | UTF-8 | The person who 402 arranged the piece, e.g., Ravel. LYRICS | UTF-8 | The lyrics 403 corresponding to a song (in case audio synchronization is not known 404 or as a doublon to a subtitle track). Editing this value, when 405 subtitles are found, SHOULD also result in editing the subtitle track 406 for more consistency. LYRICIST | UTF-8 | The person who wrote the 407 lyrics for a musical item. This is akin to the TEXT (http://id3.org/ 408 id3v2.3.0#TEXT) tag in ID3. CONDUCTOR | UTF-8 | Conductor/performer 409 refinement. This is akin to the TPE3 (http://id3.org/ 410 id3v2.3.0#TPE3). DIRECTOR | UTF-8 | This is akin to the [IART tag in 411 RIFF][RIFF.tags]. ASSISTANT_DIRECTOR | UTF-8 | The name of the 412 assistant director. DIRECTOR_OF_PHOTOGRAPHY| UTF-8 | The name of the 413 director of photography, also known as cinematographer. This is akin 414 to the ICNM tag in Extended RIFF. SOUND_ENGINEER | UTF-8 | The name 415 of the sound engineer or sound recordist. ART_DIRECTOR | UTF-8 | The 416 person who oversees the artists and craftspeople who build the sets. 417 PRODUCTION_DESIGNER | UTF-8 | Artist responsible for designing the 418 overall visual appearance of a movie. CHOREGRAPHER | UTF-8 | The 419 name of the choregrapher COSTUME_DESIGNER | UTF-8 | The name of the 420 costume designer ACTOR | UTF-8 | An actor or actress playing a role 421 in this movie. This is the person's real name, not the character's 422 name the person is playing. CHARACTER | UTF-8 | The name of the 423 character an actor or actress plays in this movie. This SHOULD be a 424 sub-tag of an "ACTOR" tag in order not to cause ambiguities. 425 WRITTEN_BY | UTF-8 | The author of the story or script (used for 426 movies and TV shows). SCREENPLAY_BY | UTF-8 | The author of the 427 screenplay or scenario (used for movies and TV shows). EDITED_BY | 428 UTF-8 | This is akin to the IEDT tag in Extended RIFF. PRODUCER | 429 UTF-8 | Produced by. This is akin to the IPRO tag in Extended RIFF. 430 COPRODUCER | UTF-8 | The name of a co-producer. EXECUTIVE_PRODUCER | 431 UTF-8 | The name of an executive producer. DISTRIBUTED_BY | UTF-8 | 432 This is akin to the IDST tag in Extended RIFF. MASTERED_BY | UTF-8 | 433 The engineer who mastered the content for a physical medium or for 434 digital distribution. ENCODED_BY | UTF-8 | This is akin to the TENC 435 tag (http://id3.org/id3v2.3.0#TENC) in ID3. MIXED_BY | UTF-8 | DJ 436 mix by the artist specified REMIXED_BY | UTF-8 | Interpreted, 437 remixed, or otherwise modified by. This is akin to the TPE4 tag in 438 ID3 (http://id3.org/id3v2.3.0#TPE4). PRODUCTION_STUDIO | UTF-8 | 439 This is akin to the ISTD tag in Extended RIFF. THANKS_TO | UTF-8 | A 440 very general tag for everyone else that wants to be listed. 441 PUBLISHER | UTF-8 | This is akin to the TPUB tag in ID3 442 (http://id3.org/id3v2.3.0#TPUB). LABEL | UTF-8 | The record label or 443 imprint on the disc. 445 6.11. Search and Classification 447 +==========+=======+=======================================+ 448 | Tag Name | Type | Description | 449 +==========+=======+=======================================+ 450 | GENRE | UTF-8 | The main genre (classical, ambient- | 451 | | | house, synthpop, sci-fi, drama, etc). | 452 +----------+-------+---------------------------------------+ 454 Table 7 456 The format follows the infamous TCON tag in ID3. MOOD | UTF-8 | 457 Intended to reflect the mood of the item with a few keywords, e.g., 458 "Romantic", "Sad" or "Uplifting". The format follows that of the 459 TMOO tag in ID3. ORIGINAL_MEDIA_TYPE | UTF-8 | Describes the 460 original type of the media, such as, "DVD", "CD", "computer image," 461 "drawing," "lithograph," and so forth. This is akin to the TMED tag 462 in ID3 (http://id3.org/id3v2.3.0#TMED). CONTENT_TYPE | UTF-8 | The 463 type of the item. e.g., Documentary, Feature Film, Cartoon, Music 464 Video, Music, Sound FX, ... SUBJECT | UTF-8 | Describes the topic of 465 the file, such as "Aerial view of Seattle." DESCRIPTION | UTF-8 | A 466 short description of the content, such as "Two birds flying." 467 KEYWORDS | UTF-8 | Keywords to the item separated by a comma, used 468 for searching. SUMMARY | UTF-8 | A plot outline or a summary of the 469 story. SYNOPSIS | UTF-8 | A description of the story line of the 470 item. INITIAL_KEY | UTF-8 | The initial key that a musical track 471 starts in. The format is identical to ID3. PERIOD | UTF-8 | 472 Describes the period that the piece is from or about. For example, 473 "Renaissance". LAW_RATING | UTF-8 | Depending on the "COUNTRY" it's 474 the format of the rating of a movie (P, R, X in the USA, an age in 475 other countries or a URI defining a logo). ICRA | binary | The ICRA 476 (http://www.icra.org/) content rating for parental control. 477 (Previously RSACi) 479 6.12. Temporal Information 481 +================+=======+=======================================+ 482 | Tag Name | Type | Description | 483 +================+=======+=======================================+ 484 | DATE_RELEASED | UTF-8 | The time that the item was originally | 485 | | | released. This is akin to the TDRL | 486 | | | tag in ID3. | 487 +----------------+-------+---------------------------------------+ 488 | DATE_RECORDED | UTF-8 | The time that the recording began. | 489 | | | This is akin to the TDRC tag in ID3. | 490 +----------------+-------+---------------------------------------+ 491 | DATE_ENCODED | UTF-8 | The time that the encoding of this | 492 | | | item was completed began. This is | 493 | | | akin to the TDEN tag in ID3. | 494 +----------------+-------+---------------------------------------+ 495 | DATE_TAGGED | UTF-8 | The time that the tags were done for | 496 | | | this item. This is akin to the TDTG | 497 | | | tag in ID3. | 498 +----------------+-------+---------------------------------------+ 499 | DATE_DIGITIZED | UTF-8 | The time that the item was | 500 | | | transferred to a digital medium. | 501 | | | This is akin to the IDIT tag in RIFF. | 502 +----------------+-------+---------------------------------------+ 503 | DATE_WRITTEN | UTF-8 | The time that the writing of the | 504 | | | music/script began. | 505 +----------------+-------+---------------------------------------+ 506 | DATE_PURCHASED | UTF-8 | Information on when the file was | 507 | | | purchased; see also Section 6.17 on | 508 | | | purchase tags. | 509 +----------------+-------+---------------------------------------+ 511 Table 8 513 6.13. Spacial Information 515 +====================+=======+==============================+ 516 | Tag Name | Type | Description | 517 +====================+=======+==============================+ 518 | RECORDING_LOCATION | UTF-8 | The location where the item | 519 | | | was recorded. The countries | 520 | | | corresponding to the string, | 521 +--------------------+-------+------------------------------+ 523 Table 9 525 same 2 octets as in Internet domains (https://www.iana.org/whois), or 526 possibly ISO-3166 (https://www.iso.org/iso-3166-country-codes.html). 527 This code is followed by a comma, then more detailed information such 528 as state/province, another comma, and then city. For example, "US, 529 Texas, Austin". This will allow for easy sorting. It is okay to 530 only store the country, or the country and the state/province. More 531 detailed information can be added after the city through the use of 532 additional commas. In cases where the province/state is unknown, but 533 you want to store the city, simply leave a space between the two 534 commas. For example, "US, , Austin". COMPOSITION_LOCATION | UTF-8 | 535 Location that the item was originally designed/written. The 536 countries corresponding to the string, same 2 octets as in Internet 537 domains (https://www.iana.org/whois), or possibly ISO-3166 538 (https://www.iso.org/iso-3166-country-codes.html). This code is 539 followed by a comma, then more detailed information such as state/ 540 province, another comma, and then city. For example, "US, Texas, 541 Austin". This will allow for easy sorting. It is okay to only store 542 the country, or the country and the state/province. More detailed 543 information can be added after the city through the use of additional 544 commas. In cases where the province/state is unknown, but you want 545 to store the city, simply leave a space between the two commas. For 546 example, "US, , Austin". COMPOSER_NATIONALITY | UTF-8 | Nationality 547 of the main composer of the item, mostly for classical music. The 548 countries corresponding to the string, same 2 octets as in Internet 549 domains (https://www.iana.org/whois), or possibly ISO-3166 550 (https://www.iso.org/iso-3166-country-codes.html). 552 6.14. Personal 554 +==============+=======+===============================+ 555 | Tag Name | Type | Description | 556 +==============+=======+===============================+ 557 | COMMENT | UTF-8 | Any comment related to the | 558 | | | content. | 559 +--------------+-------+-------------------------------+ 560 | PLAY_COUNTER | UTF-8 | The number of time the item | 561 | | | has been played. | 562 +--------------+-------+-------------------------------+ 563 | RATING | UTF-8 | A numeric value defining how | 564 | | | much a person likes the song/ | 565 | | | movie. The number is between | 566 +--------------+-------+-------------------------------+ 568 Table 10 570 0 and 5 with decimal values possible (e.g., 2.7), 5(.0) being the 571 highest possible rating. Other rating systems with different ranges 572 will have to be scaled. 574 6.15. Technical Information 576 +==================+=======+=======================================+ 577 | Tag Name | Type | Description | 578 +==================+=======+=======================================+ 579 | ENCODER | UTF-8 | The software or hardware used to | 580 | | | encode this item. ("LAME" or "XviD") | 581 +------------------+-------+---------------------------------------+ 582 | ENCODER_SETTINGS | UTF-8 | A list of the settings used for | 583 | | | encoding this item. No specific | 584 | | | format. | 585 +------------------+-------+---------------------------------------+ 586 | BPS | UTF-8 | The average bits per second of the | 587 | | | specified item. This is only the | 588 | | | data in the Blocks, | 589 +------------------+-------+---------------------------------------+ 591 Table 11 593 and excludes headers and any container overhead. FPS | UTF-8 | The 594 average frames per second of the specified item. This is typically 595 the average number of Blocks per second. In the event that lacing is 596 used, each laced chunk is to be counted as a separate frame. BPM | 597 UTF-8 | Average number of beats per minute in the complete target 598 (e.g., a chapter). Usually a decimal number. MEASURE | UTF-8 | In 599 music, a measure is a unit of time in Western music like "4/4". It 600 represents a regular grouping of beats, a meter, as indicated in 601 musical notation by the time signature. The majority of the 602 contemporary rock and pop music you hear on the radio these days is 603 written in the 4/4 time signature. TUNING | UTF-8 | It is saved as a 604 frequency in hertz to allow near-perfect tuning of instruments to the 605 same tone as the musical piece (e.g., "441.34" in Hertz). The 606 default value is 440.0 Hz. REPLAYGAIN_GAIN | binary | The gain to 607 apply to reach 89dB SPL on playback. This is based on the Replay 608 Gain standard (http://www.replaygain.org/). Note that ReplayGain 609 information can be found at all TargetType levels (track, album, 610 etc). REPLAYGAIN_PEAK | binary | The maximum absolute peak value of 611 the item. This is based on the Replay Gain standard 612 (http://www.replaygain.org/). 614 6.16. Identifiers 616 +======+=======+======================================+ 617 | Tag | Type | Description | 618 | Name | | | 619 +======+=======+======================================+ 620 | ISRC | UTF-8 | The International Standard Recording | 621 | | | Code (http://www.ifpi.org/isrc/ | 622 | | | isrc_handbook.html#Heading198), | 623 +------+-------+--------------------------------------+ 625 Table 12 627 excluding the "ISRC" prefix and including hyphens. MCDI | binary | 628 This is a binary dump of the TOC of the CDROM that this item was 629 taken from. This holds the same information as the MCDI in ID3. 630 ISBN | UTF-8 | International Standard Book Number (https://www.isbn- 631 international.org/) BARCODE | UTF-8 | EAN-13 632 (https://www.gs1.org/standards/barcodes/ean-upc) (European Article 633 Numbering) or UPC-A (http://www.uc-council.org/) (Universal Product 634 Code) bar code identifier CATALOG_NUMBER | UTF-8 | A label-specific 635 string used to identify the release -- for example, TIC 01. 636 LABEL_CODE | UTF-8 | A 4-digit or 5-digit number to identify the 637 record label, typically printed as (LC) xxxx or (LC) 0xxxx on CDs 638 medias or covers (only the number is stored). LCCN | UTF-8 | Library 639 of Congress Control Number (https://www.loc.gov/marc/lccn.html) 640 IMDB | UTF-8 | Internet Movie Database (IMDb) (https://www.imdb.com/) 641 identifier. "tt" followed by at least 7 digits for Movies, TV Shows, 642 and Episodes. TMDB | UTF-8 | The Movie Database (TMDb) 643 (https://www.themoviedb.org/) identifier. The variable length digits 644 string MUST be prefixed with either "movie/" or "tv/". TVDB | 645 UTF-8 | The TV Database (TheTVDB) (https://www.thetvdb.com/) 646 identifier. Variable length all-digits string identifying a TV Show. 648 6.17. Commercial 650 +================+=======+=========================================+ 651 | Tag Name | Type | Description | 652 +================+=======+=========================================+ 653 | PURCHASE_ITEM | UTF-8 | URL to purchase this file. This is | 654 | | | akin to the WPAY tag in ID3. | 655 +----------------+-------+-----------------------------------------+ 656 | PURCHASE_INFO | UTF-8 | Information on where to purchase this | 657 | | | album. This is akin to the WCOM tag in | 658 | | | ID3. | 659 +----------------+-------+-----------------------------------------+ 660 | PURCHASE_OWNER | UTF-8 | Information on the person who purchased | 661 | | | the file. This is akin to the TOWN tag | 662 | | | in ID3 (http://id3.org/id3v2.3.0#TOWN). | 663 +----------------+-------+-----------------------------------------+ 664 | PURCHASE_PRICE | UTF-8 | The amount paid for entity. There | 665 | | | SHOULD only be a numeric value in here. | 666 | | | Only numbers, | 667 +----------------+-------+-----------------------------------------+ 669 Table 13 671 no letters or symbols other than ".". For instance, you would store 672 "15.59" instead of "$15.59USD". PURCHASE_CURRENCY | UTF-8 | The 673 currency type used to pay for the entity. Use ISO-4217 674 (https://www.xe.com/iso4217.php) for the 3 letter currency code. 676 6.18. Legal 678 +======================+=======+=================================+ 679 | Tag Name | Type | Description | 680 +======================+=======+=================================+ 681 | COPYRIGHT | UTF-8 | The copyright information as | 682 | | | per the copyright holder. This | 683 | | | is akin to the TCOP tag in ID3. | 684 +----------------------+-------+---------------------------------+ 685 | PRODUCTION_COPYRIGHT | UTF-8 | The copyright information as | 686 | | | per the production copyright | 687 | | | holder. This is akin to the | 688 | | | TPRO tag in ID3. | 689 +----------------------+-------+---------------------------------+ 690 | LICENSE | UTF-8 | The license applied to the | 691 | | | content (like Creative Commons | 692 | | | variants). | 693 +----------------------+-------+---------------------------------+ 694 | TERMS_OF_USE | UTF-8 | The terms of use for this item. | 695 | | | This is akin to the USER tag in | 696 | | | ID3. | 697 +----------------------+-------+---------------------------------+ 699 Table 14 701 6.19. Notes 703 * In the Target list, a logical OR is applied on all tracks, a 704 logical OR is applied on all chapters. Then a logical AND is 705 applied between the Tracks list and the Chapters list to know if 706 an element belongs to this Target. 708 7. Normative References 710 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 711 Requirement Levels", BCP 14, RFC 2119, 712 DOI 10.17487/RFC2119, March 1997, 713 . 715 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 716 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 717 May 2017, . 719 8. Informative References 721 [RIFF.tags] 722 Exiftool, "RIFF Tags", 723 . 726 Authors' Addresses 728 Steve Lhomme 730 Email: slhomme@matroska.org 731 Moritz Bunkus 733 Email: moritz@bunkus.org 735 Dave Rice 737 Email: dave@dericed.com