AirPlayディスプレイの接続と切断を自動化するスクリプト
AirPlayディスプレイの接続と切断を自動化する方法を解説します。
コピペで使えるスクリプトなので、気になる人は活用してください。
動作確認の環境
- MacBook Air M1 2020
∟ macOS Monterey 12.6 - Apple TV 4K 2017
∟ tvOS 16.0(20J373) - iPad Pro 12.9 M1 2020
∟ iPadOS 15.7
使用するツール
「アプリケーション」→「ユーティリティー」の中
どうしても動かない時に使用するツール
「アプリケーション」の中
「アプリケーション」→「ユーティリティー」の中
AirPlay自動化の手順
すべてのMacに標準搭載されている「AppleScript」を使用して自動化します。
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
delay 2
tell application "System Events"
tell application process "System Preferences"
repeat until exists window "ディスプレイ"
end repeat
tell pop up button 1 of window 1
click
click menu item "Apple TV 4K" of menu 1
delay 2
end tell
end tell
end tell
tell application "System Preferences"
quit
end tell
「スクリプトエディタ」を起動してコードをコピペする。
12行目の”Apple TV 4K”の部分を自分の環境に合わせて変更。
Apple TVだけでなく、iPadにも接続可能です。
右上の再生ボタンを押して動作をチェック。
AirPlayに接続していない状態なら接続され、接続中なら切れます。
- 「ファイル」から「保存」を選ぶ
- 適当な名前を付けて、保存先を好きな場所に変更
- ファイルフォーマットを「アプリケーション」にする
アプリの初回起動時にアクセス権を要求するダイアログが表示されます。
「OK」を押して「設定」→「セキュリティーとプライバシー」を開く↓
作成したスクリプトにチェックを入れればOK。
アプリ化されたスクリプトを起動して、AirPlayのON/OFFができればOKです。
お疲れさまでした!
どうしても動かない時の対処方法
「補助アクセスは許可されません」というセキュリティー警告が出て、アプリが起動できないことがあります。
症状としては「スクリプトエディタからは実行できるけど、アプリ化すると実行できない」です。
私もずっとこの問題に悩まされていたのですが、いつのまにかエラーが出ないようになっていました。
今では自然復旧して動かせているので、原因は不明です。
エラーが出続けて実行できない人は、次の手順を試してください。
- スクリプトエディタにコードをコピペ
∟ 最初の作業と同じ - スクリプトとして保存
- ターミナルからテスト起動
- Automatorからスクリプトの自動実行アプリを作成
やっていることはスクリプトを自動実行するだけで、この手法ならエラーを回避できます。
ちょっとややこしい作業ですが、Automatorを使えば応用で以下のようなこともできます。
- 右クリックメニューから起動
- Touch Barから起動
ここでは単純にアプリ化する手順だけ解説します。
「スクリプトエディタ」にコピペしたスクリプトをアプリケーションではなく、「スクリプト」として保存。
※12行目のApple TVデバイス名を自分の環境に合わせて変更すること。
スクリプトファイルは専用のフォルダを作成した方が良いです。
以下、「書類フォルダ」の中に「scripts」というフォルダを作成し、その中にスクリプトファイルを保存した例で解説します。
ターミナルを起動して、以下のコマンドを入力↓
cd Documents/scripts/
osascript airplay-test.scpt
太字の「airplay-test」は自分が保存したファイル名に変更してください。
初回起動時にアクセス権を要求するダイアログが表示されます。
「設定」→「セキュリティーとプライバシー」を開き、「ターミナル」を許可。
「Automator」を起動して「ファイル」→「新規」→「アプリケーション」を選択。
検索ボックスに「シェルスクリプトを実行」と入力し、ドラッグして右側にドロップする↓
STEP 2でテストしたコマンドをコピペして、右上の再生ボタンを押して動作チェック↓
初回だけAutomatorのセキュリティもONにする↓
「ファイル」→「保存」でアプリ名を付けて保存。
保存先はデフォルトだと変な場所に保存されるので、デスクトップなど自分がよく使う場所に保存するのがおすすめ↓
アプリを起動して、AirPlayのON/OFFができればOKです。
Automatorを使った応用
Automatorの新規ファイル作成時に「クイックアクション」を選択して作成すると、「右クリックメニュー」や「Touch Bar」の中にスクリプトを埋め込めます。
長くなるのでここでは解説しませんが、気になる人はチャレンジしてください。