Vorbis comment
A Vorbis comment is a metadata container used in the Vorbis, FLAC, Theora, Speex and Opus file formats.[1] It allows information such as the title, artist, album, track number or other information about the file to be added to the file itself. However, as the official Ogg Vorbis documentation notes, “[the comment header] is meant for short, text comments, not arbitrary metadata; arbitrary metadata belongs in a separate logical bitstream (usually an XML stream type) that provides greater structure and machine parseability.”[2]
Format
A Vorbis tag is a list of fields in the format FieldName=Data
. The field name can be composed of printable ASCII characters, 0x20 (space) through 0x7D (‘}’), with 0x3D (‘=’) and 0x7E (‘~’) excluded. It is case insensitive, so artist
and ARTIST
are the same field. The number of fields and their length is restricted to 4,294,967,295 (the maximum value of an unsigned 32-bit integer), but most tag editing applications impose stricter limits. FLAC has a smaller limit of 24-bit in a METADATA_BLOCK_VORBIS_COMMENT, because it stores thumbnails and cover art in binary big-endian METADATA_BLOCK_PICTUREs outside of the FLAC tags.[3]
The data is encoded in UTF-8, and so any conforming Unicode string may be used as a value.
Any tag name is allowed, and there is no format that the data values must be in. This is in contrast to the ID3 format used for MP3s, which is highly structured. Field names are also permitted to be used more than once. It is encouraged to use this feature to support multiple values, for example two ARTIST=...
fields to list both artists of a single composition.
The specification gives several example tag names such as TITLE
and TRACKNUMBER
. Most applications also support common de facto standards, such as DISCNUMBER
, RATING
, and tags for ReplayGain information. Ratings are usually mapped as 1-5 stars with 20,40,60,80,100 as the actual string values.
There are no provisions for storing binary data in Vorbis comments. This is by design; they are intended to be used as part of a container format such as Ogg, and any additional binary data should be encoded into the container as a stream. The exception to this, by popular request, is a proposal to incorporate cover art into a Vorbis comment.[4]
References
- T. Terriberry; et al. (2016). "Tag Definitions". Ogg Encapsulation for the Opus Audio Codec. IETF. sec. 5.2.1. doi:10.17487/RFC7845. RFC 7845.
- "Ogg Vorbis I format specification: comment field and header specification". xiph.org. Xiph.Org Foundation. 2005. Retrieved 18 February 2016.
- "METADATA_BLOCK_VORBIS_COMMENT". flac free lossless audio codec. Xiph.Org. 2014. Retrieved 2019-12-03.
- "VorbisComment, cover art". wiki.xiph.org. xiph.org. Retrieved 1 October 2016.