If you're anything like me, you've got about a million music files that aren't tagged properly. Specifically, they are missing their track number tags. (They have the track number as part of their file name though, such as "06-the_curse_of_feanor.ogg") This isn't a big deal if you use players like XMMS, which are capable of ordering files in alphabetical order by filename. Unfortunately, a recent trend in audio players has been to leave that capability out. (I'm looking at you, iTunes. But there are many guilty parties.)
Here's a script that will fix your dilemma. I wanted to do it all in Ruby, but I found that the Ruby TagLib library was simply too crappy to do so. So this script requires that vorbiscomment be installed. (It's in the vorbis-tools
package on Ubuntu.) Save what's below as allofogg.rb
#/usr/bin/env ruby require 'find' Find.find(ARGV[0]) do |f| next unless f.include? ARGV[1] || '.ogg' next unless f.include?('/') && (tracknum = f[f.rindex('/')+1 .. f.rindex('/') + 2].to_i) > 0 sanitized = f.gsub('(', '\(').gsub(')', '\)') `vorbiscomment -a #{sanitized} -t "tracknumber=#{tracknum}"` end
Syntax: allofogg.rb FILES [EXTENSION]
๛