Bringing beauty and order to massive MP3 collections

The ultimate Guide

Tired of having a massive, unordered collection of thousands of badly named MP3s? This guide will show you how to:

  1. Automatically rename thousands of MP3s to pretty filenames
  2. Quickly sort those MP3s in folders responding to their genres
  3. Fix your Winamp playlists so they will work with the relocated files

The guide is primarily written from a Windows point of view. However, all tools used in this article will also work on MacOS, Linux, BSD or whatever else you happen to be working on.

Carrying out procedure described in this guide is on your own risk! I will not take any responsibility for lost files and any other undesired results and incidents.

Preparations

Installing Perl

To run the tools I wrote for this undertaking you will need Perl. When you're running Linux or another flavour of Unix, you will probably find Perl already installed. Windows users should download ActiveState Perl.

Installing required Perl modules

You will need two additional Perl modules, MP3::Info and String::Approx. Users of ActiveState Perl open a shell and type in everything you see in bold type below:

C:\> cd c:\perl\bin   # or wherever you installed Perl
C:\Perl\bin> ppm
PPM> install MP3-Info
Install package 'MP3-Info?' (y/N): y
Installing package 'MP3-Info'...
Downloading http://ppm.ActiveState.com/PPMPackages/5.6plus/MSWin32-x86-multi-thread/MP3-Info-1.02.tar.gz ...
Installing G:\Perl\html\site\lib\MPEG\MP3Info.html
Installing G:\Perl\html\site\lib\MP3\Info.html
Installing G:\Perl\site\lib\MPEG\MP3Info.pm
Installing G:\Perl\site\lib\MP3\Info.pm
PPM> install String-Approx
Install package 'String-Approx?' (y/N): y
Installing package 'String-Approx'...
Downloading http://ppm.ActiveState.com/PPMPackages/5.6plus/MSWin32-x86-multi-thread/String-Approx-3.20.tar.gz ...
Installing G:\Perl\site\lib\auto\String\Approx\Approx.bs
Installing G:\Perl\site\lib\auto\String\Approx\Approx.dll
Installing G:\Perl\site\lib\auto\String\Approx\Approx.exp
Installing G:\Perl\site\lib\auto\String\Approx\Approx.lib
Installing G:\Perl\html\site\lib\String\Approx.html
Installing G:\Perl\site\lib\String\Approx.pm
PPM> exit
Quit!

If you're not using ActiveState Perl download the modules from CPAN (MP3::Info, String::Aprox) and follow the installation instructions contained in the module archives.

Installing the tools

I wrote three small tools which you are going to need:

Download these three files and unzip them to a location like c:\Scripts.

1. Making beautiful filenames

First we will bring all filenames into the clean form Artist Name - Song Title, with proper use of upper and lower case and all crap removed. Type into the shell:

C:\> cd c:\Scripts   # or wherever you installed the tools
C:\Scripts> perl filename-beautifier.pl d:\Media\MP3\*.mp3   # or wherever you store your MP3s

Now follow the instructions on the screen. You can either choose for every single file manually (by pressing either y or n to accept or reject a suggestion) or press a to have the beautifier rename your whole collection automatically.

2. Sorting files in genre folders

Now you have 3000 beautifully named MP3s sitting in a single folder, so let's improve on that. The following step will let you comfortably subdivide your collection into folders like:

d:\Media\MP3\Ballads
d:\Media\MP3\Comedy
d:\Media\MP3\Dance
d:\Media\MP3\Electronic
d:\Media\MP3\Classical
d:\Media\MP3\World
d:\Media\MP3\Jazz
d:\Media\MP3\Other
d:\Media\MP3\Black Beat
d:\Media\MP3\Pop
d:\Media\MP3\Rock
d:\Media\MP3\Reggae
d:\Media\MP3\Soundtrack

It is possible to change this genre list (by editing genre-sorter.pl) but for this guide I will just go with this list.

First you must create all folders responding to the genre list. So, in our case:

C:\> cd d:\Media\MP3   # or wherever you store your MP3s
C:\Media\MP3> md Comedy
C:\Media\MP3> md Dance
C:\Media\MP3> md Electronic
C:\Media\MP3> md Classical
C:\Media\MP3> md World
C:\Media\MP3> md Jazz
C:\Media\MP3> md Other
C:\Media\MP3> md Black Beat
C:\Media\MP3> md Pop
C:\Media\MP3> md Rock
C:\Media\MP3> md Reggae
C:\Media\MP3> md Soundtrack

Finally, launch the Genre Sorter by typing:

C:\> cd c:\Scripts   # or wherever you installed the tools
C:\Scripts> perl genre-sorter.pl d:\Media\MP3   # or wherever you store your MP3s

Follow the instructions on the screen and pick a genre for every file. Often the Genre Sorter will have a genre suggestion for you, in which case you may simply press Enter to use it.

The Genre Sorter will also learn from your choices, so the more you use it the more (and better) suggestions it will have for you. Pretty neat, huh?

3. Fixing Winamp Playlists

This step is for Winamp 2 users. So all files in your MP3 collection have pretty filenames and are neatly stored away in their appropriate genre folders. Unfortunately your old Winamp playlists no longer work, because Winamp is still looking for the old filenames, in their old locations. So let's fix that, too. Type in:

C:\> cd c:\Scripts   # or wherever you installed the tools
C:\Scripts> perl playlist-relocator.pl d:\Media\Playlists\AtWork.m3u f:\Media\MP3

The first parameter should be the playlist you wish to relocate, the second parameter is the path to your MP3 collection. Follow the instructions on the screen. The Playlist Relocator will automatically correct a playlist entry when it's sure about it, and ask you in uncertain cases. You may also select a to have the Playlist Relocator automatically pick the best match for this and all following entries.

Repeat this procedure for all playlists you wish to relocate.

Done!

Congratulations! You are now in posession of a drop dead gorgeous looking and neatly ordered MP3 collection. If you enjoyed this guide and tools I'd be happy to hear from you. My e-mail address is jaz@netalive.org.

Enjoy the music!

2003 by Henning Koch | Software will save us