AppleScriptでアートワークなど自動貼り付け

毎週の会議録をiTunes11で管理しています。

新しいファイルを追加するたびにスクリプトを実行してファイル名以外の情報(アーティスト、アルバム、ジャンル、年)を自動入力していますが、これにアートワークの自動貼り付けも追加できないでしょうか?

いままでアートワークファイルは、前の同じアルバムのファイルを探してコピペしていました。

ご存知の方がおられましたら教えて下さい。

下記が現在使用しているスクリプトです。

tell application "iTunes"

activate

set selectedTracks to selection

if selectedTracks is not {} then

ignoring case

set totalTrack to count selectedTracks

repeat with i from 1 to totalTrack

tell item i of selectedTracks

set album to "アルバム名"

set artist to "アーティスト名"

set genre to "ジャンル名"

set year to 2014

end tell

end repeat

end ignoring

end if

end tell

あとできましたら、「メディアの種類」を「オーディオブック」に、「再生位置を記憶」と「シャッフル時にスキップ」を「はい」にもしたいので、これもスクリプトの作り方がわかりましたら教えて下さい。

よろしくお願いします。

投稿日 2014/02/02 20:07

返信
返信: 6

2014/02/02 22:22 藤井浩 への返信

とりあえず iTunes で選択した項目にアートワークを設定する AppleScript です。"プレイリスト名" のところは適宜書き換えてください。また、変数名等もお好きなように変更してください。


on run
    try
       
        tell application "iTunes"
           
            -- アートワークを取得するトラックを指定
            set t1 to track 1 of playlist "プレイリスト名"
           
            -- アートワークのデータを取得 (結構重い)
            set d1 to raw data of artwork 1 of t1
           
            -- 選択項目を取得
            set ary to selection
           
            -- アートワークを設定
            repeat with i in ary
                if class of i is file track then
                    set data of artwork 1 of i to d1
                end if
            end repeat
           
        end tell
       
    on error err_msg
        return err_msg
    end try
end run

2014/02/02 23:20 藤井浩 への返信

「メディアの種類」を「オーディオブック」に、「再生位置を記憶」と「シャッフル時にスキップ」を「はい」にもしたいので、


ちょっとやってみましたが、iTunes の挙動がちょっと怪しいので、やめておきます。もしやるんだったら GUI スクリプティングで...ということになります。

2014/02/02 23:45 Hiro__S への返信

画像ファイルをダイアログで選択 → iTunes で選択した項目のアートワークに設定...とするなら、こんな感じ。画像ファイルの在処が決まってる場合は、「画像ファイルを選択」の部分を set img_path to "HFS+形式のパス" as alias とすると良いでしょう。


on run
    try
      
        tell application "iTunes"
          
            -- 画像ファイルを選択
            set uti_list to {"public.image"}
            set img_path to choose file of type uti_list without invisibles
          
            -- 画像をアートワーク形式として読み込む
            set img to read img_path as artwork
          
            -- 選択項目を取得
            set ary to selection
          
            -- アートワークを設定する
            repeat with i in ary
                if class of i is file track then
                    set data of artwork 1 of i to img
                end if
            end repeat
          
        end tell
      
    on error err_msg
        return err_msg
    end try
end run

2014/02/03 00:07 Hiro__S への返信

Hiro.Sさん

ありがとうございます。

最初に回答頂いたスクリプトを試してみました。

見事にアートワークを自動取得できました。

ただ、いままで使っているスクリプトと統合したいのですが、どうすれば良いでしょか?


次に回答頂いたスクリプトも試してみようとしたのですが、

既存のファイルからアートワークのみを抽出する方法がわからず試せていません。

よろしくお願いします。

2014/02/03 00:54 藤井浩 への返信

ただ、いままで使っているスクリプトと統合したいのですが、どうすれば良いでしょか?



こんな感じでどうでしょうか?

tell application "iTunes"
    activate
  
    -- アートワークを取得するトラックを指定
    set t1 to track 1 of playlist "プレイリスト名"
  
    -- アートワークのデータを取得
    set d1 to raw data of artwork 1 of t1
  
    set selectedTracks to selection
  
    if selectedTracks is not {} then
        set totalTrack to count selectedTracks
      
        repeat with i from 1 to totalTrack
            tell item i of selectedTracks
                set data of artwork 1 to d1 -- アートワークを設定
                set album to "アルバム名"
                set artist to "アーティスト名"
                set genre to "ジャンル名"
                set year to 2014
            end tell
        end repeat
      
    end if
end tell


既存のファイルからアートワークのみを抽出する方法がわからず試せていません。


iTunes で一曲だけ選択 → 情報を見る → アートワーク → 画像をデスクトップ等にドラッグ...とすると画像が抽出できます。これを適当な場所に置いといて使い回せば良いと思います。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

AppleScriptでアートワークなど自動貼り付け

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。