iTunes のアートワークを設定する Ruby スクリプト(without iTunes)

iTunes のアートワークを設定する Ruby スクリプト - mallowlabsの備忘録
iTunes を使ってアートワークを設定する Ruby スクリプトを書いた。
(アートワーク?アルバムアート?アルバムジャケット?)
今回 id3lib-ruby がアートワーク (APIC フレーム) を設定できることを知ったので
iTunes を使わずにアートワークを設定するスクリプトを書いてみた。


[set-album-art.rb]

#!ruby

#
# set album-art without iTunes
#  this script requires "id3lib-ruby"
#  ( #gem install id3lib-ruby )
#
# license: Public Domain
# update: 2008/02/27
# author: mallowlabs
# blog: http://d.hatena.ne.jp/mallowlabs/

require 'rubygems'
require 'id3lib'

ARGV.each do |path|
  full_path = File.expand_path(path)
  jpeg_path = File.dirname(full_path) + File::SEPARATOR + "folder.jpg"
  
  next unless FileTest.exist?(jpeg_path) # アートワークが無ければスキップ
  
  tag = ID3Lib::Tag.new(full_path)

  next unless tag.title    # title が取れないなら V2.4 だと思ってスキップ
  next if tag.frame(:APIC) # すでに アートワークがあればスキップ

  tag << {
    :id          => :APIC,
    :mimetype    => 'image/jpeg',
    :picturetype => 3,
    :description => '',
    :textenc     => 0,
    :data        => File.open(jpeg_path, "rb").read
  }

  tag.update!
  puts path
end


使い方

$ ruby set-album-art.rb *.mp3

とすると mp3 と同じディレクトリにある "folder.jpg" というファイルを
アートワークに設定する。


こちらも ID3 V2.4 は未対応。
"folder.jpg" を "folder.png" に
"image/jpeg" を "image/png" にすれば PNG でもいける。