Skip to main content

Smart DJ File Renamer.

Deterministic batch renamer for DJ library tracks based on metadata tags and audio analysis.

Load audio files, folders or playlists

Inspect metadata tags, detect messy names, and batch rename automatically or with manual inline edits.

Drop your audio tracks here or click to browse

Lossless (WAV, FLAC, AIFF) and Lossy (MP3, AAC, M4A) · Local Processing Only

Batch renaming in your browser

Batch Audio File Renamer: Rename MP3 Files from ID3 Tags

Load a folder or a handful of files, the analysis reads every track’s tags, the table shows the current name next to a proposal you can edit by hand, and you download a script bundle to run on your machine. Everything is computed in your browser: the audio is never uploaded, no tag is written and no file moves until you run the script.

How it builds a name: Always "Artist - Title" Extension kept byte for byte 255-byte UTF-8 budget Collisions numbered (2), (3)…
Formats you can load: MP3 WAV FLAC AIFF / AIF OGG M4A AAC

What this tool really does

Four capabilities you can check in the code, not in a sales pitch.

Names built from the tags inside the file

The engine takes the artist and the title the analysis read from ID3, Vorbis or MP4 tags and proposes "Artist - Title.ext". When only one of the two fields exists the row stays at low confidence with an explicit note, and when neither holds a usable value the track goes to the unresolvable bucket instead of getting an invented name.

  • Artist and title come from a local tag read, never from an online lookup.
  • Junk values such as "Untitled", "www.…" or "320 kbps" are refused instead of becoming a name.

One sanitiser for Windows, macOS and Linux at once

Illegal characters become a space ("AC/DC" turns into "AC DC"), whitespace runs collapse, trailing dots and spaces are stripped, Windows device names such as CON get an underscore prefix and the result is cut to 255 UTF-8 bytes on code-point boundaries — the strictest of the NTFS, ext4 and APFS budgets.

  • The extension is preserved byte for byte, case included.
  • A name that would end up empty falls back to "track", and an illegal name is fixed at high confidence.

Collisions are reported and numbered

Two tracks resolving to the same target are both listed as conflicts with a deterministic " (2)", " (3)"… suffix checked against every other name the plan leaves on disk, so no script can overwrite a file. The check compares file names only, so two identically named files in different folders are reported as well.

  • No proposal ever lands on a name another file keeps.
  • Conflicts are surfaced for review, never resolved silently.

Editable proposals and a downloadable bundle

Every proposed name is a text field you can rewrite right inside the table, with a reset button back to the suggestion, and the plan regenerates with your edits. One click downloads rename-files.ps1 for Windows, rename-files.sh for macOS and Linux, rename-map.csv for review and README-undo.txt with the reversal steps.

  • The script creates rename-undo.csv before renaming anything and refuses to run if it cannot write it.
  • A name containing a line break or a NUL is left out of the bundle and listed in the README.

Real-world use cases

What this view solves before you load the USB stick.

Case 1 · Downloads with dirty names

Underscores, "(1)" and copy suffixes

Downloads arrive as Track_01_(1).mp3 or "track copy 2.flac": the plan recognises underscores used instead of spaces, duplicate suffixes and bitrate labels inside the name, and proposes the clean name built from the tags.

Case 2 · Names Windows refuses

Illegal characters and reserved names

A file with ?, | or : in its name will not open on Windows, and a stem such as CON or AUX is a reserved device name: the sanitiser fixes both at high confidence and the reason column says exactly which character is the problem.

Case 3 · Before the gig

One convention across the whole folder

With a library mixed from several pools, the table shows a single naming convention across the folder and lets you filter by "to rename", "conflicts" or "already clean" before you download a single script.

Case 4 · Two files, one name

The same track in two folders

When two tracks resolve to the same "Artist - Title.mp3", both appear as conflicts with a numbered suffix, so you can check whether they are duplicates before the script touches a single file.

What it produces and what it does not

Better to say it here than to find out halfway through a big clean-up.

The tool works on analyses already computed in your browser: it reads the tags — the name uses only artist and title, although the shared analysis also collects album, year, genre, track number, ISRC, comment, album artist and publisher — and compares nothing else: there is no external lookup and no tag editing. Everything it produces is text: the table of proposed names, a PowerShell script, a shell script, a review CSV and an undo note.

  • Inputs: MP3, WAV, FLAC, AIFF/AIF, OGG, M4A and AAC; the picker also accepts any audio the browser recognises. A folder is loaded through the webkitdirectory attribute and through webkitGetAsEntry on drop, with the flat file list as the fallback.
  • Names only: no tag is written to any file and the audio bytes are never modified.
  • Nothing is uploaded: the rename plan and the script generator are pure functions with no I/O, and the audio is analysed on your machine.

Limits worth knowing

We would rather publish them than have you discover them mid clean-up.

The browser never renames anything on disk

This view uses no file-write API: the plan lives in memory and in the table, and only text is downloaded. Files are renamed when you run the downloaded script on your machine, with its undo log; the tool never moves a file by itself.

One fixed pattern, not a template engine

The proposal is always "Artist - Title" with the extension kept: there are no {bpm} or {key} placeholders, no case-conversion options, no numbering prefixes, and neither BPM nor musical key plays any part in the name. The escape hatch is editing each name by hand in the table, field by field.

File names only, one folder at a time

The bundle stores file names, not paths: run it against one concrete folder and never point it at a parent folder. Because the collision check looks at names only, identically named files in different folders are reported too.

Your machine’s memory is the ceiling

Compressed formats are decoded by Web Audio during analysis, so the bigger and longer the track the longer it takes and the more memory it uses; 20,000 tracks would be around 5.98 GB against a measured per-tab limit of 4,192 MB. The view restores at most 500 analyses from the local cache and the library panel up to 1,000.

Recommended Academy guides

Metadata, library organisation and safety before you rename anything in bulk.

Browse all guides

Related tools

Complementary utilities to audit and move your library after renaming.

View all tools