情報少ないし Last.fm 用のライブラリがそのままでは動かなかったりで無駄に時間かかった……。
セッションキー取得
● /etc/hosts 修正
Using_turtle | Wiki | foocorp / librefm | GitLab
を参考に、、、なんだけどここに書かれてるアドレス(149.20.54.250)ではダメだった。
213.138.110.190 post.audioscrobbler.com 213.138.110.190 ws.audioscrobbler.com
これで動いた。
● トークン取得
https://gitlab.com/foocorp/gnu-fm/blob/master/gnukebox/README
https://git.gnu.io/gnu/gnu-fm/blob/master/gnukebox/README
The api_key and api_sig are only checked to be 32 characters long since Last.FM shared secrets cannot be checked
curl "https://libre.fm/2.0/" \ --data "method=auth.getToken&api_key=01234567890123456789012345678901&api_sig=01234567890123456789012345678901" response: <?xml version="1.0"?> <lfm status="ok"> <token>56b37b9c8b8a66e435cecd4a189a....</token> </lfm>
● 認証
ブラウザで開いて許可する。
https://libre.fm/api/auth/?api_key=01234567890123456789012345678901&token={token}
● セッションキー取得
curl "http://ws.audioscrobbler.com/2.0/" \ --data "method=auth.getSession&api_key=01234567890123456789012345678901&api_sig=dummy&token={token}" response: <lfm status="ok"> <session> <name>sonota88</name> <key>4d423dd1379fb96e0ed1e4eef49c....</key> <subscriber>0</subscriber> </session> </lfm>
キーの値は保存しておいて後の updateNowPlaying とか scrobble とかで使いまわす。
要認証なAPIを使う
curl "https://libre.fm/2.0/" \ --data "method=track.updateNowPlaying&artist=Jared C. Balogh&track=Micro Composition 13&album=Micro Compositions Vol. 2&api_key=01234567890123456789012345678901&api_sig=01234567890123456789012345678901&sk={session_key}"
curl "https://libre.fm/2.0/" \ --data "method=track.scrobble&artist[0]=Daniel Maze&track[0]=On The Farm&album[0]=Avatar×tamp[0]=1447683613&api_key=01234567890123456789012345678901&api_sig=01234567890123456789012345678901&sk={session_key}"
API の仕様は Last.fm のを参照。
例: track.updateNowPlaying Web Service – Last.fm