Supported Formats
ID3 tags are commonly found in:- MP3 files - Primary use case
- WAV files - Can contain ID3v2 tags
- AIFF files - Can contain ID3v2 tags
ID3 Versions
ID3v1
Status: Great- Fixed 128-byte structure at end of file
- Limited to 30-character fields
- Supports: Title, Artist, Album, Year, Comment, Genre
- ID3v1.1 adds track number
ID3v2
Status: Great- Variable size, placed at beginning of file
- Supports arbitrary text length (UTF-8, UTF-16)
- Extensive frame types for rich metadata
- Versions supported: 2.2.x, 2.3.x, 2.4.x
Available Tag Fields
Symphonia maps ID3 frames to standard tag keys:Basic Information
Artist- Lead performer(s)AlbumArtist- Album artistAlbum- Album titleTrackTitle- Song titleTrackNumber- Track numberTrackTotal- Total tracksDiscNumber- Disc numberDiscTotal- Total discsDate- Release dateOriginalDate- Original release dateGenre- Genre
Credits
Composer- ComposerConductor- ConductorLyricist- Lyricist/text writerWriter- WriterPerformer- PerformerArranger- ArrangerEngineer- EngineerProducer- ProducerRemixer- RemixerMixDj- DJ mixerMixEngineer- Mix engineer
Additional Metadata
Copyright- Copyright messageComment- CommentsEncodedBy- Encoded byEncoder- Encoder softwareBpm- Beats per minuteMood- MoodLabel- Record labelIsrc- ISRC codeBarcode- Barcode
MusicBrainz Identifiers
MusicBrainzArtistIdMusicBrainzAlbumIdMusicBrainzAlbumArtistIdMusicBrainzRecordingIdMusicBrainzReleaseGroupIdMusicBrainzTrackIdMusicBrainzWorkId
Album Art
ID3v2 supports embedded images through APIC (Attached Picture) frames with various types:- Front cover
- Back cover
- Media (CD/vinyl)
- Artist/performer
- Icon
- And 16+ other picture types
Reading ID3 Tags
Basic Tag Reading
Reading Album Art
Finding Specific Tags
Handling ID3 Updates
ID3v2 supports update flags indicating if a tag is an update to an earlier tag. This is automatically handled during parsing.Text Encoding
ID3v2 supports multiple text encodings:- ISO-8859-1 (Latin-1)
- UTF-16 with BOM
- UTF-16BE (big-endian)
- UTF-8 (ID3v2.4)
Unsynchronization
ID3v2 uses unsynchronization to prevent false MP3 sync patterns. Symphonia handles this automatically:- Frame-level unsynchronization (ID3v2.4)
- Tag-level unsynchronization (ID3v2.2, 2.3)
Known Limitations
- ID3v2.2 compression is not supported (deprecated feature)
- Some rare or experimental frames may not be parsed
- Extended header CRC verification is not performed
- Encryption is not supported
- Grouping identity is not exposed
Performance Considerations
- ID3v1 tags are quick to read (fixed 128 bytes)
- ID3v2 tags can be large (up to several MB with images)
- Both ID3v1 and ID3v2 can be present; Symphonia reads both
- Use
MetadataOptionsto control parsing behavior
Crate Information
Crate:symphonia-metadata
Version: 0.5.5
License: MPL-2.0
Safety: 100% safe Rust (forbids unsafe code)
See Also
- Vorbis Comment - Alternative metadata format for OGG and FLAC