駆け出しエンジニアの作業ノート

駆け出しエンジニアが作業ノート風にまとめるページ(関係無い事もしばしば)

SlackbotからSpotifyのプレイリストを作る

この記事は「サポーターズCoLab Advent Calendar 2019 - Adventar」8日目の記事となります。

 

adventar.org

 

また、プレイリストの作成部分については、以下の書籍内容を改良したものになります。

 

supporterz.booth.pm

 

改良内容としては、

 

・Slackから呼び出す形にした

・アーティスト翻訳をSpotifywebブラウザ版をスクレイプする形式に変更

・レコメンドをLast.fmAPIと、直近30日の自分及び自分に近いユーザーの履歴から推薦するハイブリッド型への変更

 

という感じです。履歴推薦の方法ですが、ノイズを少なくするため、

 

・1人2回以上再生し、かつそれが2人以上聞かれている曲

 

を対象としました。「自分に近いユーザー」ですが、これはLast.fmの有料版を使うと、各ユーザーが自分にどれだけ近いかが表示されるようになります。また、「Neighbours」に自分に近いユーザーが表示されるので、ここのユーザーを集めました。ただ、この「Neighbours」は1週間ごとに更新されるので、新しいユーザーを集めると同時に、今まで集めたユーザーが自分に近いかをもう一度調べる必要があります。

 

今回は、類似度が90%以上の「Super」となっているユーザーを履歴収集の対象としました。

 

Slack botの作成にあたっては以下の記事を参考にしました。

 

qiita.com

 

実行イメージは以下になります。

 

f:id:Psyduck_take_it_easy:20191208020329p:plain

 

f:id:Psyduck_take_it_easy:20191208020421p:plain

 

この応答後、プレイリスト作成作業に入ります。出来た場合には、プレイリスト移行後に

f:id:Psyduck_take_it_easy:20191208020606p:plain

と表示されます。エラーが出た場合には、エラーメッセージが表示されます。

 

また、何らかの理由でプレイリストに追加できなかった曲があった場合には表示させるようにしました。

 

f:id:Psyduck_take_it_easy:20191208020822p:plain

 

ハロー!プロジェクトのグループはまだSpotifyなどのサブスクリプションが解禁されていないため、候補に出てきても追加する事が出来ません。

 

コードは以下にあります。(準備出来次第、順次公開予定です。)

 

github.com