Album title stored in the "ALBUM" field.
New album string; empty string removes the field.
Lead artist/performer stored in the "ARTIST" field.
New artist string; empty string removes the field.
User comment, read from "COMMENT" (preferred, matching C++ TagLib default) or "DESCRIPTION" as a fallback for tags written by older encoders.
The comment string, or "" if neither field is set.
Sets the comment. Matches C++ TagLib XiphComment::setComment(): if a
"DESCRIPTION" field already exists (loaded from file), update that field;
otherwise write to "COMMENT" (the standard Vorbis comment field name).
New comment string; empty string removes the field.
Total number of individual field values across all keys.
Genre stored in the "GENRE" field.
New genre string; empty string removes the field.
A Xiph comment is empty when all field lists are empty. This matches the C++ TagLib behaviour and ensures tags with only METADATA_BLOCK_PICTURE or other non-standard fields are not stripped.
Track title stored in the "TITLE" field.
New title string; empty string removes the field.
Track number, read from "TRACKNUMBER" (preferred) or "TRACKNUM" as a fallback.
Returns 0 when not set.
Sets the track number in "TRACKNUMBER" and removes any "TRACKNUM" alias.
Track number, or 0 to remove the field.
The vendor identification string embedded in the comment header.
New vendor ID string.
Release year, read from "DATE" (preferred) or "YEAR" as a fallback.
Returns 0 when not set.
Sets the year in the "DATE" field and removes any "YEAR" alias.
Four-digit year, or 0 to remove the field.
Add or replace a field value.
Field name (case-insensitive, stored uppercase)
The value to set. Empty string removes the field.
If true (default), replaces all existing values for this key
Encode and append a picture to the METADATA_BLOCK_PICTURE field.
The FlacPicture to embed as Base64-encoded data.
Returns structured complex property data for the given key.
The complex property key (only "PICTURE" is supported).
Array of variant maps describing each embedded picture, or [] for unknown keys.
Returns the list of complex property keys supported by this tag.
["PICTURE"] if any embedded pictures are present, otherwise [].
Check whether a field with the given key is present.
Field name (case-insensitive).
true if at least one value exists for key.
Returns a shallow copy of the internal field map.
A new Map of uppercased field names to their value arrays.
Decode and return all embedded pictures from METADATA_BLOCK_PICTURE fields.
Array of FlacPicture objects decoded from Base64, or an empty array if none.
Build a PropertyMap from all fields, excluding METADATA_BLOCK_PICTURE.
A populated PropertyMap with all text fields.
Remove all fields from this comment, leaving an empty tag.
Remove all pictures by deleting the METADATA_BLOCK_PICTURE field entirely.
Remove all values for the specified field key.
Field name (case-insensitive).
Remove a specific value from the specified field key. Other values for the same key are left intact.
Field name (case-insensitive).
The exact value to remove.
Remove a specific picture from the METADATA_BLOCK_PICTURE field.
The FlacPicture to remove (matched by rendered bytes).
Remove properties that are not supported by this tag format. The default implementation is a no-op; subclasses may override.
Keys of the properties to remove.
Render the Vorbis comment to bytes.
If true, append a 0x01 framing bit (used in Ogg Vorbis)
Replaces all complex properties for the given key.
The complex property key (only "PICTURE" is supported).
Array of variant maps describing each picture to embed.
true if the key was handled, false otherwise.
Replace tag fields with the provided PropertyMap. METADATA_BLOCK_PICTURE keys are returned as unsupported.
The properties to set.
A PropertyMap of unsupported properties.
StaticcheckValidate a Vorbis comment field key.
Keys must consist only of ASCII characters in the range 0x20–0x7D,
excluding '=' (0x3D), and must be at least one character long.
The field key to validate.
true if the key is valid.
StaticduplicateCopy tag fields from source to target. When overwrite is false,
only empty fields in the target are filled in.
StaticjoinJoin an array of tag values with " / ".
The string values to join.
A single string with values separated by " / ".
StaticreadParse a Xiph comment block from the given ByteVector.
Raw bytes containing the Vorbis comment
Starting position within data (default 0)
Xiph/Vorbis comment tag implementation.
Binary format: vendorLength(4 LE) + vendor(UTF-8) + commentCount(4 LE) + for each: stringLength(4 LE) + "KEY=VALUE"(UTF-8)