23
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

spotify x LINEで音楽をタイマー替わりにするLINEBOT作った

Last updated at Posted at 2021-05-18

はじめに

こちらの記事を見て、音楽をタイマーとして使いたいと思ったのがBOT作成のきっかけです。

作成したBOTの使い方

BOTは現在稼働していません

以下のQRコードから友達追加
947sybkb.png

1.メニューから「get music!!」をタップ
2.「1分、2分、3分」といった選択肢が表示されるので、再生したい曲の長さを指定します。
3.SpotifyのURLが返されます。
※Spotify Freeプランの場合、URLをタップしてもすぐに曲が再生できないことがあります。

ezgif-2-e1a8c0c8a3f7.gif

この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がどこかで誰かの役にたてば嬉しいです:blush:

23
21
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?