kmkのメモ帳

気が向いたときにLinuxだったり、プログラミングだったり、適当なメモを書いてます。

Blogは移転しました。

自動的にリダイレクトします。

volumio APIからアルバムジャケットとかを取得して表示するリモートディスプレイを作ったお話し

はじめに

volumioはネットワークオーディオプレイヤー用のOSです。

ラズパイなどに簡単に入れことができ、あまり知識がなくとも気軽にラズパイオーディオを試すことができます。

volumio.org

下記ドキュメントの通りvolumioはREST APIにも対応していて、音楽の再生/停止や現在再生している音楽、キューなどをAPIから取得することができます。

volumio.github.io

APIに対応していると何が便利かというと、下記画像のようにiphoneのショートカット機能を使ってwebhookを設定すれば音楽をstartするボタンが作れます。また、URLのパラメータを変えれば特定のプレイリスト再生するボタンも作ることができます。APIのおかげでこのような便利な操作がiphoneからワンクリックできます。

f:id:Q068891:20200509093813p:plain

私はvolumioをラズパイとかで使っているのですが、再生している音楽とかを表示してくれる常設のディスプレイが欲しいと思い始めました。 ちょっと調べるとディスプレイを欲しがる人はやはり多いらしく、ラズパイに専用タッチパネルのディスプレイを繋いだりして作成されてる様子でした。 専用ディプレイはvolumio本家からも発売されてますしね。

私の場合「タッチパネルは特に必要ない&音楽プレイヤーとして動いてるラズパイにあまりディスプレイを繋げたくない」というお気持ちがありました。

volumioはWEUIに対応していてWEBブラウザからもアクセスでき、下記のような画面が表示できます。 f:id:Q068891:20200509083142p:plain

このようにWEBUIがあるのでもうひとつラズパイとディスプレイ用意してそちらでブラウザから常に表示しておけば良いんですが、操作はせず見るだけのディスプレイとしてはちょっとごちゃごちゃしてます。

操作をしないのであれば正直今再生中の曲情報や、アルバムジャケットだけ表示してあれば十分です。

ちょうど使わなくなった別のラズパイ、ディスプレイもあったので、volumioのAPIから再生中の曲やアルバムジャケットを取得して表示するプログラムを書いてみました。

API経由で現在再生中の楽曲情報を取得して表示するpythonプログラム

github.com

上記プログラムをラズパイで走らせておけば、10秒ごとにAPIを取得して現在再生中の曲情報を常に表示してくれます。

おわりに

私の場合、他にもお天気APIやNatureRemoのAPIから色々プログラムに追加し取得して下記のように表示しています。

f:id:Q068891:20200509103217j:plain

API取得するプログラムやGUIって適当で良ければ書くのたのしいですよね。おわり。

# # #