LoginSignup
23
21

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-05-18

はじめに

LINEBOTでなにかつくりたかった・・!

こちらの記事を見たとき音楽をタイマーがわりにできないかな、と思ったのがきっかけです。

作成したBOTの使い方

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

1.メニューから「get music!!」をタップ
2.「1分,2分,3分,,」と選択肢が出るので、何分の曲を返すか指定する
3.spotifyのURLが返ってくる
※Spotify FreeプランだとURLをタップ後、すぐに曲の再生ができないかもしれません。。

ezgif-2-e1a8c0c8a3f7.gif

ユーザーからリクエストされた曲を返却するシンプルな構成にしました。
最初は曲のジャンル指定できたらいいなとか考えてましたが、
いろいろ機能つけると曲を取得するまでの手順が増えて操作がめんどうになるかなと思い却下しました。
パスタ茹でるときにでも使っていただけたら嬉しいです!!

ソースコード

使用技術

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