Skip to content

Instantly share code, notes, and snippets.

@Mike-Crowley
Created December 5, 2024 03:01
Show Gist options
  • Select an option

  • Save Mike-Crowley/6cc781eb371ac19445b5e3bd6aba3453 to your computer and use it in GitHub Desktop.

Select an option

Save Mike-Crowley/6cc781eb371ac19445b5e3bd6aba3453 to your computer and use it in GitHub Desktop.
$Headers = @{
"Accept" = "application/json"
"authorization" = "Bearer BQAJ" # Can acquire from the browser
}
$uri = @'
https://api.spotify.com/v1/me/top/tracks?limit=50
'@
$QueryResults = [Collections.Generic.List[Object]]::new()
do {
$PageResults = Invoke-RestMethod -Uri $uri -Headers $Headers
if ($PageResults.items) {
$QueryResults.AddRange($PageResults.items)
}
else {
$QueryResults.Add($PageResults)
}
$uri = $PageResults.next
} until (-not $uri)
$OutputFile = ([Environment]::GetFolderPath("Desktop") + "\topTracks.csv")
Write-Host "Found $($QueryResults.count) tracks." -ForegroundColor Cyan
$QueryResults = $QueryResults | Select-Object Name, @{n = "albumName"; e = { $_.album.name } }, @{n = "duration"; e = { [timespan]::FromMilliseconds($_.duration_ms) } }, preview_url
$QueryResults | Export-Csv $OutputFile
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment