はじめに
LINEBOTでなにかつくりたかった・・!
こちらの記事を見たとき音楽をタイマーがわりにできないかな、と思ったのがきっかけです。
作成したBOTの使い方
1.メニューから「get music!!」をタップ
2.「1分,2分,3分,,」と選択肢が出るので、何分の曲を返すか指定する
3.spotifyのURLが返ってくる
※Spotify FreeプランだとURLをタップ後、すぐに曲の再生ができないかもしれません。。
ユーザーからリクエストされた曲を返却するシンプルな構成にしました。
最初は曲のジャンル指定できたらいいなとか考えてましたが、
いろいろ機能つけると曲を取得するまでの手順が増えて操作がめんどうになるかなと思い却下しました。
パスタ茹でるときにでも使っていただけたら嬉しいです!!
ソースコード
使用技術
SpotifyAPI
SpotifyAPIを使ってやりたいことは指定した約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が、どこかで誰かの役にたてば嬉しいです