iTunesとAppleScript
引っ越し後の部屋の整理にあわせて、まだiTunesに取り込んでいなかった音楽CDを大量に取り込み始めている(といっても、まだまだ道のりは長い。現在、3766曲で約16GBだが、全部取り込んだら数十GBにはなるだろう)
(元Simon & Garfunkelの)Paul Simon、「Heats and Bones」というアルバムをリッピングしている時、同アルバム中のお気に入り曲、「Rene and Georgette Magritte with their Dog after the War」って、もしかしてこれまでiTunesに登録した曲の中で一番、長い曲名なんじゃないか?と思い立った
一度、気になると止まらない。とはいえ、iTunesで曲の並べ替えをしても、ABC順はわかっても曲名の長い順まではわからない。
そこでAppleScriptを使って試してみることにしたが、AppleScriptがどうやってもうまく動かない。
試しにApple社のAppleScriptホームページからサンプルスクリプトをダウンロードしてみるがこれもうまく動かない。さんざん、検証した結果、iTunesを日本語モードで動かすと
「Library」が「ライブラリ」に変わるのが原因だとわかった。
Finderとかの特殊フォルダは、英語指定でもちゃんとローカライズされたフォルダを認識してくれるが、iTunesではローカライズ後のライブラリ名で指定しなければならないようだ(これは「ライブラリ」そのものが改名できる仕様になっているからだろう)
ここまでくればあとははやいと思ってAppleScriptを書いてみた...
最適化も何もせず、万が一、同着1位があった場合は先にひっかかった方だけが生き残るというシンプルなスクリプトだが、実行してみてあまりの遅さに愕然...たかだか3800曲に1時間以上もかかっている(私のiMacのAppleEvent処理がおかしいだけ?)
これならちょっと作業的に面倒だけれど、ライブラリーをXML形式で書き出してPerlか何かのスクリプトで処理した方がよっぽど速そう、というわけでことの真相はいまだに掴めていない...
しかし、iTunes 3以降つくづく思うけれど、自分の音楽ライブラリーの統計をつくったり、見たりするのは結構おもしろい