Title: MP3 Tag Converter
Author: David J. Stein, Esq.
Version: 1.3 - last updated Tuesday, May 22, 2007


Abstract: MP3 audio files typically identify the contents of the embedded audio by one of two mechanisms: either by the filename, or by a well-formatted data record ("tag") stored within the file. Synchronizing these items by hand is a labor-intensive and error-prone process. Moreover, a set of MP3 files may be grouped into albums and playlists by some external text files ("M3U files"); the filenames referenced within these lists must be kept in sync with the filenames of the associated MP3 files.

This application is useful for synchronizing the filenames and contents of MP3 files, as well as some included M3U files. At its simplest, the application may rewrite the internal MP3 tag for a file based on data provided by the user. The application may also be used for automatically rewriting the MP3 tags of all files in a collection based on their filenames. The application may also perform the reverse operation by renaming files based on some of the data in the MP3 tags, while also updating M3U files to maintain playlist integrity. Finally, the application may generate new M3U files corresponding to the albums referenced by the MP3 tag data of an MP3 file set.

Installation Instructions: Simply run the enclosed executable. The application relies on the included "MP3 Tag Converter help.txt" file, so don't move or delete this file.

Operating Instructions:

Overview: MP3 files are identified in two ways: externally (by filename) and internally, as part of the binary data. The internal labeling exists in a format called ID3. While these tracks can be edited natively in Windows XP via a context-sensitive properties page, there isn't a way to automate these changes. For instance, it's common for users to choose a standard filename format for all of their MP3s (such as "Artist Name - Track Name.mp3") and to name all MP3 files accordingly, so it is redundant and pointless to have to update all of the ID3 tag data as well. A need exists for an automated process of writing MP3 ID3 tag data automatically based on the filename.

A separate need exists for performing the converse function: for (re)naming MP3 files using the internal ID3 tag data. Often, MP3 filenames will be modified or lost when moving files to or from an MP3 player or other device. Some devices default to a standard format, such as "Arist Name - Album Name - Track Number - Track Name.mp3," and don't provide a way to customize filenames. Other devices intentionally mangle the filenames for the purpose of preventing files from being copied out of the device by unauthorized means; the Apple iPod is well-known for this behavior. However, even if the preferred MP3 filename is lost, the ID3 tag data is preserved, and this could be used to automate the process of renaming MP3 files according to some preferred scheme.

Finally, it is important to coordinate the writing of this data with the user's set of M3U tracklist files, which represent two kinds of MP3 file groupings: albums and playlists. Users usually want the option of playing all of the tracks from a particular ripped album in the original order, and therefore maintain an M3U tracklist for the album. Also, users frequently organize MP3s into playlists based on a certain theme or artist. These M3U files are relevant to this utility for two reasons. First, while writing ID3 tag information, the utility needs access to the album information for each track - but this might not be stored in the filename, and only in the album M3U tracklist. Second, while renaming each file, the utility should update the filenames specified in all tracklists (albums and playlists) that specify this track. Finally, if an album M3U file is not available, it can be generated based solely on the ID3 tag data within each track.

Usage: This MP3 tag utility performs all of these functions, each offered as a separate pane in a tabbed window:

The first tab allows the user to edit track information within a file. Simply input the information and then select an MP3 to which that track information should be written.

The second tab is used for automatic writing of ID3 tag information based on filenames. This is done by specifying the order of tokens in the filename. This utility assumes that all such tokens are separated by " - ", e.g., "Led Zeppelin - Stairway to Heaven.mp3". Note that these attributes may be flagged as optional, e.g., "Artist - Album (optional) - Track Name" - in this case, the utility will try to parse filenames into three tokens, but if this fails, it will use only two. (In the case of a conflict, the utility will present a list of options specifying how to parse the tokens.) After these options have been set, the user may target any folder or set of files in a folder to process all contained MP3s and M3Us.

The third tab is for renaming MP3s according to contained ID3 information, according to the following user options:

Although the manual renaming task finishes instantaneously, the other two tasks may take some time to complete, depending on the number of tracks to be processed. The status window and status bar indicate the progress of these tasks. The amount of text in the status window may be changed by selecting "Terse" or "Verbose"; these options suppress or express the names of tracks already processed. "Terse" still displays start/end/error messages. Finally, if the task is taking too long, the user may abort it by clicking the "Abort" button.

Comments: This application is an amalgam and rewrite of a few software applications that I wrote a few years ago to manage the exchange of an MP3 collection between a computer and a Creative Nomad MP3 player. The Nomad is a great machine, but it just mangles filenames and playlists - very frustrating, even if you're using a utility like Notmad Explorer for raw file access. Trying to maintain some synchronicity between MP3s and playlists in a large collection has been a struggle, and hopefully this software will help others as much as it has helped me.

Application History:

Questions/Comments: Please contact David J. Stein, Esq. via email at djs10@po.cwru.edu.

Terms and Conditions of Use: Please see the enclosed "License.html" file for terms and conditions of use of this software package.