Open
Description
Bug Report
The PlaylistManager.removeItems() method uses a deprecated format for the request.
What i expected:
The DELETE request to succeed and the track to be deleted.
What actually happened:
I get the error message
SpotifyAPIError: {"error":{"status":400,"message":"JSON body doesn't conform to specification"}}
Upon investigating I found that the call looks like this:
url: 'https://api.spotify.com/v1/playlists/16N...Unimd/tracks',
method: 'delete',
data: '{"uris":[{"uri":"spotify:track:2wwXXU...5"}]}' <--- WRONG SYNTAX HERE
Note the "uris" before the array of track objects.
The Spotify API docs describe the API as expecting this format:
"tracks": [ { "uri": "string" } ],
(Source)
Which causes the issue.
To reproduce this bug:
Create a client (here I do it with an existing refresh token):
import * as Spotify from "spotify-api.js"
const client = await Spotify.Client.create({
token: {
clientID: SPOTIFY_CLIENT_ID,
clientSecret: SPOTIFY_CLIENT_SECRET,
refreshToken: refresh_token
}
});
Then use the removeItems method to make the DELETE request to the API:
await client.playlists.removeItems(playlist.spotify_uri, [`spotify:track:${song_uri}`])
- Library Version: 9.2.5
Anyway, thanks for your work! It’s made my life easier in the instances where it does work.
Metadata
Metadata
Assignees
Labels
No labels