2013年6月11日火曜日

LAME mp3 エンコーダーを使う(2)

前々回、LAME MP3 エンコーダーをインストールする方法を説明した。ターミナル.appでエンコードもできるし、その方が文字だけとは言え進捗も分かるのだが、CDを1枚分(それ以上)エンコードするとなると、連続(=バッチ処理)したいものである。

幸いMacにはAppleScriptというアプリケーション間のやりとりを橋渡しが得意なスクリプト言語が標準で添付されている。これから4回に分けてAppleScriptを用いてLAME MP3 エンコーダーとiTunesを連携させて、連続(=バッチ処理)エンコードする方法を説明していきたい。

AppleScriptでのおおまかな処理の手順は以下のようになる。

  1. iTunesからの曲情報の取得
  2. 曲情報をLAME MP3 エンコーダーの入力ファイル名と出力ファイル名に加工
  3. LAME MP3 エンコーダーを用いたエンコード
  4. エンコードしたファイルのiTunesへの登録

それでは、今回は「iTunesからの曲情報の取得」を説明する。

  1. 始めに「iTunesに命令する」と記述する
    tell
        application "iTunes"
    end tell
    
  2. 対象となる曲リストはiTunesのプレイリスト上で選択されたアイテムとする。これは次のように記述する
    set srcTrackList to selection
    

    これに加えてiTunesのプレイリスト上で何も選択されていない場合のエラー処理を記述する

    if (srcTrackList is {}) then
        say "Please Select 1 item"
        set errorFlag to true
    else
    end if
    
  3. プレイリストで選択されたアイテムから、その曲情報を取得する。これは次のように記述する

    set trackTagList to {}
    
    repeat with aTrack in srcTrackList
    tell aTrack to set trackTags to {name, artist, album artist, album, composer, comment, genre, track number, track count, year, disc number, disc count, bpm, compilation, duration, location}
    copy trackTags to end of trackTagList
    end repeat
    

これで trackTagList にiTunesのプレイリスト上で選択されたアイテムの曲情報が格納された状態となった。次回はこの曲情報をLAME MP3 エンコーダーの入力ファイル名と出力ファイル名に加工する手順を説明する。

0 件のコメント :

コメントを投稿