スマホの画面から、一曲ずつ順番にプレイリストを作成するのが面倒だったので、APIを利用してサクッと作成できるWEBアプリを作りたく。
まずは手始めに、APIを利用するところまでを試してみました。
おおまかな流れ
- Spotifyのアプリ用ID(Client ID)とパスワード(Client secret)を発行
- 発行されたIDとパスワードを使って、アクセストークンを発行する
- 発行されたアクセストークンを利用して、楽曲を検索する
Client IDとClient secret
Spotifyのアプリ用のIDとパスワードを発行します。
Spotifyにログインして、ダッシュボードを開きます。
上記公式サイトに記載のようにローカルホストをリダイレクト先に設定して、登録。
以下のようにしました。(2024.3月現在)
(スプレッドシート上に曲のリストをまとめてそこから一括で作成出来たら良いなと想定してアプリ名決めました)
登録すると、「Client ID」と「Client secret」を貰えます。
アクセストークンを発行
今回はお試しなので、curlでやっています。
「Client ID」と「Client secret」をくっつけたものをエンコードする。
$ echo -n "[取得したClient ID]:[取得したClient Secret]" | base64
// 例:取得したClient Cd が hoge, Client Secret が fuga
$ echo -n "hoge:fuga" | base64
上記リクエストが成功すると、レスポンスでアクセストークンが発行されます。
今回発行されたアクセストークンを「piyo」とします。
取得したトークンを利用して曲の情報を取得してみる
curl -X "GET" -H "Authorization: Bearer [取得したアクセストークン]" "https://api.spotify.com/v1/search?q=[検索文字列]&type=[検索種類]&limit=[検索結果数]"
//
curl -X "GET" -H "Authorization: Bearer piyo" "https://api.spotify.com/v1/search?q=Mr Children&type=track&limit=3"
↓レスポンス
ちゃんと取得できてますね。
ちなみに、日本語で検索したい場合は検索文字列をURLエンコードする必要があります。
今、最も聞かれている曲はYOASOBIのアイドルらしいので、アイドルを検索する例は以下
https://tech-unlimited.com/urlencode.html
上記サイトを利用して、
「アイドル」を「%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB」に変換してから
$ curl -X "GET" -H "Authorization: Bearer piyo" "https://api.spotify.com/v1/search?q=%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB&type=track&limit=1"
今回はここまで。
おおよそ、APIを利用する流れはつかめました。
次回以降、曲名のリストを作成し、順に楽曲を検索し、望んだ曲であれば、楽曲を一意に特定できるキーを取得するところまでを作成したいと考えています。