Others have shown how to copy music files from an iPod to the local harddrive without costly software.
If you follow these instructions, you find yourself with a huge number of files in a single directory. All the files on the iPod have 4-letter names, such as BQEH.mp3. This is easy enough to fix, for instance with the free tool Id Renamer.
However, I was unable to find a utility that can distribute thousands of files into subdirectories, based on ID3 tags such as Artist and Album title. This is necessary not only because I like to organize my music collection in subfolders so that I can find things easier, but more importantly because an excessive number of files in a single directory is something that degrades the performance of most file systems.
Doing this by hand would have taken hours, so I decided to spend the time writing a little utility instead – MP3Filer. This is a Win32 command line application written in C++ that uses the Windows Media Format SDK 9. It took about 8 hours to write and test, and I am making it available for free under no license whatsoever.
This is work in progress, and I am planning to add functionality that will eventually allow me to rip the music from an iPod directly (without the help of another tool), name the files appropriately and store them in nicely organized folders on my harddrive. For now, all it does is moving MP3 files from the current directory into subdirectories (\author\album) and create the directories if they do not already exist.
What you need in order to use the utility:
- Download the zipped executable, MP3Filer.zip
- Unpack the file into a directory that contains MP3 files, or in a directory that is included in your system’s search path
 What you need in order to compile the utility:
- Download the project source files in zipped format, MP3Filer_Source.zip
- Visual Studio 2005
- The WMFSDK 9 from Microsoft
- Edit the Additional Include path and the Additional Library path in the project properties to match the location of the SDK files
And no, this is not an April-Fool’s-Day joke.