Volumio2に再生コマンドを送る!

はじめに

こんにちは。何も考えずにラズパイzeroを購入してしまったせいで使い道が無くて持て余していたので、volumioをインストールしてミュージックサーバーにしてみたパパドラゴンです。

volumioのインストールはこちらのページで紹介されているDACをそのまま買って組んでSDカード焼くだけでめっちゃ簡単でした!
でもvolumioはブラウザから操作することを考えて作られているらしく、別のラズパイから再生コマンドを送る方法がいまいち分かりにくかったので紹介します。

やりたいこと

  • Volumio2を「他のラズパイ」から「コマンドラインで」操作したい
  • Google Homeを使って操作したい
  • WiFi経由でArduinoから操作したい

方法

結論から言いますと、Volumioの公式ドキュメントにAPI一覧が書いてあります。
ネットワーク関係は全く素人なので理解できたとこだけ読んだところ(よくない)、GETリクエストを送る方法が一番カンタンで早い気がします。

仕組みはともかく使い方だけなら、ブラウザでもラズパイのターミナル上でもpython上でもとにかく「http://volumio.local/api/v1/commands?cmd=〇〇」のアドレスにGETリクエストを送れば、結果(成功すれば現在の状態、失敗すればエラー)が辞書型で帰ってきます。
「volumio.local」の部分は「192.168.0.5」のようなアドレスに変える必要があるかも知れません。

例えばchromeだとアドレスバーに上記を打ち込めばこんな感じに帰ってきて再生が始まります。

「192.168.0.5」の部分は自分のvolumioのアドレスに変えてください

ラズパイのターミナルだとcurlコマンドを使ってこんな感じ。

ppdr@raspberrypi:~ $ curl http://volumio.local/api/v1/commands?cmd=stop
{"time":1538585873376,"response":"stop Success"}

pythonならこんな感じです。

import urllib2

res = urllib2.urlopen("http://volumio.local/api/v1/commands?cmd=play",timeout=5)
print( res.read() )

 

どんなコマンドが送れるの?っていうとアドレスの「?」以降(クエリ)の部分に色々指定して送れば良さそうです。

 

クエリ動作
cmd=play再生
cmd=stop停止
cmd=pause一時停止
cmd=prev前の曲へ
cmd=next次の曲へ
cmd=volume&volume=80音量を80に
cmd=playplaylist&name=Rockプレイリスト「Rock」を再生
cmd=repeatリピートをON&OFF
cmd=randomランダム再生をON&OFF

他のコマンドについては公式ドキュメントを参照してくださいm(_ _)m。

これが出来ればとりあえず汎用性は高そうです。プレイリストやキューの一覧を取得するコマンドもあるので帰ってきた辞書型を判断して処理を分けるとかもできそうです。
時間があればGoogle Homeから起動とかも試してみたいです。お部屋BGMライフが始まりそう。

コメントを残す

メールアドレスが公開されることはありません。