Spotifyのweb APIで「再生中の曲をリアルタイムに取得したいなー」と思って、色々調べてた。
Spotifyと開発者コミュニティのやりとりがちょっと面白かったので、こぼれ話的にメモ。
GETのAPIはすぐにみつかった。
https://developer.spotify.com/documentation/web-api/reference/player/get-the-users-currently-playing-track/
まぁ、そりゃあるよね。
が、曲が変わった時に教えてくれるようなwebhookみたいなのは、一向に見つからず。
ありそうでない。。。
「ポーリングは避けたいなー」と粘っていると...
GitHub Issuesでディスカッションされてた。既に2年前から。
https://github.com/spotify/web-api/issues/492
以下、ディスカッションを抜粋。
開発者は、リクエスト上限を気にしつつ、ポーリングで何とか凌いでる様子。
https://developer.spotify.com/documentation/web-api/#rate-limiting
clientサイドのweb socketライブラリ作った人もいる(裏ではポーリングらしい)
https://github.com/spotify/web-api/issues/492#issuecomment-342029854
月5万ユーザー持つような開発者も困ってる
https://github.com/spotify/web-api/issues/492#issuecomment-370070771
Spotify側も「必要性を認識してる」とコメントしつつ、2年間特にアウトプットなし
https://github.com/spotify/web-api/issues/492#issuecomment-356882740
実はDiscordに対しては、web socketらしきものがサポートされてることが報告される
https://github.com/spotify/web-api/issues/492#issuecomment-370070771
開発者たち「何で俺らには使わせてくれないんだ」とイラつき始める
https://github.com/spotify/web-api/issues/492#issuecomment-455553492
(気持ちはわかる)
Spotify側は、リバースエンジニアリングでパートナーとの秘匿情報がさらされてるからとGitHub Issueをlockする
https://github.com/spotify/web-api/issues/492#issuecomment-509317942
ディスカッションの場がオフィシャルコミュニティに移ったが、現在もSpotifyからのアウトプットは特になし
https://community.spotify.com/t5/Spotify-for-Developers/Access-to-websockets/m-p/4955299/highlight/true#M146