読者です 読者をやめる 読者になる 読者になる

harry’s memorandum

おれおれメモ

ruby-mp3infoを使ってmp3をIDv1からIDv2に変換してみた

ruby

圧縮音楽が気がついたら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
}

思ったより便利。一回使ったらもう使うことはないけどね。

お世話になったヘルプ