Well, how about the revolutionary idea of using ID3v2 tags when they are present?
They are quite easy to parse, trust me!