Sometimes, the wheel must be reinvented

It all began when I decided to put some order on my music directory, as it was a complete mess. So I put the correct tags and wrote a small application to move them around, mmm. And I was happy.

Then, I found some songs with accents, and that broke the filiesystem (ls was showing some pretty strange characters around). So, I did a very small change to change the encoding to utf8, but the user had to specify the original encoding, which wasn’t nice. But the weird characters went away, so I was happy.

Then, pyid3lib decided to broke very hard. I couldn’t move songs around because it was segfaulting, something not nice. I really don’t like using Python bindings: python extensions should be written in python! So, I decided to change the underlying mp3 lib to pytagger, which is a pure python library to read id3 tags. And it also has some nice features, like extracting the encoding from it. So, I could be happy again.

The problem is, pytagger has a lot of misses (sometimes, it can’t find the album title, or the track album, although they are there) and it is currently abandoned.

Right now I have some strange desire to reinvent the wheel and write yet another ID3 extraction library for Python. And also rewrite mmm, as the current encoding problems are driving me nuts.