I think something like this still works with a client id, secret, and a playlist: TOKEN=$(curl --basic --user $ID:$SECRET -X POST -d grant_type=client_credentials https://accounts.spotify.com/api/token | jq -r .access_token) curl -H "Authorization: Bearer $TOKEN" https://api.spotify.com/v1/playlists/$PLAYLIST/tracks | tee playlist-$PLAYLIST.json | jq -rc '.items[].track | "\(.artists[0].name) -- \(.name)"' | sort
It works, but the tracks api is limited to 100 max results, so you have to call it multiple times with offset for larger playlists [1]. [1] https://developer.spotify.com/documentation/web-api/referenc...
It should be possible to script that out too.