我が家の音楽環境は下図のようになってます。
iTunesの音楽データをNASで管理していて、
WindowsタブレットでiTunes再生して、Bluetoothスピーカーから音楽流す。
(ただし、Bluetoothスピーカーといっても、Bluetoothレシーバを介して、コンポのスピーカーでの再生。お風呂に入るときには、防水ワイヤレスのBluetoothスピーカーに切り替えて再生)
昨秋、Google Homeが我が家にやってきてから、
Google Homeで曲を再生したり、音量の上げ下げをしたいなぁ、
という欲求が発生。
あと、Google Homeとスピーカーの位置が近いため、
スピーカーから音を流しているときに、
Googleの認識精度が悪いのですね。
・・・うん、まぁ、近すぎなのはわかってる( ̄~ ̄;
Google Homeの置き場所、悩んだんだけど、
電源コードのことを考えると、すっきり置ける場所がどうにもここしかなくてさ。
なので、これを改善したいなぁ、ということも常日頃から思ってました。
で、少し前に、Google HomeがBluetoothスピーカーから音を鳴らせるように対応されたところで、
Google Homeを介してiTunesの音楽を鳴らせるようにできれば、
万事解決するよなぁ、と考え始めました。
「ねぇ、Google」
と話しかけて、Google Homeが音声コマンド待ち状態になると、
Google Homeから鳴らしている音はミュート状態になるので、
Google Homeを介してiTunesの音楽を鳴らすことができれば、
「ねぇ、Google。○○して」(♪♪♪)
「すみません、よくわかりません」
「ねぇ、Google。○○して!」(♪♪♪)
「すみません、よくわかりません」
「(イラッ)」
ていう日々からも解消されるな、と。
というわけで、Google HomeからiTunesの音楽を流す方法を調べたところ、
出てきたのが、Google Play MusicのライブラリにiTunesの音楽データをアップロードして、
これを再生する、という方法。
音楽データが二重管理になることとか、
Google様に音楽データまで献上することとかに、若干の抵抗を感じたけれども、
便利さと引き換えに、ちょっと魂を売って、
Google Play Music Manager使って、音楽データをアップロードして試してみた。
結果。
- 「音楽流して」はOK
- 「○○(歌手名や曲名)を流して」は、うまくいったりいかなかったり。(どうしてアルバムで曲を入れていて、各種情報もしっかり登録しているのに、アーティストの名前を言っても、一曲しか認識してくれないんだ!)
- スマートプレイリストは作れない。プレイリスト作りたかったら、ひとつひとつ曲を選択するしかない。
という感じで、私的には魂売ってまで使う代物ではない、という結論。
というわけで、別の方法を模索。
色々調べていくうちに、以下の情報に辿り着く。
- Google HomeはChromecastと同じプロトコルで連携できる。
- Chromecastと連携するプログラムは自作できる。
お。
てことは、ラズパイ使って、iTunesの音楽流せるんじゃない?
こんな方式。
iTunesは、ライブラリのデータをxmlでも管理してくれているから、xml読み込んで、
XPath検索すれば、結構自由度高く曲名検索できそう。
というわけで、早速、試してみた。
まず、ラズパイでChromecast連携する手段について調べたところ、
以下の2つを見つけた。
- mkchromecast
- パラメタ渡せば、そのまま音楽や動画をキャストしてくれる
- ローカルファイルのデータのキャストもOK
- pychromecast
Pythonはまだやったことないし、mkchromecastの方が手っ取り早そうだな、と思い、まずはこちらで試してみた。
結果。
- 動画のキャストはできた
- ローカルの音楽のキャストがうまくいかない。URL指定ならばうまくいく。
どうにもローカルの音楽ファイルのキャストは実現できず。
URL指定ならうまくいくので、Webサーバに配信する音楽データを一時的に置いて流せばいけるのだけれど、
それならば、色々小回りの利きそうなpychromecastでやる方が良さそう。
というわけで、「初めてのPython」兼ねて、試してみた。
長くなるので、詳細は↓こっちの方に記載。
Google HomeでiTunesの音楽ファイルを再生 - Sato's Tech Memo
結果を言うと・・・
うまくいきました!(^O^)
自作プログラムだと、
曲がうまく認識されなくても、自分で、ゆらぎ変換等をかけて認識できるようにできるからいいね♪
音楽データも完全に一元管理だし。
スマート家電が充実してきた昨今、プログラミングって、
日曜大工みたいな感じだよなー、と思う。
ちょっと足りない部分を自分で補ったり、自分好みにカスタマイズする感じ。
というわけで、
さっ、Google Play Musicに上げた音楽をさくっと削除しよう♪
と思ったら、
なんだよ、最大でアルバム単位でしか削除できないのか(- -;
アップロードの手間は最小限、削除の手間は最大限。
めんどくさいなー、もう。