2011-01-23 4 views
1

私はAppleScriptを使ってiTunesをスクリプト化する方法を探しています。トラックのタイトル名とアーティストを大量に操作したいiTunesでこの情報を操作しないと、iTunesデータベースが更新されないことがわかっている限り、いくつかのid3ツールを使用することは役に立ちません。 AppleScriptを使ってコードを書く方法がわからず、これに潜入する時間が本当にないのですが、javascript、lua、bash、phpを使ってこの作業を行う方法はありますか?あなたがJavaScriptOSAで、JavaScriptからのAppleイベントを送信することができますAppleScriptなしでitunesをスクリプト化しますか?

おかげで、

+0

MacRubyでiTunesを制御する:http://merbist.com/2010/01/17/controlling-itunes-with-macruby/ – miku

+0

ありがとう、私はこれを見ています – aurora

答えて

1

少なくとも1日はAppleScriptを学ぶことをお勧めします。重要なことは、OS XのGUI間アプリケーション通信はApple Eventsを介して行われ、その主な言語AppleScriptの構造に従っていることです。 Apple Eventsをさまざまな言語から呼び出すことができるブリッジがたくさんありますが、まずApple Eventsの概念を理解する必要があります。だから、少なくともあなたはAppleScriptにある程度の知識が必要です。

これはCocoaの場合と同じです。多くの言語でCocoaアプリケーションをコーディングできますが、ほとんどのドキュメントとコンセプトはObjective-Cに基づいています。 Cocoaを他の言語でコーディングする前に、少なくともObjective-Cに精通している必要があります。

Apple Events/AppleScriptシステムの概要をご紹介します。

各アプリケーションはオブジェクト指向システムを実装し、辞書として外部に公開しています。これはAppleScriptエディタで読むことができます。 AppleScriptエディタを開き、「ファイル」→「辞書を開く」を選択し、「iTunes」を選択します。ここでは、コマンド、クラス、それらのクラスのメソッドなどのリストが表示されます。次に、AppleScriptやRuby、またはLuaから、これらのオブジェクトやメソッドにアクセスします。

iTunesの選択したエントリの名前を「A-B」から「B-A」に変更したいとします。その後、コードは

set text item delimiters to "-" 
tell application "iTunes"   -- following statements are targeted to iTunes 
repeat with entry in selection -- "selection" is a concept implemented in iTunes 
    set s to name of entry  -- copy the name of entry to a local string s 
    set x to text items of s -- split the string s to a list according to text item delimiters 
    set y to {item 2 of x, item 1 of x} -- construct another list 
    set name of entry to y as string -- set the name. Note that "as string" adds the delimiters 
end repeat 
end tell 

だろうはいのAppleScriptの文法は少し奇妙ですが、それは基本的に通常の命令型言語と1対1で対応しています。あなたが混乱している場合はthe official language guideを参照してください。優れたOSAX(AppleScriptの拡張システム)のないAppleScriptのテキスト操作は雑用です。ですから、まずAppleScriptの概念に慣れ親しんでから、Rubyやお気に入りの言語から使用するのは悪い考えではないことに同意します。

しかし、AppleScriptエディターで辞書を開くことを忘れないでください。これは、各アプリの実装やシステムへの公開場所を見つけるためです。

+0

ありがとうございました。 applescriptは実際には非常に奇妙な言語です。あなたのサンプルスクリプトはとても役に立ちました。私はあなたの例と言語ガイドと一緒に働くようになった! – aurora

0

。しかし、より最新でサポートされているので、appscript(Python、Ruby)を調査することをお勧めします。

+0

私は読んだ後にapplescriptで試してみることにしましたゆうじの答え。とにかくおかげさまで、私はこれを将来のために心に留めておきます。 – aurora

関連する問題