とりあえず日記

VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ(いまここ🍄)

DACPでiTunesをリモートコントロールしてみた(1回目)

DACPでiTunesをリモートコントロールしてみた(1回目) - とりあえず日記
DACPでiTunesをリモートコントロールしてみた(2回目) - とりあえず日記
DACPでiTunesをリモートコントロールしてみた(3回目) - とりあえず日記
DACPでiTunesをリモートコントロールしてみた(4回目) - とりあえず日記

去年のことですが、秀丸エディタからiTruneを操作するマクロを公開しました、今回の日記はその続きです。

MAC購入したんですよ、ところが・・・

MAC購入したのを機に、iTunesWindowsからMACへ移行したんですよ。そしたら、秀丸エディタからiTunesが操作できなくなり不便になりました。

ググったところ、DACP(Digital Audio Control Protocol)経由でWindowsからMACにインストールされたiTunesを操作出来るらしいので、調べた結果とか試したことの覚え書きです。

結果は、localhostならDACPでiTunesを操作できましたが、ネットワーク越しだとペアリングがうまくいかず手詰まり状態です。


間違い勘違いあります、ご注意を。






iTuneを操作する普通のやり方

iTunesを操作するにはCOM経由で行う方法があります。(COMの方が単純で確実です。)
COMの正式な資料(iTunes COM for Windows SDK)はアップルからダウンロードできます。
https://connect.apple.com/

DACPでiTunesを操作する情報源

プロトコルなど必要な情報が揃っています。(JAVAソースコードあり。)

iTunesとペアリングする方法

固有名詞

  • DACP (Digital Audio Control Protocol)

iTunesAndroidから遠隔操作するアプリ

Androidで出来るくらいなのでPCで出来ないはずがない。
Remote for iTunes

DACPでiTunesへ接続する手順

  • まず、自作プログラムとiTunesをペアリングしてGUIDを取得する。(始めに一回だけ)
  • ペアリング時に取得したGUIDを以降のセッションで使用
  • コマンドはHTTPのGET/POSTを使用する。

DACPを操作するライブラリ

自作するにはやることが多く大変そうなので、Githubでググったところ、下記ライブラリが見つかりました。

A web interface to a DACP iTune remote control designed to run on the OpenFrame or Joggler platform(Python)

https://github.com/elsmorian/RemoteFrame

Iphone Remote App plugin for Rhythmbox(Python)

https://github.com/Harper04/dacp-rapp

Playing around with DACP(Python)

https://github.com/hatstand/dacp

.NET library implementiong DMAP, DAAP, and DACP(C#)

https://github.com/gburt/dmap-sharp



幾つもありますが、今回はソースコード行数が少ないという理由で下記ライブラリを試しました。

環境

  • Windows7 64bit SP1
  • Python 2.7.1 (r271:86832, Nov 27 2010, 17:19:03) [MSC v.1500 64 bit (AMD64)] on win32
  • iTunes 10.2.2.14
  • Google Chrome 11.0.696.65
  • pybonjour-1.1.1.zip
  • webpy-webpy-webpy-0.34-51-g12e5bb1.zip

PyBonjour/Webモジュールのインストール

下記モジュールを導入しないとサンプルが動作しません、ご注意を。
(多分、import error になるはず。)

pybonjour

http://code.google.com/p/pybonjour/
今回は、PyBonjour 1.1.1 をダウンロードしました。
iTunes附属のdnssd.dllが必要です。iTunesをインストールしておいて下さい、インストール済みなら何もしなくて良いです。

webpy

http://webpy.org/
今回は、webpy-webpy-webpy-0.34-51-g12e5bb1.zip をダウンロードしました。