From 4d53fd2c6366d8faba55b8430a4fc8139c096e88 Mon Sep 17 00:00:00 2001 From: wardbox Date: Sat, 14 Mar 2026 14:25:05 -0700 Subject: [PATCH 1/2] Rename playlist /tracks endpoints to /items per Spotify API changes Spotify's Feb 2026 API update renames all playlist track management endpoints from /playlists/{id}/tracks to /playlists/{id}/items, and the request body key from "tracks" to "items". Closes #72 Co-Authored-By: Claude Opus 4.6 (1M context) --- Spotishell/Public/Playlists/Add-PlaylistItem.ps1 | 2 +- Spotishell/Public/Playlists/Edit-PlaylistOrder.ps1 | 2 +- Spotishell/Public/Playlists/Get-PlaylistItems.ps1 | 2 +- Spotishell/Public/Playlists/Remove-PlaylistItems.ps1 | 4 ++-- Spotishell/Public/Playlists/Set-PlaylistItems.ps1 | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Spotishell/Public/Playlists/Add-PlaylistItem.ps1 b/Spotishell/Public/Playlists/Add-PlaylistItem.ps1 index aa49e4b..83f4b84 100644 --- a/Spotishell/Public/Playlists/Add-PlaylistItem.ps1 +++ b/Spotishell/Public/Playlists/Add-PlaylistItem.ps1 @@ -51,7 +51,7 @@ function Add-PlaylistItem { ) $Method = 'Post' - $Uri = "https://api.spotify.com/v1/playlists/$Id/tracks" + $Uri = "https://api.spotify.com/v1/playlists/$Id/items" # Convert plain IDs to URIs, pass through existing URIs unchanged # Use @() to ensure result is always an array (single items would otherwise be strings) diff --git a/Spotishell/Public/Playlists/Edit-PlaylistOrder.ps1 b/Spotishell/Public/Playlists/Edit-PlaylistOrder.ps1 index 054841d..035808e 100644 --- a/Spotishell/Public/Playlists/Edit-PlaylistOrder.ps1 +++ b/Spotishell/Public/Playlists/Edit-PlaylistOrder.ps1 @@ -47,7 +47,7 @@ function Edit-PlaylistOrder { ) $Method = 'Put' - $Uri = "https://api.spotify.com/v1/playlists/$Id/tracks" + $Uri = "https://api.spotify.com/v1/playlists/$Id/items" $BodyHashtable = @{ range_start = $RangeStart diff --git a/Spotishell/Public/Playlists/Get-PlaylistItems.ps1 b/Spotishell/Public/Playlists/Get-PlaylistItems.ps1 index c4eb98c..2d05f9b 100644 --- a/Spotishell/Public/Playlists/Get-PlaylistItems.ps1 +++ b/Spotishell/Public/Playlists/Get-PlaylistItems.ps1 @@ -37,7 +37,7 @@ function Get-PlaylistItems { ) $Method = 'Get' - $Uri = "https://api.spotify.com/v1/playlists/$Id/tracks?limit=100" + $Uri = "https://api.spotify.com/v1/playlists/$Id/items?limit=100" $Query = @() if ($Field) { $Query += 'fields=' + $Field } diff --git a/Spotishell/Public/Playlists/Remove-PlaylistItems.ps1 b/Spotishell/Public/Playlists/Remove-PlaylistItems.ps1 index 3143795..3337ef7 100644 --- a/Spotishell/Public/Playlists/Remove-PlaylistItems.ps1 +++ b/Spotishell/Public/Playlists/Remove-PlaylistItems.ps1 @@ -39,11 +39,11 @@ function Remove-PlaylistItems { ) $Method = 'Delete' - $Uri = "https://api.spotify.com/v1/playlists/$Id/tracks" + $Uri = "https://api.spotify.com/v1/playlists/$Id/items" for ($i = 0; $i -lt $Track.Count; $i += 100) { - $BodyHashtable = @{tracks = $Track[$i..($i + 99)] } + $BodyHashtable = @{items = $Track[$i..($i + 99)] } if ($SnapshotId) { $BodyHashtable.snapshot_id = $SnapshotId } $Body = ConvertTo-Json $BodyHashtable -Compress diff --git a/Spotishell/Public/Playlists/Set-PlaylistItems.ps1 b/Spotishell/Public/Playlists/Set-PlaylistItems.ps1 index 0dd7c1f..c89a13c 100644 --- a/Spotishell/Public/Playlists/Set-PlaylistItems.ps1 +++ b/Spotishell/Public/Playlists/Set-PlaylistItems.ps1 @@ -29,7 +29,7 @@ function Set-PlaylistItems { ) $Method = 'Put' - $Uri = "https://api.spotify.com/v1/playlists/$Id/tracks" + $Uri = "https://api.spotify.com/v1/playlists/$Id/items" if ($Uris) { From d9c6eaa6de73efa9fd2eb02c4150c9f018842c44 Mon Sep 17 00:00:00 2001 From: wardbox Date: Sat, 14 Mar 2026 14:27:46 -0700 Subject: [PATCH 2/2] Update test to match /items endpoint rename Co-Authored-By: Claude Opus 4.6 (1M context) --- Tests/Spotishell.Tests.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/Spotishell.Tests.ps1 b/Tests/Spotishell.Tests.ps1 index bfa78cd..9d14ba4 100644 --- a/Tests/Spotishell.Tests.ps1 +++ b/Tests/Spotishell.Tests.ps1 @@ -386,7 +386,7 @@ Describe 'Add-PlaylistItem Behavior' { Add-PlaylistItem -Id 'myplaylist789' -ItemId 'track123' Should -Invoke Send-SpotifyCall -ModuleName Spotishell -ParameterFilter { - $Uri -eq 'https://api.spotify.com/v1/playlists/myplaylist789/tracks' -and + $Uri -eq 'https://api.spotify.com/v1/playlists/myplaylist789/items' -and $Method -eq 'Post' } }