AudioUtils

ID3 Tags Explained: MP3 Metadata Standard

How ID3 tags work, the differences between v1, v2.3, and v2.4, frame IDs, album art, and how metadata behaves across MP3, M4A, FLAC, and WAV.

ID3 is the metadata standard that turns a bare MP3 file into a library entry. Without it, every track is just a numbered blob — no title, no artist, no cover art, no way for iTunes, Plex, Sonos, or your car stereo to know what it is. With it, the same bytes become a tagged record that carries title, artist, album, year, track number, genre, lyrics, embedded artwork, replay gain, ratings, and over a hundred other fields.

This is the practical guide to ID3 in 2026: what each version actually contains, why version mismatches break album art, how the format compares to the metadata schemes used by M4A, FLAC, OGG, and WAV, and what happens to your tags when you re-encode through any tool — including our audio compressor and audio cutter.

What ID3 Actually Is

ID3 stands for "Identify MP3." Eric Kemp coined the name in 1996 when he wrote the original spec for tagging MP3s with simple text fields. The standard is informal — there is no ISO document, no IETF RFC. The reference is id3.org, maintained by Martin Nilsson, plus the original spec text Kemp circulated and a series of community revisions.

The format has shipped in three major versions and a handful of minor ones. Each one is a different binary structure. A player that supports v2.3 may completely fail to read a v2.4 tag. Most metadata bugs you encounter — missing album art, garbled non-ASCII characters, fields that vanish after a sync — come down to one app writing one version and another app expecting a different one.

ID3v1: The 128-byte Sticker

The original ID3v1, finalized in 1996, is 128 bytes appended to the end of an MP3. The structure is fixed:

  • 3 bytes: 'TAG' identifier
  • 30 bytes: title
  • 30 bytes: artist
  • 30 bytes: album
  • 4 bytes: year
  • 30 bytes: comment
  • 1 byte: genre (numeric ID, 0-79 originally, later extended to 0-191 by Winamp)

ID3v1.1, a 1997 tweak, sacrifices two bytes of the comment field for a track number. That is the entire spec.

The limits are crippling. Title and artist truncate at 30 characters — "Smashing Pumpkins - Tonight, Tonight" does not fit. Genre is a numeric code looking up a fixed table, so anything outside Winamp's hardcoded list (Blues, Classic Rock, Country... up to 191) cannot be expressed. Character encoding is officially ASCII; in practice it is ISO-8859-1, which means no Cyrillic, no CJK, no umlauts on systems that read it strictly. And appending the tag to the end of the file means anything streaming the audio without seeking to EOF never sees it.

ID3v1 still ships in many files for backwards compatibility — older car stereos and budget MP3 players read it and nothing else. But every modern tool writes ID3v2 alongside it.

ID3v2: A Real Container

ID3v2, introduced in 1998, fixed every architectural problem in v1. The tag is prepended to the file (so a streaming player sees it before the audio), tags are variable-length (no truncation), and the format is extensible — new field types can be added without breaking old readers.

The container has a 10-byte header:

  • 3 bytes: 'ID3' identifier
  • 2 bytes: version (major, revision)
  • 1 byte: flags
  • 4 bytes: synchsafe size of the tag

Synchsafe integers are an ID3v2 invention. Each byte uses only its low 7 bits, leaving the high bit zero. This guarantees the size field can never accidentally contain the byte sequence '0xFF 0xE0' that marks the start of an MP3 audio frame, so a player scanning for sync words will not get confused by a large tag.

After the header come a sequence of frames. Each frame is its own header plus payload.

ID3v2.2 (1998)

Frame IDs are 3 characters. 'TT2' is title, 'TP1' is artist, 'TAL' is album, 'TYE' is year, 'TRK' is track, 'PIC' is picture. Frame size is 3 bytes (24 bits, max 16 MB).

v2.2 was deprecated within a year and is rarely written today. Some old iTunes versions still read it. New tools should not write it.

ID3v2.3 (1999) — The Default

Frame IDs are 4 characters. Frame size is 4 bytes (synchsafe in v2.4, plain 32-bit in v2.3 — a real, frequently overlooked difference). Character encoding is selectable per frame: 0x00 = ISO-8859-1, 0x01 = UTF-16 with BOM. There is no UTF-8 in v2.3.

This is the most widely supported version on the planet. If you have any doubt about what to write, write v2.3. iTunes through about 2008 wrote v2.3, every car stereo built since 2000 reads v2.3, every podcast platform validates v2.3, and Mp3tag's default is v2.3.

The frames you actually use:

  • 'TIT2' — Title
  • 'TPE1' — Lead artist
  • 'TPE2' — Album artist (sort by this for "Various Artists" albums)
  • 'TALB' — Album
  • 'TYER' — Year (4-digit string)
  • 'TDAT' — Date (DDMM)
  • 'TRCK' — Track number, formatted as 'current/total' like '03/12'
  • 'TPOS' — Disc number, same 'current/total' format
  • 'TCON' — Genre (free text, but '(17)' style numeric refs to v1 list still legal)
  • 'COMM' — Comment, with language code and short description
  • 'APIC' — Attached picture (album art)
  • 'USLT' — Unsynchronized lyrics
  • 'PCNT' — Play counter
  • 'POPM' — Popularimeter (rating)
  • 'TXXX' — User-defined text frame ('TXXX:replaygain_track_gain' is a common one)
  • 'PRIV' — Private frame, used by iTunes, Apple Music, Beatport, and others to embed proprietary metadata

ID3v2.4 (2000)

The major revision was UTF-8 native (encoding byte 0x03), more granular date frames ('TDRC' replaces 'TYER' and supports full ISO 8601 timestamps), new fields ('TMOO' for mood, 'TPRO' for produced notice, 'TSOA' for album sort order), and the option to append the tag to the end of the file like v1 did.

Adoption is partial. Apple's Music app and modern iTunes write v2.4 by default. Mp3tag can write either, and defaults to v2.3 because compatibility wins more battles. Many car stereos, hardware MP3 players manufactured before 2015, and budget Bluetooth speakers do not read v2.4 correctly — they will display blank fields, garbled characters, or fall back to v1 if it is also present. If you are tagging a library and using a mix of devices, write v2.3 with UTF-16 encoding for safety.

How Frames Are Structured

Every v2.3 and v2.4 frame is laid out the same way:

  • 4 bytes: frame ID ('TIT2', 'APIC', etc.)
  • 4 bytes: frame size (in v2.4, synchsafe; in v2.3, plain big-endian uint32)
  • 2 bytes: flags
  • N bytes: payload

Text frames start with one encoding byte, then the string. 'TIT2' encoding=0x01, payload='FF FE 53 00 6F 00 6E 00 67 00' is 'Song' in UTF-16-LE with BOM. The lack of a length prefix on the string is intentional — the frame size already bounds it.

A common pitfall: frames with embedded null terminators inside the data (UTF-16 strings always have null bytes for ASCII characters) trip naive parsers that scan for a single 0x00 as a string terminator. Use the frame size, not null-scanning.

Album Art: The 'APIC' Frame

Album artwork is the field that breaks most often, so understanding the layout pays off. 'APIC' payload:

  • 1 byte: text encoding for the description string
  • N bytes: MIME type, null-terminated ASCII ('image/jpeg' or 'image/png')
  • 1 byte: picture type
  • N bytes: description (encoded per the encoding byte), null-terminated
  • N bytes: raw image data (JPEG or PNG bytes, inline)

Picture types are a 21-entry enum. The ones you see in practice:

  • 0x00 — Other
  • 0x01 — 32x32 file icon (PNG only)
  • 0x03 — Cover (front) — this is what 95% of players display
  • 0x04 — Cover (back)
  • 0x05 — Leaflet page
  • 0x06 — Media (label side of CD)
  • 0x08 — Artist
  • 0x0E — During recording
  • 0x12 — Illustration

If your album art does not show, check the picture type. Some players only display 0x03; if your tagger wrote 0x00, the cover is technically there but ignored.

Size matters. A 3000x3000 px JPEG at 90% quality is 1-2 MB. Embedded in every track of a 12-track album, that is 24 MB of duplicated artwork. Best practice for embedded art is 500x500 to 1000x1000 px JPEG at around 80% quality, which lands at 50-150 KB per file. iTunes and Apple Music display embedded art at this resolution comfortably; the high-res master cover lives in your Library.

The Genre Mess

ID3v1 used a numeric genre ID. The list started as Winamp's 80 entries (0=Blues, 1=Classic Rock, ... 79=Hard Rock), got extended in v1.1 to 191, and is fossilized — you cannot add genres without breaking compatibility.

ID3v2 supports free-text genre. 'TCON' = 'Synthwave' is legal. But for backwards compatibility, the v2 spec also allows '(17)' to mean "look up genre 17 in the v1 table" and '(17)Synthwave' to mean "v1 genre 17, plus the free text 'Synthwave' as a sub-tag."

In practice in 2026, write free-text genres only. The numeric prefix syntax is a relic. If your taxonomy is "EDM > Synthwave > Outrun," store the leaf node as the 'TCON' value.

Other Formats: Same Idea, Different Container

ID3 only lives in MP3 (and the optional 'id3 ' chunk inside WAV). Other audio formats use unrelated metadata schemes that solve the same problem.

M4A and MP4

M4A files use the MP4 atom system. Metadata lives inside the 'moov.udta.meta.ilst' atom path. Atom names are 4 bytes, often starting with the copyright character 0xA9 (rendered as '©' or '\xa9'):

  • '©nam' — Title
  • '©ART' — Artist
  • '©alb' — Album
  • '©day' — Year
  • 'covr' — Cover art (full image bytes, like 'APIC')
  • 'trkn' — Track number (binary uint16 pair, current and total)

This is iTunes's tagging system. Convert M4A to MP3 with m4a-to-mp3 and a good converter will translate '©nam' to 'TIT2', 'covr' to 'APIC', and so on. A bad converter will drop everything. See what is M4A for more on the container.

FLAC and OGG Vorbis

Both use Vorbis Comments — plaintext key=value pairs encoded as UTF-8:

``` TITLE=Song Name ARTIST=Artist Name ALBUM=Album Name DATE=2026 TRACKNUMBER=3 ```

Album art in FLAC is stored in a separate METADATA_BLOCK_PICTURE block, structurally similar to 'APIC' but base64-encoded when written into a Vorbis Comment field. See what is FLAC for the full container picture.

WAV

WAV's official metadata story is the RIFF INFO chunk: 'INAM' (title), 'IART' (artist), 'ICMT' (comment), 'ICRD' (creation date), 'IGNR' (genre). Support is patchy — Foobar2000 reads it, Windows Explorer reads it, iTunes ignores it.

In practice many tools embed an ID3v2 tag inside a non-standard 'id3 ' chunk in the WAV. This is what ffmpeg does by default when you write metadata into a WAV. It is not in the WAV spec but is increasingly common.

What Happens When You Re-Encode

This is the question that costs real time when something breaks. ffmpeg's behavior is the reference: by default, '-map_metadata 0' is implied for most format conversions, which copies all metadata from the first input to the output. Without it (or with '-map_metadata -1' to explicitly strip), tags are lost.

Audio cutting and re-encoding through our tools follows the same rules. Audio cutter re-encodes the trimmed segment, which means embedded tags survive only if the underlying ffmpeg pipeline preserves them — and the cutter does pass '-map_metadata 0', so common fields carry over. Audio compressor re-encodes at a lower bitrate; same rule applies. Album art ('APIC' frames) is the field most likely to silently disappear during conversion because some encoders strip non-text frames by default.

If a track's metadata is irreplaceable, back up the file before any re-encoding. Or re-tag after the fact with Mp3tag or another editor. Tagging is fast — 200 files in ten minutes. Diagnosing why your library lost its cover art three months later is not.

Bottom Line

For new MP3 files in 2026: write ID3v2.3 with UTF-16 encoding for maximum compatibility, keep embedded album art at 500-1000 px JPEG (under 200 KB per file), use free-text genres, and write 'TPE2' (album artist) on every track of compilation albums so they group correctly. Do not bother writing v2.2; only write v2.4 if you control the playback device. Always include a v1 tag too — it costs 128 bytes and rescues you on legacy hardware.

The format is old and informal, but it is the lingua franca of music libraries. Understanding the frame IDs and version differences saves real debugging time. Compared to the lossy-vs-lossless decision (see lossless vs lossy) or the bitrate question, tagging is where the most common everyday frustrations live.

More to Read

What Is WAV? Everything You Need to KnowWhat Is OGG? The Open Container Format ExplainedWhat Is AIFF? Apple's Lossless Audio FormatWhat Is WMA? Windows Media Audio ExplainedSample Rate Explained: 44.1kHz vs 48kHz vs 96kHzWhy WAV Files Are So Large (And What to Do About It)What Is M4A? The iPhone Audio Format ExplainedWhat Is Opus? The Modern Audio Codec ExplainedAudio File Size Comparison: MP3, WAV, FLAC, OGG, AACWhat Is Vorbis? The Open Audio Codec ExplainedWhat Is ALAC? Apple Lossless Audio ExplainediTunes and Apple Music Audio Formats ExplainedWhat Is HLS Audio? HTTP Live Streaming ExplainedAIFF vs. AIF: What Is the Difference?Android Audio Formats: Native Support and Best PracticesiPhone Audio Formats: What iOS Supports & Doesn'tMP3 Bitrate Guide: 128 to 320 kbps ExplainedAudio Bitrate vs. Sample Rate: What's the Difference?Audio Transcoding vs. Converting: What Is the Difference?Audio Normalization: Peak vs Loudness — When to Use EachAudio Quality Settings: Bitrate, Sample Rate, Bit DepthAudio Sample Rate Explained: 44.1 vs 48 vs 96kHzWhat Is VBR vs CBR? Bit Allocation in Audio EncodingContainer vs Codec: The Most Confusing Thing in AudioPCM Audio Explained: Why WAV Files Are So LargeAudio Bitrate Guide: Right Settings for Every Use CaseAudio Compression Explained: File Size vs Dynamic RangeMP3 vs WAV: Which Format Should You Use?MP3 vs FLAC: Lossy vs Lossless ComparedMP3 vs AAC: Which Codec Sounds Better?MP3 vs OGG (Vorbis): The Complete ComparisonFLAC vs WAV: Lossless Formats ComparedM4A vs MP3: Which Should You Choose?Lossless vs Lossy Audio: The Complete GuideAudio Formats Explained: The Complete GuideHow to Convert Audio Files: Complete GuideHow to Reduce Audio File Size Without Losing QualityHow to Convert iPhone Voice Memo to MP3 FreeHow Audio Compression WorksBest Audio Format for WebsitesHow to Batch Convert Audio FilesHow to Extract Audio from Video FilesBest Audio Format for Music ProductionBest Audio Format for PodcastsBest Audio Format for GamingBest Audio Format for Music StreamingBest Audio Format for Archiving MusicDoes Converting MP3 to WAV Improve Quality?How to Convert MP3 to WAV for Music ProductionHow to Convert MP3 to WAV Without Losing QualityMP3 vs WAV for Audio Editing in a DAWWhen Should You Convert MP3 to WAV?How to Convert MP3 to WAV on Mac and WindowsHow to Convert WAV to MP3 Without Losing QualityConvert WAV to MP3 for Sharing and EmailWAV File Too Large? Convert to MP3How to Convert iPhone Voice Memo to MP3 FreeHow to Play M4A Files on Android (Convert to MP3)M4A vs MP3: Which Has Better Quality and Smaller Size?How to Convert MP3 to OGG for Unity Game DevelopmentOGG vs MP3 for Web Audio: Which Should You Use?WAV vs AIFF: Which Uncompressed Format?AAC vs OGG: Which Lossy Codec Wins?Opus vs MP3: The Modern Codec ShowdownM4A vs AAC: What's the Difference?How to Convert FLAC to MP3 Without Losing QualityBest Bitrate for FLAC to MP3 ConversionConvert AAC to MP3: Best Quality SettingsHow to Extract Audio from MP4 FilesConvert iPhone MOV Video to MP3How to Convert WAV to MP3 (The Complete Guide)How to Convert MOV to MP3 (iPhone & QuickTime)How to Convert MP3 to WAV for Editing and DAWsHow to Convert YouTube to MP3 Legally (3 Ways)Best MP3 to WAV Settings for Editing and DAWsBest WAV to MP3 Bitrate for Music, Podcasts, and VoiceMOV to MP3 on Mac: Fastest Ways ComparedHow to Convert M4A to MP3 on iPhone Without a ComputerHow to Convert FLAC to MP3 on MacHow to Convert FLAC to MP3 on WindowsHow to Convert OGG to MP3 on MacHow to Convert MP4 to MP3 on MacHow to Convert MP4 to MP3 on iPhoneHow to Convert MP4 to MP3 on AndroidHow to Convert WMA to MP3 on MacHow to Convert AIFF to MP3 on MacHow to Convert MOV to MP3 on WindowsMP3 vs WMA: Which Format Should You Choose?AAC vs FLAC: Lossy or Lossless — Which to Choose?OGG vs Opus: What's the Difference?Best Audio Format for Discord in 2026Best Audio Format for Video EditingM4A to WAV: How to Convert and WhyHow to Convert FLAC to OGG VorbisHow to Convert AAC to WAV for EditingOpus Audio for Web Developers: A Practical GuidePrivacy-First Audio Conversion: Why Browser-Based MattersHow to Convert WMA to MP3 on WindowsHow to Convert AIFF to MP3 on WindowsHow to Convert OGG to MP3 on WindowsHow to Convert FLAC to MP3 on iPhoneHow to Convert AAC to MP3 on MacHow to Convert M4A to MP3 on Mac: 3 Easy MethodsHow to Convert Audio Files with AudacityHow to Convert Audio Files with VLCAudacity vs AudioUtils: Which Should You Use?AIFF vs FLAC: Which Lossless Format Is Better?WMA vs MP3: Which Sounds Better?OGG vs AAC: Which Audio Codec Is Better?M4A vs OGG: Which Lossy Audio Codec to UseBest Audio Format for Zoom RecordingsBest Audio Format to Use in AudacityBest Audio Format for Voice RecordingGarageBand Audio Formats: What to Use and WhyAudio Sample Rates: 44.1, 48, 96 kHz ExplainedFLAC to AAC: Bitrate Guide and Practical StepsOGG to AAC: Cross-Platform Audio Migration GuideWMA to OGG: Escape the Windows Media EcosystemWMA to FLAC: Lossless Archiving of Your Old WMA LibraryFLAC to Opus: Web Streaming Optimization GuideAIFF to M4A: Apple Production Workflow GuideWAV to AIFF: Windows to Mac Audio WorkflowBest Audio Format for iMovie: Import and Export GuideAdobe Premiere Pro Audio Format GuideLogic Pro Audio Guide: Best Import & Export SettingsOBS Studio Audio Format and Settings GuideTwitch Audio Requirements: Format, Bitrate & QualitySpotify Audio Format: What You Need to KnowYouTube Audio Requirements: Quality, Format & LUFSTikTok Audio Requirements: Format, Bitrate, and QualityBest Audio Format for Ringtones: iPhone and AndroidBest Audio Format for Car USB: MP3, FLAC, or WAV?How to Convert AAC to MP3 on iPhoneHow to Convert FLAC to MP3 on AndroidHow to Convert OGG to MP3 on AndroidHow to Convert WAV to MP3 on iPhoneHow to Convert AIFF to MP3 on iPhoneHow to Convert M4A to MP3 on WindowsOpus to MP3: Complete Conversion GuideFLAC vs Opus: When to Use Each Audio CodecWAV vs MP3: The Honest Quality ComparisonAAC vs. MP3 for Streaming: Which Is Better?Best Audio Format for AudiobooksConvert Audio on Linux: Command Line and Browser OptionsFFmpeg vs. AudioUtils: When to Use EachAudio Formats for Podcast Apps: Spotify, Apple, and MoreHow to Convert Audio Without Installing SoftwareHow to Convert WMA to MP3 on Mac (Step-by-Step Guide)OGG to FLAC: What to Expect from the ConversionAAC to FLAC: Convert and What to ExpectOpus to WAV: How to Convert and Why You Might Need ToWAV to Opus: The Web Developer's Audio GuideOGG vs FLAC: Which Should You Use?Opus vs AAC: Which Codec Is Better?WAV vs FLAC for Archiving: Which Is Best?M4A vs FLAC: Apple AAC vs Lossless Quality ComparedBest Audio Format for Speech-to-Text TranscriptionBest Audio Format for WhatsApp Voice MessagesAudio Formats Windows Media Player Plays NativelyAudio Formats VLC Supports and Its Conversion FeaturesAudio Formats Foobar2000 SupportsAudio Formats Plex Media Server SupportsKodi Audio Format: What Works & What Needs ConversionAudio Formats for PS4 and PS5 USB PlaybackAudio Formats for Xbox USB PlaybackAudio on Nintendo Switch: Limitations and WorkaroundsMP3 vs AAC for AirPods: Does the Codec Matter?How to Play FLAC on iPhone (iOS 11 and Later)How to Play FLAC on Android NativelyWAV to FLAC: Converting Without Any Quality LossAIFF to WAV: macOS to Windows Audio WorkflowM4A to OGG: Converting Apple Audio to Open-SourceOpus Bitrate Guide: 32, 64, 96, 128, 192 kbps ExplainedReduce Audio File Size Without Losing QualityAudio Format Support on Raspberry Pi with mpd and mopidyBest Audio Format in 2025: The Definitive GuideIs yt-dlp Legal? What You Need to KnowLegal Ways to Download Music for Offline ListeningCreative Commons Music for Content Creators: Full GuideWMA to MP3: What to Expect and How to ConvertAIFF to MP3: GarageBand Exports and Quality SettingsMP3 vs. WAV for Podcasting: Which Format to UseBest Audio Format for Discord: Opus, MP3, and File LimitsBest Audio Format for TikTok: Specs and Upload TipsBest Audio Format for Instagram Reels and StoriesHow to Convert Audio on Mac: GarageBand & QuickTimeHow to Convert Audio on iPhone: Files App & BrowserHow to Batch Convert Audio Files: FFmpeg & BrowserFLAC vs. ALAC: Lossless Audio Format ComparisonAudio File Too Large? How to Reduce Audio File SizeAudio Formats for Zoom: Recordings, Uploads, and SharingExtract Audio from MP4 Without Software (Browser Method)VBR vs CBR for MP3: When Each Mode Is the Right ChoiceMP3 128 kbps vs 320 kbps: Does the Difference Matter?FLAC vs WAV for Music Production: The Practical AnswerM4A vs MP3 for iPhone: Which Format to Use and WhenOGG Vorbis vs MP3: Quality, Compatibility & When OGG WinsBest Audio Format for YouTube Uploads in 2026Best Audio Format for Audacity: Import, Edit, and ExportBest Audio Format for Premiere Pro: Timelines & ExportHow to Convert iPhone Voice Memo to MP3 (Free, No App)How to Convert Zoom Recording to MP3 (M4A or MP4 Export)How to Convert Google Meet Recording to MP3Why Is My Audio File So Large? How to Reduce ItLossless Audio: Is It Worth It? The Honest AnswerHow to Extract Audio from a Zoom Webinar RecordingMP3 File Corrupted: How to Diagnose and Fix ItAudio Format for Spotify: Upload Specs & What HappensBest Free Audio Converter: Browser-Based vs DesktopHow to Compress Audio in Audacity: Size & DynamicsFFmpeg Compress Audio: MP3, FLAC, Opus & AAC One-LinersCompress MP3 Without Losing Quality: What's PossibleHow to Make a Ringtone From an MP3 (iPhone & Android)How to Trim an MP3 Without Losing QualityHow to Cut Audio in Audacity (2026 Step-by-Step)How to Merge Audio Files: Three Real MethodsHow to Remove Vocals From a Song (Honest 2026 Guide)How to Record Audio on Mac: 2026 GuideHow to Record Audio on Windows: 2026 GuideHow to Record Audio on iPhone: 2026 GuideHow to Find BPM of a Song: 5 MethodsHow to Split Audio Files: 3 Methods That Work