id3autosort is a lightweight, multi-platform, Python-based script that allows the user to organize their MP3 library based on the ID3 information stored inside their MP3s. It supports all current ID3 tag implementations, including ID3v1, ID3v1.1, ID3v2.2, ID3v2.3 and ID3v2.4.

The idea for id3autosort dates back to summer 2007. After discovering the joys of LimeWire,my music library had ballooned to over 800 mp3s. I realized that I could find a specific song easily when listening to music on my computer, since my music player sorted by ID3 tags, but when I was selecting songs to listen to on my mp3 player I realized just how unorganized my library really was.

With a determination to organize my collection I embarked on this venture, planning to each mp3 by artist and album. I realized that this could take days or even weeks by hand, so I set out to find a program to do this for me. When I found that there were no tag-based mp3-sorting programs for Linux, I decided to write one myself. Unfortunately I was not proficient in Python back then, and while I decided to organize my library by hand then the idea remained in my mind.

Flash forward to 2009: I had just downloaded a free compilation album and wanted to get it in my library, but I didn't want to do for this album what I did for my library two years ago. At this point I remember this project from two years ago and, being much better at Python, decide to revisit it to see what I could do. Two days later, id3autosort was born.

  • The ID3 reader this script is based on can only understand the English alphabet and Arabic numerials.
  • The ID3 reader this script is based on uses "None" to say when there is no tag corresponding to the one requested and to skip the mp3; therefore music by the band None will not be sorted.