🦔
Spotifyで聴取中の楽曲を取得する
必要なもの
user-read-currently-playing
スコープが有効なアクセストークンが必要です。
取得方法が分からない方は以下をご覧ください
APIを叩いてみる
await fetch(
"https://api.spotify.com/v1/me/player/currently-playing?market=JP",
{
method: "GET",
headers: {
Authorization: `Bearer ${token}`,
},
},
)
.then((response) => response.json())
.then((data) => {
console.log(data)
}
聴取中の楽曲を取得するためのAPIのエンドポイントは/me/player/currently-playing
で、ヘッダーのAuthorization
にBearer ${アクセストークン}
をセットする必要があります。
上記のコードを実行すると以下のようなブツが返却されます。
{
"timestamp": 1718459598535,
"context": null,
"progress_ms": 14796,
"item": {
"album": {
"album_type": "album",
"artists": [
{
"external_urls": {
"spotify": "https://open.spotify.com/artist/7kZTWx6cRLc0TSRPq1XBMP"
},
"href": "https://api.spotify.com/v1/artists/7kZTWx6cRLc0TSRPq1XBMP",
"id": "7kZTWx6cRLc0TSRPq1XBMP",
"name": "DECO*27",
"type": "artist",
"uri": "spotify:artist:7kZTWx6cRLc0TSRPq1XBMP"
}
],
"external_urls": {
"spotify": "https://open.spotify.com/album/0Mp8qsZhLGAX1XTL1PE0YP"
},
"href": "https://api.spotify.com/v1/albums/0Mp8qsZhLGAX1XTL1PE0YP",
"id": "0Mp8qsZhLGAX1XTL1PE0YP",
"images": [
{
"height": 640,
"url": "https://i.scdn.co/image/ab67616d0000b27305c466733d2301a1348b956a",
"width": 640
},
{
"height": 300,
"url": "https://i.scdn.co/image/ab67616d00001e0205c466733d2301a1348b956a",
"width": 300
},
{
"height": 64,
"url": "https://i.scdn.co/image/ab67616d0000485105c466733d2301a1348b956a",
"width": 64
}
],
"is_playable": true,
"name": "MANNEQUIN",
"release_date": "2022-03-09",
"release_date_precision": "day",
"total_tracks": 11,
"type": "album",
"uri": "spotify:album:0Mp8qsZhLGAX1XTL1PE0YP"
},
"artists": [
{
"external_urls": {
"spotify": "https://open.spotify.com/artist/7kZTWx6cRLc0TSRPq1XBMP"
},
"href": "https://api.spotify.com/v1/artists/7kZTWx6cRLc0TSRPq1XBMP",
"id": "7kZTWx6cRLc0TSRPq1XBMP",
"name": "DECO*27",
"type": "artist",
"uri": "spotify:artist:7kZTWx6cRLc0TSRPq1XBMP"
}
],
"disc_number": 1,
"duration_ms": 165706,
"explicit": false,
"external_ids": {
"isrc": "JPR502200199"
},
"external_urls": {
"spotify": "https://open.spotify.com/track/4ZC9kGWHtzSPpXdXqAJnuK"
},
"href": "https://api.spotify.com/v1/tracks/4ZC9kGWHtzSPpXdXqAJnuK",
"id": "4ZC9kGWHtzSPpXdXqAJnuK",
"is_local": false,
"is_playable": true,
"name": "パラサイト",
"popularity": 28,
"preview_url": "https://p.scdn.co/mp3-preview/1d61377ef9b9966c12e4fa8c67785806bf7e4220?cid=cfe923b2d660439caf2b557b21f31221",
"track_number": 8,
"type": "track",
"uri": "spotify:track:4ZC9kGWHtzSPpXdXqAJnuK"
},
"currently_playing_type": "track",
"actions": {
"disallows": {
"resuming": true
}
},
"is_playing": true
}
返却されたデータの中身を見てみる
timestamp
は取得時のタイムスタンプ、currently_playing_type
は再生しているアイテムの種類です。
また、is_playing
には現在再生中かどうかが格納されています。
肝心の楽曲データはitem
に保存されています。
itemの中身
item
の中身には以下の内容があります。
オブジェクト | 格納されているデータ |
---|---|
item.album |
アルバム情報 |
item.artists |
アーティスト情報 |
item.disc_number |
ディスク番号 |
item.duration_ms |
トラックの長さ(ms単位) |
item.explicit |
明確な歌詞があるかどうか (プチリリはfalse) |
item.external_ids |
外部の既知のID (邦楽の場合はISRC) |
item.external_urls |
外部の既知のURL ( item.external_urls.spotify でSpotifyへのリンク) |
item.href |
トラックのAPIエンドポイント (APIを叩くと完全な情報を取得できます) |
item.id |
トラックID |
item.is_local |
ローカルファイルかどうか |
item.is_playable |
指定したマーケットで再生可能かどうか |
item.name |
トラック名 |
item.popularity |
トラックの人気度(100がMAX) |
item.preview_url |
30秒程度のプレビュー(MP3形式) |
item.track_number |
トラック番号 |
item.type |
track |
item.uri |
Spotify URI |
item.albumの中身
アルバム情報が格納されているitem.album
の中身は以下の通りです。
オブジェクト | 格納されているデータ |
---|---|
item.album.album_type |
アルバムのタイプ (album/single/compilationのうちのどれか) |
item.album.artists |
アルバムのアーティスト情報 |
item.album.external_urls |
アルバムへのリンク ( item.album.external_urls.spotify でSpotifyへのリンク) |
item.album.href |
アルバムのAPIエンドポイント (APIをたたくと完全な情報を取得できます) |
item.album.id |
アルバムID |
item.album.images |
アルバムアート |
item.album.is_playable |
指定したマーケットで再生可能かどうか |
item.album.name |
アルバム名 |
item.album.release_date |
リリース日 |
item.album.release_date_precision |
item.album.release_data の精度(year, month, dayのどれか) |
item.album.total_tracks |
総トラック数 |
item.album.type |
album |
item.album.uri |
Spotify URI |
item.artistsの中身
アーティスト情報が格納されているitem.artists
の中身は以下の通りです。
item.artists
は配列となっているためここではitem.artists[0]
の中身を使用します。
オブジェクト | 格納されているデータ |
---|---|
item.artists[0].external_urls |
外部の既知のURL ( item.artists[0].external_urls.spotify でSpotifyへのリンク |
item.artists[0].href |
アーティストのAPIエンドポイント (APIをたたくと完全な情報を取得できます) |
item.artists[0].id |
アーティストID |
item.artists[0].name |
アーティスト名 |
item.artists[0].type |
artist |
item.artists[0].uri |
Spotify URI |
最後に
以上がSpotifyで聴取中の楽曲の情報を取得する方法と返却内容の解説です!
アクセストークンの取得方法については後日記事を書けたらなと思っています💦
Discussion