AppleEvent の実装仕様#

Lyrics Master は AppleEvent をサポートしており、外部から以下の操作を行うことができます。

  • 指定した歌詞 URL を、Lyrics Master でダウンロードする

  • 指定したキーワードを使用して、Lyrics Master で検索する

  • iTunes との連携をオン / オフにする

  • Lyrics Master のバージョンを取得する

  • 歌詞エリアに表示された歌詞を取得

AppleScript 対応について#

バージョン 2.3.7 以降で、試験的に AppleScript への対応を行っています。 詳細は AppleScript エディタより用語説明を開いてご確認ください。 AppleScript 対応は試験的な実装のため、今後のバージョンで仕様が変更されることがあります。 なお、AppleEvent を AppleScript から呼び出すことも可能です。以下のサンプルをご覧ください。

AppleEvent 仕様#

各項目の (2.1+) などの表記は、その AppleEvent がサポートされている Lyrics Master のバージョンを表します。 また、<String> などの表記は型を表します。

Event Class "LMX!"#

  • Event ID "dnld" = ダウンロード (2.0+)

    • Direct Parameter: <String> = URL

    • Parameters: なし

  • Event ID "srch" = 検索 (2.0+)

    • Direct Parameter: なし

    • Parameters: 検索パラメータとして、以下の項目を 1 - 4 個指定します。

      • Class "kTtl" <String> = 曲名

      • Class "kArt" <String> = アーティスト名

      • Class "kLrc" <String> = 歌いだし

      • Class "kTVT" <String> = テレビ番組名

  • Event ID "iTC1" = iTunes 連携を開始 (2.1+)

    • Direct Parameter: なし

    • Parameters: なし

  • Event ID "iTC0" = iTunes 連携を停止 (2.1+)

    • Direct Parameter: なし

    • Parameters: なし

  • Event ID "vers" = Lyrics Master のバージョンを取得 (2.2+)

    • Direct Parameter: なし

    • Parameters: なし

    • Reply: <real>

  • Event ID "done" = 歌詞エリアのテキストが取得可能かどうかを取得 (2.2+)

    • Direct Parameter: なし

    • Parameters: なし

    • Reply: <boolean>

  • Event ID "gtxt" = 歌詞エリアに表示されているテキストを取得 (2.2+)

    • Direct Parameter: なし

    • Parameters: 取得したい項目として、以下の項目を 0 - 1 個指定します。 無指定の場合は歌詞エリアのテキスト全体が戻ります。

      • Class "kTtl" <boolean> = 曲名

      • Class "kArt" <boolean> = アーティスト名

      • Class "kLrc" <boolean> = 歌詞

    • Reply: <String>

参考情報#

  • URL のダウンロードについては、対応しているサイトの URL を渡してください。 それ以外の URL については、環境設定の「未知のサイトからもダウンロードを試みる」の設定内容に準じて処理されます。

  • 検索については、1 つ以上 4 つ以下の範囲内で、任意の個数の検索キーワードを与えることができます。 ただし、ユーザの選択している歌詞サイトの種類によっては、与えられたキーワードで検索が行えない場合がありますのでご注意ください。

  • Lyrics Master 2.x の特定にはアプリケーション識別子 (Application Identifier) com.kenichimaehashi.lyricsmaster を使用してください。 バージョン 2.5 以降では、クリエータコード LMX! は使用できません。

  • 複数の Lyrics Master がインストールされている場合、および 1.x の Lyrics Master がインストールされている場合は、正しい (最新の) バージョンが起動できない場合があります。

AppleScript サンプル#

-- アプリケーション識別子から Lyrics Master を起動
tell application "Finder"
    open (application file id "com.kenichimaehashi.lyricsmaster")
end tell

-- 指定された歌詞の URL をダウンロード
tell application "Lyrics Master"
    «event LMX!dnld» "http://www.utamap.com/showkasi.php?surl=B05879"
end tell

-- 曲名から検索
tell application "Lyrics Master"
    «event LMX!srch» given «class kTtl»:"さくらんぼ"
end tell

-- 曲名とアーティスト名から検索
tell application "Lyrics Master"
    «event LMX!srch» given «class kTtl»:"さくらんぼ", «class kArt»:"大塚愛"
end tell

-- iTunes との連携を開始する
tell application "Lyrics Master"
    «event LMX!iTC1»
end tell

-- iTunes との連携を停止する
tell application "Lyrics Master"
    «event LMX!iTC0»
end tell

-- Lyrics Master のバージョンを取得
set errorOccurred to false
tell application "Lyrics Master"
    try
        set theVersion to «event LMX!vers»
    on error
        set errorOccurred to true
    end try
end tell

if errorOccurred then
    display dialog "Lyrics Master のバージョンが 2.2 より古いため、バージョンを取得できません。" buttons {"Cancel"} default button 1 with icon caution
else
    display dialog "Lyrics Master のバージョンは " & (theVersion as string) & " です。" buttons {"OK"} default button 1 with icon note
end if

-- ダウンロードした歌詞(歌詞エリアのテキスト全体)を取得
tell application "Lyrics Master"
    if «event LMX!done» then
        set theLyrics to «event LMX!gtxt»
    end if
end tell
display dialog theLyrics with icon note

-- ダウンロードした歌詞のタイトルを取得して表示
tell application "Lyrics Master"
    if «event LMX!done» then
        set theTitle to «event LMX!gtxt» with «class kTtl»
    end if
end tell
display dialog theTitle with icon note

互換性#

上記の AppleEvent 仕様は、Lyrics Master 1.x における仕様と異なります。 また、従来のテキストファイルを利用した連携方法はご利用いただけません。