Edited at

JXA + Amazon Dash ButtonでiTunesを遠隔操作してみた

More than 1 year has passed since last update.

2018年夏、猛暑過ぎますね。

今日も引きこもりが捗ります、 @shIbaInu42 です。

最近はお仕事で作業プロセスを自動化したり、

自宅でも自動化に思いを馳せたりしています(自動化は大事、板東は英二)。

今回は JXA(Javascript for Automation)Amazon Dash Button でMacのアプリケーションを遠隔操作したいと思います。


目次


  • 1. 目的

  • 2. 準備するもの

  • 3. 作成と実行

  • 4. まとめ


1. 目的

帰宅時、ソファに座った状態で「iTunes(on Mac)の音楽をすぐ鳴らしたい」という私の欲望を満たすこと。


2. 準備するもの


  • Amazon Dash Button

  • JXAとDash Button のNodeモジュール(↓のインポートを実行)



Command

npm i dash-button

npm i jxa


  • Dash Buttonを開発用にセットアップ

    → 参考


3. 作成と実行


作成(コーディング)

「Dash Buttonが押されたらiTunesを再生/一時停止する」というコードを書く。

【※】5行目の物理アドレスの取得方法はコチラを参照ください。


remoTunes.js

//

// remoTunes let us remotely control iTunes via ARP
// [Author]: @shIbaInu42

// Physical address of Dash button
const PHYSIC_ADDR = "XX:XX:XX:XX:XX:XX";

// initialization of valuables
var dBtn = require("dash-button");
var iBtn = new dBtn(PHYSIC_ADDR);
var macApp = require("jxa").Application;
var iTunes = macApp("iTunes");

iBtn.addListener(
() => {
iTunes.playpause();
}
);



実行

作成が完了したら、実行します。


Command

node remoTunes.js


※ハードウェアアクセスの権限がなく、permission deniedされたらsudo node remoTunes.jsしてください

実行確認した動画を次に示します。

動作はこんな感じになります(↓)

実行確認の動画

※流れている音楽は踊ってばかりの国の「!!!(チック・チック・チック)」


4. まとめ

JXAとAmazon Dash Buttonを使ってダイナミックにiTunesを操作してみました。

たった数行でダイナミックな操作ができるようになりました、便利な世の中になったものです。。。

なお、iTunesの操作は他にもトラック情報を取得したり等、様々なコトができますし、

さらに、JXAはiTunesだけでなくFinder等のMacのアプリケーションをコードで操作できるようになります(!)。

自宅や会社で無駄なコトがあったら自動化してみましょう。

「Mac厨は嫌いだよ!世の会社を見てみろ!Windows一択だ!」

という方はJScriptデビューすることをオススメします。

日本の生産性アゲていきましょう。