2020-11-28 版のWebui-plus配信について
「煮詰めが足りん」と言われる部分が有るかもしれませんが、配信させて頂きます。
(厳密なエラー処理の未実装+内部動作確認用の情報出力が有効な状態)
今回の改良点は「last.fm」のScrobble対応、です。
Scrobbleとは
自分が現在聞いている楽曲の情報をlast.fmに転送する機能です。
伝送された楽曲情報はlast.fm上の各自のアカウント単位で集計されたり、同じ楽曲のYoutube動画をサイト内で視聴することが可能になります。
「こういう情報を他人に握られるのは嫌」って方もおられると思いますが、
私は「自分の趣向などを集計したものが後で確認出来るのは結構面白い」と思います。
(開発前は「要るかなぁ?」とも思いましたが、開発中にブラウザ上のアカウントにscrobbleの結果が流れて集計されるを見て、
個人的にはOnにしてしばらく使おうかと考えています。)
※last.fmのサービス自体がインターネット上のサービスであるため、
Scrobbleを有効にする場合は「RaspberryPiからインターネット接続が可能な環境に置く必要があり」ます。
音質向上などを考えて「閉じたネットワークに置いた場合は当然動作しません」ので、
ご承知おきください。
Scrobbleの有効方法
できればPC等の画面解像度が広く、複数ウィンドウ表示の可能なWebブラウザの使用をお勧めします(スマホ・ipadでの動作確認は未実施)。
1.last.fmへの加入+ログイン
Scrobble自体はlast.fmが提供するサービスです。当然加入する必要があります(無料アカウントで結構です)。
既に加入中の場合は、Webuiに対してScrobbleを設定するブラウザでlast.fmにログイン状態にしておいてください。
2.Webui-plusの「Webui」プラグインを開く
ご覧の画面にプラグインが変更されています。
Scrobble関連のボタン類は「last.fm」タグにまとめてあります。
last.fmのAPIを叩いてScrobbleを送るためにはAPIキー・APIシークレット・セッションキーという3つのパスワード文字列が必要になります。
APIキー・APIシークレットはWebUIにすでに組み込まれています。
セッションキーは各last.fmユーザアカウント毎に作成される(当然ユーザ毎に異なる)ので、自分専用のセッションキーを取得するための処理が必要です。
3.トークンの取得
「Webui」プラグインを開いた瞬間、セッションキーを取得するために必要なトークンという文字列をlast.fmに請求し、これを取得済みの状態になります。
トークンには有効時間があります。
ドキュメントを見ましたが、何分まで有効かは明記されていませんでした。
おおよそ10分以内でセッションキー取得まで終わらせることをお勧めします。
もし、時間を要した場合はwebuiプラグインを再度開いて新しいトークンを取得してください。
4.last.fmユーザとympdの紐付け(認証)
「Get Auth」ボタンを押すと、小さなウィンドウが開き、
「ympd for symphonic-mpd」が貴方のlast.fm アカウントにアクセスする旨の
許可が聞かれます。
セッションキーを取得する場合、この画面で許可をしてあげてください。
許可を有効にするとこの画面になります。
(許可後、このウィンドウは閉じても良いです)
もし、許可の画面が開いておらず、ログイン画面になっている場合はlast.fmに貴方のアカウントでログインしてください。
5.セッションキーの取得と保存
「Get Session」ボタンを押してlast.fm側で正常に処理されると、
内部でセッションキー文字列が取得されてRaspberryPi4の/etc/webui.cfgに保存されます(同時にympdのプログラム内にも保存されます。)
Scrobbleの実行方法
Webuiプラグインを開き、「Scrobble」ボタンをOnにします。
※Scrobbleボタン右横の文字列が「session-key available」ではない場合は、
セッションキー未取得のためScrobbleはされません。
あとは貴方が再生した楽曲が自動的にlast.fmへScrobbleされます。
last.fmへのデータ伝送は1曲あたり以下の2回実施されます。
楽曲再生直後:updateNowPlaying(現在再生中の楽曲を通知)
Scrobble条件成立時:Scrobble
(条件成立は楽曲が30秒以上かつ「再生時間が楽曲の半分以上もしくは4分異常を超えた」際)
現時点での仕様ほかについて
-
Webuiプラグインでセッションキーを取得後、Webuiプラグインの「Scrobble」ボタン横の文字列がセッションキー取得済みに変わらない
(鬱陶しいですが、セッションキー取得時に画面左下に通知がありますのでこれで代用願います)
-
枚曲再生時にScrobbleされるのは止めて纏めて送る仕様にしてほしい。
バッチ対応は将来的には考えたいと思います。
-
セッションキーを再取得するには
一度、ブラウザでlast.fmにログインし、貴方のアカウント設定で「Settings」の「Application」タブで表示される「ympd for symphonic-mpd」を「Disconnect」してください。
その後、セッションキーの取得を説明したとおり実施すれば/etc/webui.cfgに記録されます。
-
Scrobble時に伝送される情報について
私の手元のライブラリに問題があり、AlbumArtistを送った場合は正常なアルバムと認識されなかったことがあったので、AlbumArtistは送らない仕様にしています。
-
APIキーとSecret文字列について
last.fmの無料アカウントを使用中の私が開発用として取得した「ympd for symphonic-mpd」というものを使っています。
( @パパリウス さまと相談しますと言ってましたが、まだ行っていません。)
将来的に別なキーになる場合はアナウンスしますので、再設定をお願いします。
※APIキー・セッション文字列が変更されても貴方のアカウントのScrobbleの履歴は消えません。
その他使ってみて質問や機能改善提案などありましたら、ご所望くださいませ。