December 12, 2013

ID3 Blues

I primarily use Amarok to play my music. One of my long standing gripe about Amarok is it's inability to read the lyrics from the id3 tags. This was not a major issue since the Amarok's lyrics plugins were able to fetch the lyrics from some external sites. However the online retrieval didn't work when I was listening to some new Malayalam songs[1] as the lyrics was not available online. That was when I tried to modify an Amarok plug in to read lyrics from the tags.

Since I had no experience with Qt Script, extracting lyrics using Qt Script  within the plug in was out of question. I thought of extracting the lyrics from the id3 tags using some utilities to a file and read it from the plug in. Tried to extract the lyrics using id3info and id3v2 but no lyrics[2]! Then I briefly considered writing my on program to extract the USLT frame scrapped the idea when I realized how crazy  the id3 format was.

Now I know why Amarok developers haven't implemented the feature to read the lyrics from the id3 tag. No wonder people consider it is easy to fetch lyrics from online instead of reading from the tags[3]. While reading about the id3 tags, I came across this post from Coding Horror - I couldn't agree more. I guess it is high time someone come up with something simple tagging format instead of the id3 mess.

[1] The songs are from It is a nice album released under CC-BY-NC-ND license.
[2] To my surprise exiftool was able to extract the lyrics from the mp3 files. However I could not find a way to trigger the script that extract the lyrics. Finally I had to trigger the script from conky and the plugin was able to read the extracted lyrics from the output file. Since this was very inefficient, I manually copied the lyrics to Amarok's lyrics tab and solved the problem for the time being.
[3] Clementine & mpd fetch lyrics from online lyrics databases.

No comments:

Post a Comment