ruby-mp3infoを使ってmp3をIDv1からIDv2に変換してみた
圧縮音楽が気がついたら100GBこしていました。1997年ぐらいからアルバムをしこしこエンコードしていたのが懐かしいです。Pentium2 233Mhzだと1時間のアルバムはエンコードに1時間かかるんだもんな。
というので、古いIDv1タグのMP3が数多く残っていたのでIDv2に変換したくなりました。MP3SuperTagEditorでも一括処理ってないので、色々調べてみたところ、rubygemにmp3のタグをいじれるものがありました。
- 早速インストール
$ gem install ruby-mp3info Successfully installed ruby-mp3info-0.6.13 1 gem installed Installing ri documentation for ruby-mp3info-0.6.13... Installing RDoc documentation for ruby-mp3info-0.6.13...
- 指定したディレクトリ以下のmp3を探して勝手にIDv2に変換するゴミコード。
require "rubygems" require "mp3info" require "find" def usage puts "#{__FILE__} [directory]"; exit end usage if ARGV.size == 0 usage unless File.directory?(ARGV[0]) def mp3_idv2_conv(mp3) puts "#{mp3.filename}: convert IDv2" mp3.tag2.TIT2 = mp3.tag.title mp3.tag2.TPE1 = mp3.tag.artist mp3.tag2.TALB = mp3.tag.album mp3.tag2.TCON = "(#{mp3.tag.genre.to_s})#{mp3.tag.genre_s}" mp3.tag2.TRCK = mp3.tag.tracknum end reg = /.*\.mp3$/ Find.find(ARGV[0]) {|x| next unless x =~ reg Mp3Info.open(x) do |mp3| mp3_idv2_conv(mp3) unless mp3.hastag2? end }
思ったより便利。一回使ったらもう使うことはないけどね。