ID3 Tag Viewer & Editor

Read and edit MP3 ID3v2 tags — title, artist, album, artwork — locally

Free ID3 tag viewer and editor that reads ID3v1 and ID3v2 frames from MP3 files in your browser, shows title, artist, album, year, genre and track, and writes a new tagged MP3 you can download. No upload. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

What is the difference between ID3v1 and ID3v2?

ID3v1 is a fixed 128-byte block at the very end of the file with short, length-limited fields. ID3v2 sits at the start of the file, uses named frames like TIT2 (title) and TPE1 (artist), supports Unicode and has no practical length limit. This tool reads both and writes ID3v2.3.

Inspect and edit the ID3 metadata embedded in an MP3 — the title, artist, album, year, genre and track number that music players read. Everything runs locally in your browser: the file is parsed with the FileReader API, never uploaded, and a retagged copy is written back out as a download.

How it works

MP3 files carry two kinds of metadata. ID3v2 lives at the start of the file and is the modern standard. Its 10-byte header is ID3 followed by a version byte, a flags byte and a 4-byte synchsafe size (each byte uses only its low 7 bits, so the size is decoded as (b0 << 21) | (b1 << 14) | (b2 << 7) | b3). After the header come frames, each with a 4-character ID, a 4-byte size and the frame body. Text frames begin with an encoding byte: 0 is Latin-1 and 1 is UTF-16 with a byte-order mark.

The common text frames this tool decodes are:

TIT2 → Title        TPE1 → Artist
TALB → Album        TYER → Year (v2.3)
TDRC → Year (v2.4)  TCON → Genre
TRCK → Track        APIC → Attached picture

ID3v1 is a 128-byte trailer at the end of the file beginning with the ASCII TAG, holding fixed-width title, artist, album, year and comment fields. When no ID3v2 tag is present the viewer falls back to reading ID3v1.

Writing tags back

When you edit a field and download, the tool builds a fresh ID3v2.3 tag: for each non-empty field it emits a text frame with a Latin-1 encoding byte, computes the frame size, then wraps all frames in a header whose total size is re-encoded as a synchsafe integer. The original ID3v2 block (if any) is stripped and the audio frames are concatenated unchanged after the new tag, so the audio is bit-identical.

Tips

  • If a field looks garbled, it was likely stored as UTF-16; the tool decodes the BOM, but very old encoders sometimes mislabel encodings.
  • To strip all tags, clear every field and download — only frames with content are written.
  • Genre codes like (17) are a legacy ID3v1 numeric reference (Rock). Replace them with the plain genre name for best compatibility.