Spotify Web API を利用してニューリリース情報を取得する

Spotify Web APIを利用してニューアルバムのリリース情報を取得することができる。このニューリリース情報には、各アルバムの基本情報(アーティスト名、アルバム名、リリース日など)が含まれる。アルバム内の曲情報は含まれない。

下記は、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' .
           " -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',
  //'limit' => 1,
  //'offset' => 1,
];
$response = $client->get('browse/new-releases', $params);
var_dump($response);

ニューリリース情報は、下記URL

https://api.spotify.com/v1/browse/new-releases

に対して、GETリクエストを行えば取得することができる。

オプションのクエリパラメータとして、countrylimitoffset パラメータを指定することができる。

country パラメータには、2文字の国名コードを指定することができ、特定の国名コードを指定した場合、レスポンスとして返されるリリース情報をその国に関連するものに限定することができる。何も指定しない場合、全世界向けのニューリリース情報がレスポンスとして返される。上記のコードの例では JP(日本)を指定している。

limit パラメータは、レスポンスに含めるアルバム件数を指定するためのもので、デフォルト値は 20、最大値として 50 まで設定することができる。

offset パラメータは、結果のページネーションを行うためのもので、デフォルトでは 0 が設定され、最初の結果がレスポンスとして返される。以降の結果を取得していくには、この値を limit の値ずつインクリメントしていけば良い。例えば limit = 20 のとき、offset = 0 の次は offset = 20、その次は offset= 40 というようにインクリメントしていく。

APIリクエスト実行後、APIレスポンスの items キーにリクエストしたデータの本体であるニューリリース情報が保持されている。デフォルト(limit = 20)では、items キーに20件のアルバムの基本データ(詳細ではなく簡略版の情報)が含まれる。