How to edit mp3 id3 tags — free, browser-based, no upload
- Step 1Open the ID3 editor and drop your MP3 — Drop a single
.mp3onto the ID3 editor. It is read into browser memory only — no upload. The editor handles one file per run; it is not a multi-file batch tool. - Step 2Type the correct Title and Artist — Fill the Title and Artist boxes. These map to the
TIT2andTPE1frames and are what most players show in the now-playing line and use to build artist pages. - Step 3Set Album and Track # so the album groups — Enter the Album name identically on every track of the same album, and set Track # (e.g.
3or3/12). Identical album text plus track numbers is what makes a player show the songs as one ordered album. - Step 4Add Year and Genre if you want them — Year is written to FFmpeg's
datemetadata (theTYER/TDRCframe). Genre is free text — type anything; there is no fixed picklist. - Step 5Drop in cover art (optional) — Use the Album art picker to choose a JPG or PNG. It is embedded as the front-cover
APICframe and stream-copied, so the image is not re-compressed. - Step 6Run and download the re-tagged MP3 — Click process. FFmpeg rewrites the tags, stream-copies the audio, and returns a new
*-tagged.mp3. The original file on disk is untouched.
The six editable fields and the ID3 frames they write
These are the exact fields the editor exposes. Each non-empty value is passed to FFmpeg as -metadata key=value; the value is normalised by FFmpeg's MP3 muxer into the matching ID3v2.3 frame. Empty fields are skipped entirely, so the original frame is preserved by the audio stream-copy.
| Editor field | FFmpeg metadata key | ID3v2.3 frame | Notes |
|---|---|---|---|
| Title | title | TIT2 | Track / song / episode title |
| Artist | artist | TPE1 | Lead performer / author / host |
| Album | album | TALB | Album / show name / collection |
| Year | date | TYER / TDRC | FFmpeg writes the Year box to the date key, not a separate year key |
| Genre | genre | TCON | Free text — no fixed picklist is enforced |
| Track # | track | TRCK | Plain number or n/total (e.g. 3/12) — typed as text |
Input format → output format and metadata model
The editor keeps the output in the same container as the input — there is no format selector. The same six fields map onto each container's native metadata model. The MP3 muxer is the only one that gets the explicit -id3v2_version 3 flag.
| Input | Output | Metadata model | Album art |
|---|---|---|---|
.mp3 | .mp3 | ID3v2.3 (forced via -id3v2_version 3) | APIC attached-picture frame |
.m4a / .mp4 (AAC/ALAC) | same | iTunes-style MP4 metadata atoms | covr atom |
.flac | .flac | Vorbis comments | FLAC picture block |
Tier limits for the ID3 editor
ID3 editing stream-copies the audio (no re-encode), so it is one of the lightest audio operations — but the same per-file ceilings apply. Tagging is single-file: the tool does not accept a multi-file drop, so the per-batch file count does not apply here.
| Tier | Max file size | Max duration | Files per run | Cost |
|---|---|---|---|---|
| Free | 50 MB | 30 minutes | 1 (single file) | Free, no account |
| Pro | 200 MB | 120 minutes | 1 (single file) | Paid |
| Pro-media | 100 GB | Unlimited | 1 (single file) | Paid |
| Developer | 100 GB | Unlimited | 1 (single file) | Paid |
Cookbook
Real before/after tag states for a personal music library. The editor only writes the fields you fill in; everything else is copied through.
Rescue a ripped album showing as Unknown Artist
A CD ripped without an internet lookup leaves every track with no artist/album, so the player files them under Unknown Artist and won't group them as an album. Filling Artist + Album identically across tracks fixes the grouping.
Before (track 3 of 'Moon Songs' by Vela): Title : Track 03 Artist: (empty) -> shows as 'Unknown Artist' Album : (empty) Track : (empty) Fields you type: Title = Tide Artist = Vela Album = Moon Songs Track = 3/9 After (audio stream-copied, lossless): TIT2=Tide TPE1=Vela TALB=Moon Songs TRCK=3/9
Fix one wrong field without disturbing the rest
The album already has good tags but the year is wrong. Leave every other box blank — only the field you fill is rewritten; the original artist, title, and cover are copied through untouched.
Before: Title=Aurora Artist=Vela Album=Moon Songs Year=1019 (typo) Genre=Ambient You type only: Year = 2019 After: Title=Aurora Artist=Vela Album=Moon Songs date=2019 Genre=Ambient (Title/Artist/Album/Genre + cover preserved via -c copy)
Replace blurry embedded cover art
The track has a low-res cover baked in. Drop a clean 1000x1000 JPG into the album-art picker; it replaces the front-cover APIC frame and is copied in without re-compression.
Before: APIC = 300x300 jpg (blurry)
Action: drop cover-1000.jpg into the Album art picker
FFmpeg: -i in.mp3 -i cover-1000.jpg -map 0:a -map 1:v
-c:a copy -c:v copy -disposition:v:0 attached_pic
After: APIC = 1000x1000 jpg, audio untouchedSet track numbers so a compilation plays in order
A homemade compilation plays alphabetically because no track numbers are set. Tag each file with Track # in n/total form so the player honours the intended order.
File: 01-intro.mp3 -> Track = 1/10 File: 02-drive.mp3 -> Track = 2/10 File: 03-night.mp3 -> Track = 3/10 (one file per run; repeat the tool per track) Result: TRCK frame set; player sorts 1,2,3 instead of by filename
Confirm the edit kept the bitrate identical
Because the audio is stream-copied, the output bitrate matches the input exactly. This is the quick proof that a tag edit caused no quality loss.
ffprobe in.mp3 -> bit_rate=320000, codec=mp3 ffprobe out-tagged.mp3 -> bit_rate=320000, codec=mp3 (identical audio stream; only the ID3 header changed)
Edge cases and what actually happens
Album art is a GIF or WebP
Rejected (invalid)The album-art picker accepts only image/jpeg and image/png. A GIF or WebP cover is not selectable. Convert it to JPG or PNG first, then drop it in.
Audio is never re-encoded
Lossless by designEvery tag edit uses -c copy on the audio stream. Editing tags repeatedly will never accumulate generation loss the way re-encoding would — the audio samples are identical to the source.
You leave a field blank
PreservedBlank fields are skipped (if (v) args.push('-metadata', ...)). The original frame is preserved because the surrounding stream is copied. Blanking a box does not delete the existing tag.
MP3 is always written as ID3v2.3, not v2.4
By designFor MP3 output the tool always passes -id3v2_version 3. There is no v2.4 toggle. v2.3 is the most broadly compatible version; if you specifically need v2.4 features (UTF-8 frames), this tool will not produce them.
You drop several files at once
Single file onlyThe ID3 editor does not accept a multi-file drop (acceptsMultiple: false). Tag one MP3, download, then repeat for the next. For library-wide automation use a desktop tagger.
File is over your tier's size limit
413 over limitFree caps at 50 MB / 30 minutes; Pro 200 MB / 120 min. A long DJ-set MP3 can exceed the Free duration cap even at a modest size — upgrade or trim with the audio-trimmer first.
Genre typed as a number
Stored as textThere is no genre picklist or numeric ID3 genre code lookup — whatever you type in Genre is written verbatim as TCON. Type the genre name (e.g. Ambient), not a number.
File has a non-.mp3 extension but is really an MP3
Container-drivenOutput format follows the input file extension, not the real codec. If a true MP3 is named .bin, the tool can't tell — rename it to .mp3 before tagging so the MP3 muxer and -id3v2_version 3 are used.
Cover shows in one app but not another
ExpectedThe cover is embedded as APIC; some older players only read filesystem folder.jpg/cover.jpg. iTunes, Apple Music, and Spotify read the embedded APIC. If a hardware player ignores it, it reads art from the folder, not the tag.
Frequently asked questions
Is editing MP3 tags here really free?
Yes. The ID3 editor is on the Free tier with no account, up to 50 MB and 30 minutes per file. The audio never leaves your browser.
Will editing tags hurt the sound quality?
No. The audio stream is copied verbatim with -c copy — FFmpeg never re-encodes it. Only the ID3 header is rewritten, so the bitrate and audio are byte-for-byte identical to the source.
Which fields can I edit?
Six: Title, Artist, Album, Year, Genre, and Track #, plus an embedded cover image. These map to the TIT2, TPE1, TALB, TYER/TDRC (via the date key), TCON, and TRCK frames.
Can I edit lyrics or a comment field?
No. The editor exposes only the six fields above plus album art. Lyrics (USLT) and comment (COMM) frames are not editable here — use a desktop tagger like Kid3 or Mp3tag for those.
Can I choose ID3 v2.3 versus v2.4?
No — for MP3 the tool always writes ID3v2.3 (-id3v2_version 3). v2.3 has the broadest compatibility across cars, Windows Media Player, and iTunes.
Why does the Year I type show up under a 'date' tag?
FFmpeg stores the Year box in the generic date metadata key, which the MP3 muxer maps to the TYER/TDRC year frame. Players display it as the year normally.
Can I bulk-edit a whole album at once?
Not in one run — the tool is single-file. Tag each track, download it, and repeat. For large libraries a desktop tagger is faster, but this tool keeps everything private and lossless per file.
What image formats work for cover art?
JPG and PNG only. The picker filters to image/jpeg,image/png. The image is embedded as-is (stream-copied), not re-compressed.
Will the cover art display in Spotify or Apple Music?
Embedded APIC art shows in iTunes, Apple Music, and most modern players. For streaming services the cover usually comes from their own catalogue, not your file's tag — embedded art matters most for local playback.
Can I edit M4A or FLAC tags here too?
Yes — the same six fields apply. M4A/MP4 writes iTunes-style metadata atoms and FLAC writes Vorbis comments; the output stays in the same container as the input.
Does the original file on my computer change?
No. The tool produces a new *-tagged file for download. Your source file on disk is never modified.
What if my track has no embedded art and I don't add any?
Nothing changes — no APIC frame is added. To pull existing art out of a file, use the album-art-extractor instead.
Privacy first
Every JAD Audio tool runs entirely in your browser via FFmpeg (WebAssembly) and RNNoise. Your audio files never leave your device — verified by zero outbound network requests during processing.