Vorbis comment

A Vorbis comment is a metadata container used in the Vorbis, FLAC, Theora, Speex and Opus file formats. 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.” Instead, the intended function of Vorbis comments is to approximate the kind of information that might be hand-inked onto a blank faced CD-R or CD-RW: a few lines of notes briefly detailing the content.

Format
A Vorbis tag is a list of fields in the format. The field name can be composed of printable ASCII characters, 0x20 (space) through 0x7D (‘}’), with 0x3D (‘=’) and 0x7E (‘~’) excluded. It is case insensitive, so  and   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_PICTURE s outside of the FLAC tags.

The data is encoded in UTF-8, and so any conforming Unicode string may be used as a value.

Any field 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  fields to list both artists of a single composition.

The specification gives several example tag names such as  and. Most applications also support common de facto standards, such as,  , 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.