Jampal mp3 Library
Tag Update


Summary of Features
Detailed Features
What's New?
Download
Installation & Getting Started
License & acknowledgements
Project Info

User's Guide
Library Window
Playlist Window
Track Editor Window
Customization
Advanced Topics
Regular Expressions
Trouble Shooting
Tables
ID3 Frame Descriptions

Utilities
mp3 Management Scripts
Tag Backup
Tag Update
Text to Speech
Speech XML Format
Speech Phonemes

Author
Peter Bennett

My Other Projects
Peter's Backup
Proxy and debug tool

SourceForge.net Logo
Command Line Update of ID3V1 and ID3V2 Tags

This utility uses the same tag library as jampal. It can update one or many mp3 files from the command line, batch file or shell script.

Usage

Typing the command with no options will list out the available options.

Usage: java -cp [path]/jampal.jar pgbennett.id3.TagUpdate options filename [filename] ...

Option Explanation
-DISPLAY This displays the tags and file information. If it is specified before update options it displays values before the update. If it is specified after or between update options it displays the value after the updates that appear before it.
-SHORTDISPLAY This displays the title, artist and album, tab separated. If it is specified before update options it displays values before the update. If it is specified after or between update options it displays the value after the updates that appear before it.
-NOUPDATE This suppresses writing the updates to the file. It can be specified anywhere in the options list.
-TITLE title Update title on both ID3V1 and ID3V2 tags.
-ARTIST artist-name Update artist name on both ID3V1 and ID3V2 tags.
-ALBUM album-name Update album name on both ID3V1 and ID3V2 tags.
-YEAR year Update year on both ID3V1 and ID3V2 tags.
-COMMENT comment Update comment on both ID3V1 and ID3V2 tags.
-TRACK track-number Update track number on both ID3V1 and ID3V2 tags.
-GENRE genre-name Update genre on both ID3V1 and ID3V2 tags. If the name supplied is not one of the supported ID3V1 names, the ID3V1 tag value will be left unchanged.
" See list of supported ID3V1 names.
-ID3V2TAG frame-id value Update ID3V2 tag. See details below.
-SYNCHRONIZE Synchronizes tags. This copies values from id3v2 tags to id3v1 if they are present in id3v2 otherwise copies id3v1 values to id3v2. To synchronize updates performed in the same run this should be at the end of the options list. It is performed in sequence with the other operations.
filename File name of mp3 file. Wild cards can be used to update multiple files, or several file names can be provided on the command line.

ID3V2TAG values

frame-id Explanation
XXXX Frames that take no language or description
XXXXlll Frames that take a language
XXXXllldddddd Frames that take a language and a description
XXXXdddddd Frames that take only a description
APICxxddddd Picture frames

" See list of frames and info about which ones take language and description.
Language code is always exactly 3 lower-case letters.
Picture type is two hexadecimal digits.
Description can be any length. If it includes spaces it must be quoted. It must not be a multi-line value.
Data can be a string or @filename to read from a file
For pictures @filename must be used and the extension of the file must be a recognized image file type (jpg, jpe, jpeg, bmp, png, gif)
If values include spaces or newlines they can be quoted. Multi-line values can be used in Linux, Cygwin or Unix. With Windows, multiline values cannot be used on the command line. To supply multi-line values in Windows either (1) use @filename and store the value in a file or (2) Install Cygwin and run the program from the Cygwin command line.
If any values are specified as empty (i.e. two quotes with nothing between, the frame is deleted from the tag
When updating files, any existing frames not explicitly updated are left unchanged.
Many files can be updated at once, to update selected values on each file.
All text values are trimmed (blanks, tabs, new-lines are deleted from the front and end).
The PRIV frame cannot be updated, except to delete it. The program does not cater for updating binary data in this case.