1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-08-05

2018年夏、猛暑過ぎますね。
今日も引きこもりが捗ります、 @shIbaInu42 です。
最近はお仕事で作業プロセスを自動化したり、
自宅でも自動化に思いを馳せたりしています(自動化は大事、板東は英二)。
今回は JXA(Javascript for Automation)Amazon Dash Button でMacのアプリケーションを遠隔操作したいと思います。

目次

    1. 目的
    1. 準備するもの
    1. 作成と実行
    1. まとめ

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デビューすることをオススメします。
日本の生産性アゲていきましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?