Spotify API: Get Current User's Playlists
Notes
Data is output to the console
Current gets a max of 1,000 playlists
Change maxLoopCount to up that number
JavaScript
const user_id = localStorage.getItem("spotify_example_user_id")
const access_token = localStorage.getItem("spotify_example_access_token")
const getPlaylists = async () => {
let playlists = []
let maxLoopCount = 20
for (let i=0; i<maxLoopCount; i++) {
const url = new URL(`https://api.spotify.com/v1/me/playlists`)
const params = {
offset: 50 * i,
limit: 50
}
url.search = new URLSearchParams(params).toString()
const payload = {
method: 'GET',
headers: {
'Authorization': `Bearer ${access_token}`
},
}
const body = await fetch(url, payload)
const response = await body.json()
if (!response.next) {
i = maxLoopCount
}
response.items.forEach((item) => {
playlists.push(item)
})
}
return playlists
}
const pullPlaylists = async () => {
let output = ""
const data = await getPlaylists()
data.forEach((item) => {
output += `${item.name}\n`
})
spotifyData.innerHTML = output
}
document.addEventListener("DOMContentLoaded", () => {
if (user_id) {
pullPlaylists()
} else {
spotifyData.innerHTML = "Not logged in"
}
})