Audio Hijack 3 から iTunes への自動登録

普段 radiko で受信したラジオ番組を Audio Hijack Pro で録音し、録音が完了すると iTunes に登録されるようになっている。iPhone と同期するとこれが転送されて通勤時や車の中でラジオ番組が聴けるというシステム。
先月末に Audio Hijack 3 がリリースされたのを知り試用を始めてみた。Pro の情報が引き継がれるようであるが、アプリケーション起動時や終了時に指定出来た AppleScript の設定がなくなってしまい、録音終了時に iTunes に自動登録する機能も実装されていない。
サポートに確認してみたが、将来的にはサポートする可能性があるものの現時点では用意されていない機能ということだった。残念。ちなみに radiko 側で使用しているアプリケーションである BRadiko, BBrowser0 は既に新しい Audio Hijack に対応済みのようである。
http://www.rogueamoeba.com/audiohijack/
http://www.ne.jp/asahi/mac/bui/radiko/

iTunes には特定のフォルダに格納すると自動的に iTunes に登録される機能が用意されているが、これだと再生ポイントを記憶する Bookmarkable を自動的に設定することが出来ない。ラジオ番組は最長2時間くらいなので、自分としてはこの設定は必須なのだ。これが必要ない場合は以下のリンクを参照して /iTunes/iTunes Media/iTunes に自動的に追加 というフォルダを録音ファイルの保存場所に指定すれば良い。
http://support.apple.com/ja-jp/HT201970

そこで自分でなんとかしてみることにした。Mac には特定のフォルダにフォルダアクションスクリプトを結びつけ、そのフォルダにファイルが保存されたら処理をさせることが出来る。

AppleScript はこんな感じ。ファイルのサイズを監視して変化が無くなったら録音終了と見なして iTunes に登録することを考えたが、録音が終わらずに恐らく End of File の情報が書き込まれていない状態ではフォルダアクションの対象とはならないようで、スクリプトは単純なもので済んだ。

on adding folder items to theFolder after receiving theList
	tell application "Finder"
		repeat with currentFile in theList
			tell application "iTunes"
				set aTrack to (add currentFile)
				set bookmarkable of aTrack to true
			end tell
		end repeat
	end tell
end adding folder items to

作成したスクリプトは以下のフォルダに格納する。自分は /Library 直下に格納したくないので後者に格納したが、ファインダーでは Library が見えないのでターミナル上で操作する必要がある。

/Library/Scripts/Folder Action Scripts/
/Users/ユーザ名/Library/Scripts/Folder Action Scripts

録音ファイルを保存するフォルダーで以下の操作を行う。

フォルダーを右クリック → サービス > フォルダーアクション設定...

登録したスクリプトファイルが一覧に表示されるのでこれを選択して登録する。これで iTunes に自動登録されるようになるはずだ。

P.S. Audio Hijack 3 の使用方法については別途ここでまとめている。
http://d.hatena.ne.jp/tono-p/20160104/p1

P.S. その2: 同タイミングで複数のファイルがこの処理を行おうとすると取りこぼしが
発生してしまう。Audio Hijack側のタイマーの終了時間を調整すれば回避可能ではあるが、可能であれば解決したいところ。