MacでStream Deck Miniを使い艦これをしながらApple MusicやYouTube Musicを操作する方法(部分的成功)
#StreamDeckMini #艦これ #Mac #AppleMusic #YouTubeMusic #トラブルシュート #成功 #目標未達
こんにちは、如月翔也(@showya_kiss)です。
今日は購入したばかりのelgatoの「Stream Deck Mini」で、「艦これをしながら」「メディアキーでApple Music/YouTube Musicを操作」しようとしたら、メディアキー入力が艦これに吸われて音楽が操作できなくなったので、それをトラブルシュートしました。
結論から言うと、以下で問題は解決します。
- Apple Musicはelgatoのプラグインから「Apple Music」を検索してそこから早戻し・再生/停止・早送りキーをキーにバインドすればOK
- YouTube Musicは以下手順が必要
- YouTube Musicの非公式アプリを入れる(Youtube Music for Desktop)。まあ非公式なので自己責任で。課金してないのにダウンロードとかしたらBANの恐れがあるので注意して下さい。
- 早戻し・再生/停止・早送りはApple Scriptと遅延、ホットキーが必要なのでマルチアクションで実装
- Apple Scriptを使うためにプラグインから「Apple Script」を検索して「Mac Automation」プラグインを導入。
- 使うAppleScriptは1種類のみ。コードは後で示します。
- これでApple Music用のボタン、YouTube Music用のボタンは実装可能で、艦これを起動していても艦これにキーが吸われないので問題なく動作可能。
以上です。
ただ、僕としては「一つのキーで起動しているアプリを判別してApple Musicを起動しているならApple Musicを操作、YouTube Musicを起動しているならYouTube Musicを操作」としたかったんですが、それをするためのApple Scriptが完璧にも関わらずホットキーを発したり発さなかったりして動作が不安定なため、「1つのキーでApple MusicとYouTube Musicを操作」は諦めました。なので、最終目標は未達です。
これについては原因は後で説明します。
まず成功事例
まず成功事例を説明します。今回はこう言う形で実装します。
- elgato Stream Deck Miniは6ボタン。1ページを丸ごと音楽操作に使う
- 構成は以下。
- 上段はApple Musicで「早戻し」「再生/停止」「早送り」「Apple Music起動」
- 下段はYouTube Music for Desktopで「早戻し」「再生/停止」「早送り」「YouTube Music for Desktop起動」
- ページ構成は自由にして下さい。
Apple Musicの設定
最初に、Apple Musicの操作については楽勝です。
elgato Stream Deckアプリを起動し、プラグインで「Apple Music」を検索すると「Apple Music」というプラグインが出てきます。これを入手して、検索窓をバツボタンで消すと「Apple Music」という設定項目が出てきますので、その中で「早戻し」「再生/停止」「早送り」がありますのでそのままStream Deck Miniのボタンに移動して書き換えて終了です。
YouTube Music for Desktopの設定
YouTube Music for Desktopを入れる
まずYouTube Musicの非公式アプリを入れる(Youtube Music for Desktop)必要があります。これはそのまま起動しようとすると「ゴミ箱に入れる」表示で起動しないので、ターミナル(アプリケーション→ユーティリティ→ターミナル)から以下コマンドを入力して下さい。
xattr -rd com.apple.quarantine "/Applications/Youtube Music Desktop.app"
ちなみに、本当は「YouTube Music Desktop App」というアプリがあり、これを使うとelgatoのプラグインから操作できるボタンが入手可能なんですが、「YouTube Music Desktop App」自体が耐えられないほど重いので今回は採用しませんでした。
これで「YouTube Music for Desktop」アプリが設定できたので、続いてそれを操作するボタンを作成します。
操作ボタンを作成する前にプラグインを入れる
操作ボタンを使うのにどうしてもApple Scriptが必要なので、elgato Stream Deckのアプリからプラグインを選び「Apple Script」を検索すると「Mac Automation」というプラグインが検索にでてくるのでこれを入手します。
その後検索窓を閉じるとボタン操作の中に「Mac Automation」という項目があり、中に「Run Apple Script(Script)」と書かれたコマンドが見えます。
ここまでくれば準備万端です。後は使い回すApple Scriptを作りましょう。
Apple Scriptを作る
Apple Scriptを使うのは、「あとでホットキーを送る時にYouTube Music for Desktopが最前面に出ていないとホットキーを受け取れない」ので、「Apple ScriptでYouTube Music for Desktopを最前面に出す」ために使います。
エディタで以下のコードをコピペして、「Front.applescript」(名前はどうでもいいですが拡張子はapplescriptにして下さい)として保存して下さい。
tell application "System Events"
if exists process "YouTube Music for Desktop" then
tell application "YouTube Music for Desktop" to activate
end if
end tell
これはただ単純に「YouTube Music for Desktop」を最前面に出してくるだけの簡単なAppleScriptです。
ではYouTube Music for Desktopのキーを設定しましょう。
キーの動作としては、マルチアクションで以下を設定する形になります。
- まずApple Scriptで「YouTube Music for Desktop」を最前面にする。
- ディレイを300ミリ秒(0.3秒)かける。これで続くホットキーを送る時には確実に「YouTube Music for Desktop」が最前面に来ているので誤爆がなくなる。
- 最後にホットキーで「k」(早戻し)、「Space」(再生/停止)「j」(早送り)を送る
です。順番に操作を説明します。
- elgato Stream Deckで指定したいボタンを選び、そこに「マルチアクション」をドラッグアンドドロップする。
- マルチアクション窓が開くので、最初に「Mac Automation」の「Apple Script(Script)」をドラッグアンドドロップする。
- 他は全無視でScript Pathで先程作った「Front.AppleScript」を選択する。
- 次に「マルチアクション」に「遅延」が表示されているのでそれをドラックアンドドロップする。
- 他は全無視で「遅延時間」を「300」ミリ秒にする
- 次に「システム」から「ホットキー」をドラッグアンドドロップする。
- 他は全無視で「ホットキー」が「クリックして割り当て」になっているのでそこをクリック、「j」か「Space」か「k」を入力。(kで早戻し、Spaceで再生/停止、jで早送りボタンになります)
- マルチアクションを閉じ、アイコンを適切なものに変更すればボタン1個完成です。j/k/Spaceで3つボタンを作って下さい。
これで完成です。成功事例はここまでなので、これで満足の方はお帰り下さい。
以降は失敗記録なので試行錯誤の経緯と「何故駄目だったか」に興味がある方だけ御覧下さい。
失敗録
結局上記では「Apple Musc用のボタン3つ」と「YouTube Music for Desktop用のボタン3つ」を用意してelgato Stream Deck Miniの1ページ6ボタンを埋めようという作戦に至ったのですが、「Apple Scriptが使えるなら条件分岐ができるので、起動していない場合は無視、という前提を入れる事で、マルチアクションで1ボタンにApple Music用の命令とYouTube Music for Desktop用の命令を入れる事で、起動している方のアプリにだけ命令を送れないか」と思ったんですね。そうすると1つのキーでアプリ2個を使い分けられ、そもそも存在したメディアキーの「想定動作」に近くなるんです(しかも艦これに入力が吸われない)。
そこでApple Scriptを組んだのですが、結局「全く安定せずうまく行きませんでした」。原因を切り分けた結果、Apple Musicは割と素直にApple Scriptからの命令を受け取ってくれるのですが、YouTube Music for DesktopについてはApple Scriptからのホットキーを全く受け取ってくれず、YouTube Music for Desktopの動作がどうしてもできないのと、あとそれに引っ張られてYouTube Music for Desktopを動かした後はApple Musicすら上手く動作しなくなったのです。
これは、実はApple Scriptから送るホットキーをYouTube Music for Desktopが受け取ってくれないのが原因で、受け取ってくれない原因はMacのApple Scriptの仕様によるものでした。
つまり、仕様的にホットキーでの操作はApple Scriptでは動作しないんです(正確に言うとホットキーを受け取るアプリ・ブラウザが安定しないため狙ったアプリにホットキーが届くことが保証できないんです)。Apple Musicが上手く行っていたのはホットキーではなく「previous music」などホットキーではなく正式な命令を送っていたからなんですね。故に、elgato Stream Deck系統をバリバリに使いたい場合どうしてもApple Scriptは避けて通れないんですが、Apple Scriptでは「狙ったアプリにホットキーを送るのは至難の技(僕にはできなかった)」事実だけ抑えておいて下さい。
今回上記の方法でうまく行っているのは「Apple Acriptでは最前面にアプリを移動する」しか担当せず、実際のホットキーはelgatoのトリガーからホットキーを送っているからです。逆に言うとelgatoのトリガーからしかホットキーが送れないので、Apple Scriptの条件分岐の中に取り込む事ができず、故に「1キーで起動しているアプリを判断して」までは達成できるのですが、「ホットキーを送って動作させる」が不可能だったので今回はそれを諦めたのです。
このあたり、特にApple Scriptでは「狙ったアプリにホットキーを送るのは至難の技(僕にはできなかった)」という事実はStream Deckを使っていく中で結構クリティカルな問題なので、弄り倒す人に取っては意味のある情報だと思います。
以上、失敗談でした。
終わりに
elgato Stream Deck MiniについてはAmazonセールで安かったので衝動買いしたんですが、かなり便利なので気に入っています。今セッティングする中で問題に出会ったので先に共有しましたが後でレビューを上げる予定です。
レビューを上げたらここにリンクを貼りますね。
では、今日はMacでStream Deck Miniを使い艦これをしながらApple MusicやYouTube Musicを操作する方法についてのお話でした。
誰かのお役に立てたら幸いです。
-
Cursorは物書きにもベストかもしれない
記事がありません
この記事を書いた人 Wrote this article
devildaredevil 男性
ガジェットとAppleとTRPGが大好きな中年男です。文章をとにかく書くのが好きなので毎日のように色々なブログで文章を打ちまくっています。もし何か心に引っかかるものがあれば私のTwitterをフォローして頂けると更新情報が流れます。