はじめに
こちらの記事を見て、音楽をタイマーとして使いたいと思ったのがBOT作成のきっかけです。
作成したBOTの使い方
BOTは現在稼働していません
1.メニューから「get music!!」をタップ
2.「1分、2分、3分」といった選択肢が表示されるので、再生したい曲の長さを指定します。
3.SpotifyのURLが返されます。
※Spotify Freeプランの場合、URLをタップしてもすぐに曲が再生できないことがあります。
このBOTは、ユーザーからリクエストされた曲のURLを返却するシンプルな構成にしました。
最初は曲のジャンル指定ができたらと思いましたが、機能を追加すると曲を取得するまでの手順が増えて操作が面倒になるかもしれないと思い、今回は実装を見送ることにしました。
パスタを茹でるときなどにご活用いただければ幸いです!
ソースコード
使用技術
SpotifyAPI
Spotify APIを使って指定した約n分の曲を取得したいと考えましたが、一度で実現するのは難しそうでした。そのため、ランダムに曲を取得し、その中から約1分、2分、3分などの曲のURLをDBに保存する方法を選びました。
具体的には、
SearchAPIを使用してランダムに曲を取得し、レスポンスから約1分、2分、3分(±5秒)の曲情報をDBに保存する
というバッチ処理を定期的に実行しています。
ランダムに曲を取得する部分については、こちらの記事を参考にしました。
Getting random tracks using the Spotify API
使用したライブラリ
LINE Messaging API
使用したメッセージオブジェクト
・テキストメッセージ
・クイックリプライ
使用したライブラリ
ちょっとした工夫
動作確認をすると、海外のよくわからない曲ばかり返ってきて微妙な結果になりました。
曲の人気度を示す「popularity」を高く設定しても、結果は改善されませんでした。
そこで、少しでも馴染みのある日本の曲のみを返すように工夫しました。結果、ほぼ日本の曲だけを返せるようになりました。具体的には、ISRCに「JP」が含まれる曲のみを返すという方法です。ISRCについての詳細は、こちらを参照してください。
https://isrc.jmd.ne.jp/about/pattern.html
終わりに
作成したBOTがどこかで誰かの役にたてば嬉しいです