Spotify Web APIを利用しておすすめプレイリストを取得することができる。このプレイリスト情報は、Spotifyが作成したプレイリストが対象となる(ユーザーが作成したプレイリストは対象外)。このAPIリクエストの特徴として、日時を指定する timestamp パラメータが用意されており、指定した時間や曜日に応じて内容が変わる。
例えば、timestamp パラメータに 2020-09-16T09:00:00 のように朝9時を指定すると通勤や通学時向けのアップテンポな楽曲を集めたプレイリスト情報が得られる。朝だけでなく、昼や夕方、深夜の時間帯を指定すると、その時間帯に合わせたプレイリスト情報になる。また、曜日によっても内容が変わり、例えば土曜日の日時を指定すると「今週の〇〇を…」といったプレイリスト情報が得られる。
※月や季節、年、特定の日付に応じて内容が変わるかどうかは未確認。
下記はSpotify Web APIを利用しておすすめプレイリストを取得するコードの例。
class SpotifyApiClient
{
private $rootEndpoint = 'https://api.spotify.com/v1/';
private $accessToken;
public function __construct($ACCESS_TOKEN)
{
$this->accessToken = $ACCESS_TOKEN;
}
public function get($path, array $queryParams)
{
$url = $this->rootEndpoint . $path;
if (!empty($queryParams))
$url .= '?' . http_build_query($queryParams);
$response = $this->execCurlGET($url);
sleep(1);
return json_decode($response, true);
}
private function execCurlGET($url)
{
$cmd = 'curl --silent' .
" -H 'Authorization: Bearer {$this->accessToken}'" .
" '$url'";
echo "# $cmd\n";
return shell_exec($cmd);
}
}
$tokenFile = 'token_new.json';
$token = json_decode(file_get_contents($tokenFile), true);
$client = new SpotifyApiClient($token['access_token']);
$params = [
'country' => 'JP',
'timestamp' => '2020-09-16T09:00:00',
];
$response = $client->get('browse/featured-playlists', $params);
var_dump($response);
おすすめプレイリストを取得するAPIリクエストは、下記URLに対して
https://api.spotify.com/v1/browse/featured-playlists
GETリクエストを送信することで実行できる。オプションのクエリパラメータとして、country パラメータに JP を指定すると、日本向けのプレイリスト情報を取得することができる。また、timestamp に yyyy-MM-ddTHH:mm:ss 形式(ISO 8601)で日時を指定することができ、記事の冒頭で紹介したように、このパラメータにより時間帯や曜日に合わせた情報を得ることができる。