再生位置を記憶するAACを手軽に作成


iTunesiPodで使うAAC形式は再生位置の記憶機能がある(ネタ元:Nitram+Nunca Alternative)。これを使うと、ある曲の途中で別の曲を再生し再度元の曲を再生した時、以前に聞いていた位置を覚えていてくれる。スピーチものを聞くのがとても便利になるのだ。 この機能を利用するには、AACファイルのファイルタイプをMac上で変更するだけだが、個別のファイルをいちいち編集するのも面倒だし、シェアウェアを買うほどでもないなあと思ったので、スクリプトで処理することにした。といっても、Appleが公開しているサンプルスクリプト(Change to AAC)をちょっと書き換えただけ。iTunesで作成されたAACファイルをドラッグ&ドロップすると、そのファイルのファイルタイプを”M4B “に書き換えるというものだ(Mac OS X用。元ファイルを直接変更することに注意)。iPodと同期させた後にファイルタイプを書き換えてもアップデートでは更新されないようなので、同期させる前に使った方がよいだろう。あ、そうそうiTunesのライブラリやプレイリストからファイルの実体をFinderで表示するには、曲を選択して「command」+「R」キーを押せばいい。 私はAppleScriptをいじるのがはじめてで、大ボケをかましている可能性もあるのだけど、興味がある人は自己責任でどうぞ(ダウンロードはこちらから)。

実は、上のスクリプトを作る前、MP3ファイルをドラッグ&ドロップすれば、直接"M4B "のAACファイルに変換してくれるスクリプトを書いてみた(もちろん、これもサンプルスクリプトを書き換えただけ)。QuickTime Playerの機能を利用したもので、書き出し自体は成功したのだが、ID3タグの情報がきれいさっぱりなくなっていた。どうもID3タグを扱うには[iTunes](http://www.apple.com/jp/itunes/)上でないとダメらしい。ところが、iTunesのAppleScript用コマンド辞書を見てみると、ライブラリにないファイルを直接AACに変換するコマンドが見当たらない。 [Doug's AppleScripts for iTunes](http://www.malcolmadams.com/itunes/index.php)にある[「Drop A Few My Way」](http://www.malcolmadams.com/itunes/scripts/scripts07.php?page=1#dropafewmyway)というスクリプトでは、かなりトリッキーなことをしてMP3からの直接変換を実現している。ドラッグ&ドロップしたファイルを一度iTunesのライブラリに登録して変換し、その後ライブラリから削除、シェルスクリプトを利用してファイルを移動しているらしい。このスクリプトを修正すれば、MP3からAAC(m4b)に直接変換することもできるはずだ。

AppleScriptは確かに面白そうだけど、Mac OS X 10.3.3に搭載されているスクリプトエディタはバグがあって、本当に困ってしまう。文を2行に分ける時に使う改行マークがあると動作しなかったりする。あと、英語に近い記述ができるのはいいが、例えばテキスト区切り文字のシステム変数を変更するためだけに”AppleScript’s text item delimiters”と入力しなければならないのは面倒。どこからどこまでが1つの変数やコマンドなのかもわかりにくいんじゃないかと思うがどうなんだろう。

(2004年5月3日追記) Nitram+Nuncaさんが、iTunesから直接動作するようにしたスクリプトを公開してくれた(ご連絡ありがとうございます!>Nitram+Nuncaさん)。私のスクリプトより断然便利なので、こちらを利用するのが吉。

(宣伝) 本文記事でも書いたように、AppleはサンプルのAppleScriptを公開しています。しかし、Pantherのスクリプトエディタにバグがあるため、日本語環境では動かないものが少なくありません。 『Mac OS Xビュンビュンテクニック (iLife’04編) 』では、日本語環境でも問題なく動くように改良し、オリジナル版のバグを修正(+日本語化)したiLife用サンプルスクリプトを紹介しています。iTunesで再生している曲のアーティストがほかにどんな曲を出しているか調べたり、iDVDの制作作業をもっと便利にするスクリプトなど、要注目です。