- 変更点
タグ付け対象をプレイリスト単位ではなく、選択トラックに変更。
前回のはカレントプレイリスト内のトラックに対してタグ付けしていったのですが、
この方法だとライブラリを表示してるときにまちがって実行してしまうと悲惨なことになってしまう。
あと、数曲だけタグ付けしたいって時にわざわざプレイリストを作成しないといけないのが面倒でした。
今回の改良でそのあたりの不便さが解消されているはずです。
- 苦労したところ
「選択している曲に対して」ということをやるだけでかなりググりまくりました(^^ゞ
RDocに selection() OSA::ITunes::Application っていうのがあったのですが
戻り値がよくわからなかったんです。
で見つけました。
selected_tracks = itunes.selection.get
これで選択トラックが配列で返ってきますので煮るなり焼くなりと。
- 今後の課題
iTunesのスクリプトメニューから実行できるようにしたい。
ためしにrbファイルのままぶち込んでみたが表示すらされませんでした。orz
AutomatorでUNIXコマンドを実行するコマンド部分にターミナルに打ち込んでた文字をコピペしてみたけどエラー。orz
だれかいい方法しりませんか?
#!/usr/bin/env ruby # SortByLanguage_iTunes_Selection # Created by Stewie on 2007-02-05. begin require 'rubygems'; rescue LoadError; end $KCODE = "UTF8" require 'rbosa' OSA.utf8_strings = true itunes = OSA.app('iTunes') #選択されているトラックを対象とする selected_tracks = itunes.selection.get selected_tracks.each{ |track| pre_comment = track.comment() puts "曲名「#{track.name}」" puts "アーティスト名「#{track.artist}」" if /\[Japanese\]|\[English\]/ =~ pre_comment p "分類済み" p pre_comment else p "未分類" kashi = track.lyrics() if kashi.length == 0 p "歌詞がありません" elsif count = 0 kashi.scan(/[a-zA-Z0-9\']/) { count += 1 } puts "歌詞サイズ #{kashi.length}" puts "アルファベットにマッチ #{count}" par = (count.to_f / kashi.length.to_f)*100.to_f p "#{par.round}%" if par.round >= 65 track.comment = "[English]" +"\r\n" +pre_comment p "洋楽に設定" elsif track.comment = "[Japanese]" +"\r\n" + pre_comment p "邦楽に設定" end end end }