Open the app — Audio Tag Editor
Have you ever opened an old mp3 folder and found the titles showing as gibberish like º½³¯Àº °£´Ù?
The older the collection, the more of it there is.
Installing a tag editor feels like a chore, and fixing one track at a time never ends.
This tool opens a folder in the browser and fixes the tags in place, saving over the originals.
It revives broken Korean on its own, moves your folder names into album and artist fields, and fills in cover art and lyrics.
It always writes UTF-8, so from now on the files stay readable wherever you open them.
Nothing is uploaded. It all finishes inside the browser.
How to Use
Supported files and tag formats
| File | Read | Write |
|---|---|---|
| mp3 | ID3v2.2 / v2.3 / v2.4, ID3v1 | ID3v2.4 + UTF-8 (ID3v1 is removed — it cannot carry UTF-8) |
| flac | Vorbis Comment, METADATA_BLOCK_PICTURE | Vorbis Comment + UTF-8 |
| m4a | iTunes-style tags (moov > udta > meta > ilst) | Same place, in UTF-8 |
Music that has passed through an iPhone or iTunes is usually m4a.
The extension is the same either way, but what is inside differs — sometimes lossy AAC, sometimes lossless ALAC.
Both are read and written, and the badge in the track list tells you which one you have.
Steps
- Click [Open Folder] and pick the top folder of your music. Subfolders are scanned to build the album list.
- Pick an album folder on the left; album info and the track list appear on the right. With many folders, use the box above the list to filter by folder, album or artist name — the count then reads like
12 / 100. - Edit the values. Album fields (album, album artist, year, genre, disc) apply to every track in that folder at once; track fields (file name, track number, title, artist) are edited per song. Press [Reset] to discard all edits and return to the start screen.
- Click [Save this album] or [Save all] to overwrite the original files.
Automatic fix for broken Korean
There are two main ways Korean gets mangled, and both are handled for you.
- Wrong encoding declaration: the ID3v2 frame says “ISO-8859-1” but the bytes are actually CP949 (EUC-KR). Most older Korean mp3 files are like this.
- Mojibake: a string that was produced by reading CP949 or UTF-8 bytes as Latin characters (
º½³¯Àº °£´Ù) and then saved again.
Every candidate encoding (UTF-8, CP949, Shift_JIS, GB18030, Big5, Windows-1252) is tried and the result with the most natural mix of Hangul / Han / Kana characters wins. When the decision is close, a ? mark appears in the state column.
Correction is always on. If a result looks wrong, press [Reset] to return to the start screen and open the folder again — the tags are read from disk afresh.
Genre
Genre is picked, not typed. Your choice goes into every track in the folder at once, and clicking the same one again clears it if you mis-tapped.
Ballad Dance Hip-Hop R&B Indie Rock Trot Classical Jazz Pop ⌐Other¬
(dashed)
- The dashed box at the end is an input. Type anything outside the list there, up to 10 characters; the box grows as you type, and Enter commits it and drops the caret.
- If the file already held a genre that is not in the list, it arrives in that box — shown in full even beyond 10 characters, though it cannot be made longer. Clear the box to remove it.
- Only one of them is ever active. Clicking a chip clears what you typed; typing clears the chip selection.
- Chip names follow the interface language (
록in Korean,Rockin English), and the tag records exactly what you see. - If the file says
Rockand the interface is Korean, the록chip lights up — but the file keepsRockunless you change the value. - When tracks in the folder disagree, nothing is selected and it reads
Multiple values. Picking one unifies them all. - The list lives in
GENRE_CHOICESinconstants.js.
Cover art
Cover art is applied per folder, so every track in the album gets the same image.
- [Choose image], or drag an image onto the cover box
- [Folder image]: uses
cover.jpg/folder.jpg/front.*found in the folder - [Search online]: looks the album up on iTunes and fetches 600×600 artwork
- [Remove cover]: deletes the front cover
Folders containing m4a files accept JPEG and PNG only — the cover slot in m4a distinguishes just those two formats.
Pick something else, like a webp, and you are told right away. Failing only at save time would leave you wondering how many tracks got through.
Preview playback
Selecting a track loads it into the player below and starts playing immediately.
When a title is mangled beyond reading, hearing the song is the fastest way to know what you’re fixing.
- If that is distracting, uncheck [Autoplay] next to the player. The track is still loaded — just press play when you want it.
- Playback only starts when you click the list; moving between fields with Tab stays silent.
- Saving replaces the file, so playback stops briefly and the new file is reloaded.
- The browser reads the file directly; nothing is uploaded.
Lyrics
- Select a track and edit its lyrics in the detail area below.
- [Find lyrics] lists candidates from LRCLIB, each tagged match or check.
- [Fetch lyrics for all] searches only the tracks whose lyrics are empty. If some already have lyrics you are asked whether to overwrite them (cancel = leave them alone), because lyrics already in the file are often better than what a search returns.
- When it finishes you get a breakdown —
N added · N already had lyrics · N not found— and only the genuinely empty tracks are listed in the notice box. Press [Cancel] to stop midway. - Lyrics are stored in
USLTfor mp3,LYRICSfor flac and©lyrfor m4a.
How the search works: for Korean songs the artist is often registered in romanized form (부활 → Boohwal) and titles carry subtitles, so an exact title + artist + album match almost never hits. The app therefore tries progressively broader queries:
- Exact title + artist
- Free-text
title artist - Title stripped of track numbers, brackets and
feat.parts, plus artist - The stripped title alone
It stops as soon as a confident result appears. Results matching neither the title nor the artist are dropped entirely, and batch lookup only applies confident matches — a wrong set of lyrics is worse than none — so uncertain tracks are left for you to pick manually.
[Web search] opens Google or Naver in a new tab. Neither allows scripts to read their results (no CORS), so the lyrics cannot be fetched automatically; copy what you find and paste it into the lyrics box. Because Korean lyrics are almost entirely under collective rights management, LRCLIB is effectively the only free, key-less lyrics API usable from a browser.
Online lookup
Only when you look up cover art or lyrics are the song title and artist name sent to iTunes (Apple) and LRCLIB. Nothing leaves the page unless you press one of those buttons, and the audio files themselves are never sent anywhere.
The track list
The list has four columns — file name, track, title, artist. The badge left of the file name shows audio quality.
- mp3: the bitrate, e.g.
320k. Variable bitrate is an average, so it is prefixed with a tilde:~192k. - flac: shown as
FLAC, since it is lossless. - m4a: follows the codec inside — a bitrate like
256kfor AAC, orALACwhen it is lossless. - Hover the badge for details such as
320 kbps · 44.1 kHz · stereo. For m4a the codec name comes first.
Clicking any cell selects that track and opens its lyrics in the detail area below.
Editing file names
You can edit the file name directly in the track list; the actual file is renamed when you save. The extension is not shown in the field — it cannot be changed, so it is left out of the input and re-attached on save.
- If a name is mojibake, a 한 button appears at the right of the cell — click it to fill in the repaired name.
- Characters file names cannot contain (
\ / : * ? " < > |) cannot be typed at all, and are stripped from pasted text too. - Names ending in a dot or space, and empty names, are rejected on save. Invalid names turn red as you type.
- Names that collide within the same folder turn red immediately and are refused on save — nothing is overwritten.
- Renamed cells are highlighted in green.
The file system offers no rename operation, so the app writes a new file under the new name and then deletes the old one. If the write fails, the original is left untouched.
Good to Know
Entering values
- Tag values never contain control characters. The null character in particular acts as a value separator inside tags and would corrupt the file.
- Pasting multiple lines into a single-line field joins them with a space. Only comment and lyrics keep line breaks.
- For a file whose tags could not be read, the detail area says so and only its file name can be edited.
- In m4a, track and disc take numbers only.
7and7/12are fine, but a value likeA1is refused on save. mp3 and flac can hold it as text; m4a stores these two as a pair of numbers, so there is nowhere to put it.
Actions that cannot be undone
These prompt for confirmation.
| Action | What it asks |
|---|---|
| [Reset] | Always asks, whether or not you have edits; shows how many files were edited. |
| [Save all] · [Save this album] | Tells you how many original files will be overwritten. |
| [Remove cover] | Tells you how many tracks in the album lose their cover. |
| [Fetch lyrics for all] | Asks whether to overwrite tracks that already have lyrics. |
| Leaving the page | The browser confirms if there are unsaved edits. |
How saving works
- Original files are overwritten in place. No copies are made, so back up anything important first.
- Audio data is untouched; only the tag area is rewritten. There is no re-encoding and no quality loss.
- Tag entries you did not edit (replay gain, custom fields, and so on) are preserved.
- If a file changed on disk after it was read, saving is refused and you are asked to reload the folder.
Saving an m4a works a little differently.
In mp3 and flac the tags sit at the very front of the file, so rewriting that front part is the whole job.
An m4a, though, is built from nested boxes, and the tag box often sits after the audio.
When the tags grow, the audio gets pushed back as a whole.
Inside every m4a there is a table recording where in the file the audio lives, and unless that table moves by the same amount, players look in the wrong place and the file seems corrupt.
So the tag box is rebuilt and the table is shifted to match — without touching a single byte of the audio itself.
A few files split their audio across several boxes. There it is ambiguous which part moves how far, so the table cannot be corrected reliably.
Guessing would damage the file, so those are refused rather than saved.
Notes and caveats
- Chrome and Edge only. Folder access and in-place saving require the File System Access API. Safari and Firefox cannot open the folder.
- iPhone and iPad cannot run this. Every iOS browser is built on WebKit, which has no directory picker and cannot write back to a file you opened — installing Chrome changes nothing. Edit on a Mac or PC, then transfer the files to the device.
- Leaving the page with unsaved edits triggers a confirmation dialog.
- Up to 3,000 files can be handled at once.
Internationalization
The whole page supports Korean / English; toggle KO/EN in the top-left to switch instantly.
Open the app — Audio Tag Editor