View on GitHub

id3

a portable command-line mass tagger

Download this project as a .zip file Download this project as a tar.gz file

Description

id3 mass tagger is a tool for manipulating id3 and id3v2 tags in multiple files. It can generate tag fields from the filename and other variables, and/or rename files, using an intuitive syntax. id3 currently supports old-style ID3v1 tags, Lyrics3v2, as well as the more complex ID3v2 format. This means its use is limited to audio files which use these formats, i.e. MP3.

Examples

id3 -a "Stallman" -t "Free Software Song" fs_song.mp3"

Add a simple tag to a file.

id3 mysong.mp3
id3 -v mysong.mp3

List tag info contained in file (short-form and detailed)

id3 --genre "psych rock" *.mp3

Sets genre to "Psychedelic Rock" in all mp3's

id3 --artist "TAFKAT" --track "%1" -title "%+2" "*. *.mp3"

Update tag fields similar to this;

id3 -a "TAFKAT" -n "01" -t "My Song" "01. my_song.mp3"
id3 -a "TAFKAT" -n "02" -t "Untitled" "02. untitled.mp3"

id3 -m "%n. %+t.mp3"

Shorthand notation for the above, using the -m option.

id3 -f "%a - %t.mp3" blaet.mp3

Rename file to a standard "Artist - Title" format.

id3 -g "alt rock" -a "The Author" -l %1 -n %2 -t %3 "Author - */(*) *.mp3"

Process multiple directories at once.

id3 -2 -wTPE2 "%{TXXX:ALBUM ARTIST}" file.mp3

Copy the ID3v2 album artist field (as used by Foobar2000), if any, to the field used by iTunes

id3 -1 -3 -d *.mp3

Removes all ID3v1 and Lyrics3 tags from all mp3's

id3 -2 -1 -u "*.mp3"

Copy ID3v2 tag (if any) to ID3v1 tag in all files.

id3 -a %t -t %a "*.mp3"

Swap artist and title fields in all mp3's.

id3 -D source.mp3 -1 -2 dest.mp3

Copy ID3v1 and ID3v2 tags of source.mp3 to dest.mp3

id3 -D source.mp3 -1u -2u dest.mp3

As above, but only replaces the non-standard or blank fields in dest.mp3 by data from source.mp3.

id3 -2 -rAPIC -rGEOB -s 0 *.mp3

Removes embedded images, binary blobs, and padding from all mp3's.

id3 -2 -rAPIC -rGEOB -s 0 -R "Music/*.mp3"

As above, but works recursively on all mp3's in the Music folder

id3 -2 -q "%| %a - %|Untitled|t || %t || %1 |?" "*.mp3"

Generate a playlist, using the best possible text

id3 -2 -c "Was: %_f" -f "%a - %|Untitled (%#x)|t.mp3" "*.mp3"

Advanced rename. Saves previous filename in the comment field, and renames files without proper tags to;

Unknown - Untitled (01).mp3
Unknown - Untitled (02).mp3
... etc

Fore more information, consult the documentation.

Limitations

ID3v2.4 at the start of a file can be read, but will be converted to the universally recognized ID3v2.3 when written. This may actually be a feature rather than a limitation; id3 -2u is a quick way to convert tags to a form your portable player may recognize.

On Windows, support for non-ASCII characters (e.g. Russian or Korean characters) is dependent on your system language settings. A Unicode version is on the TODO list.

Getting it

Version Release date Source Pre-built binaries
0.80 22 Dec 2015 tarball/zip Windows
Debian/Ubuntu: amd64/i386
0.79 30 Jan 2015 tarball/zip Windows
Debian/Ubuntu: amd64/i386
0.78 21 Mar 2006 tarball/zip Windows

id3 mass tagger may also be available on your system by default:

Arch Linux: pacman -S id3

FreeBSD: pkg install id3mtag

You can also find release notes, tarballs, and binaries here.

Developer notes

Like many small projects, this started as something hacked together to scratch a need. Besides its obvious purpose, this has also become an exercise in writing a fully portable program, trying out C++ features on various compilers, etc.

If you like this program, you can help by trying to build and test it on an uncommon system, or becoming a package maintainer for some Linux distribution. Please contact me if you do so.

Copyright

© Marc Schoolderman 2003-2015. All rights reserved.

This program may be used freely, and you are welcome to redistribute it under certain conditions.

For the actual licensing conditions you should read the file COPYING, which should be accompanying the files you receive.

These files are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the accompanying file COPYING for more details.