Spotifyのプレイリストをテキストで欲しいな~と思ったのでスプレッドシートへの同期をGASで組みました。 あと、追加のメリットとしてはSpotifyアプリ上では見えないBPMやキーなどの情報も一覧にできるところがあります。
GASとスプレッドシートの連携の基本は前記事スプレッドシートをjsonとして出力するボタンを作るを参考にしてみてください。
言葉にするのが面倒なのでスクショで伝えますがこんな感じです。
プレイリストのリンクを貼っておいて、Syncボタンを押したらプレイリストの内容がスプレッドシートに追記される感じですね。
テンプレートとなるスプレッドシートをここに置いています。 ファイル>コピーを作成でコピーして使ってみてください。ただ、別途SpotifyのAPIキー/シークレットが必要です。これはSpotifyの開発者向けページから作成できます。スプレッドシートのB1, D1, F1にID/secret/playlistURLを入力して使えます。
スプレッドシートをコピーしてからじゃないとコードが見えないので、手っ取り早くチェックしたい人のためにコードをgistでも公開しています。
今のスプレッドシートでは追加情報としてBPMとキー、energy, danceabilityを表示していますが、Spotifyのメタデータは他にloudnessやvalenceなど色々取得できます(公式API - AudioFeatureObject)。ぜひコードを改造して自分好みに調整してみてください。
注意点
GASの無料枠ではURLFetchの呼び出し回数が20000回/日, データ受信量が100MB/日に制限されています。 このスクリプトではまずプレイリスト内の曲名, アルバム名, アーティスト名のリストを受信した後、それぞれの曲についての追加データ(BPMとか)を個別に取得しているため、一回のSyncでプレイリストの曲数+1回URLFetchを呼び出しています。 それでも20000回に到達するのは相当難しいとは思いますが…
それよりもSpotifyの気まぐれRateLimitに引っかかる確率のほうが大きいかも… それが原因でまれに失敗します。それでも少し待って実行すれば大丈夫です。