[GH-ISSUE #416] Client method to sync playlist content efficiently using multible api calls. #136

Closed
opened 2026-02-27 20:23:20 +03:00 by kerem · 3 comments
Owner

Originally created by @blueforesticarus on GitHub (May 26, 2023).
Original GitHub issue: https://github.com/ramsayleung/rspotify/issues/416

Is your feature request related to a problem? Please describe.
I am working on a program which synchronizes spotify playlists. For this I often need to make the content of a playlist equal to a list of tracks. Similar issue to #296.

Describe the solution you'd like
A client function that replaces the content of a playlist with a list of tracks. (using the minimum number of inserts and deletes).

Describe alternatives you've considered
You can of course clear the playlist and add all the tracks, but for large playlists it is very slow as only 100 items can be added per API call. This could reasonably mean 30+ api calls, even when you are only adding/deleting a few things.

Additional context
I actually already have to write this logic (I am porting this function from this project).

Is this something you would be interested in me upstreaming?

Originally created by @blueforesticarus on GitHub (May 26, 2023). Original GitHub issue: https://github.com/ramsayleung/rspotify/issues/416 **Is your feature request related to a problem? Please describe.** I am working on a program which synchronizes spotify playlists. For this I often need to *make the content of a playlist equal to a list of tracks*. Similar issue to #296. **Describe the solution you'd like** A client function that replaces the content of a playlist with a list of tracks. (using the minimum number of inserts and deletes). **Describe alternatives you've considered** You can of course clear the playlist and add all the tracks, but for large playlists it is very slow as only 100 items can be added per API call. This could reasonably mean 30+ api calls, even when you are only adding/deleting a few things. **Additional context** I actually already have to write this logic (I am porting [this function](https://github.com/blueforesticarus/goontunes/blob/master/playlist.go#L161-L269) from [this project](https://github.com/blueforesticarus/goontunes/blob/master/playlist.go#L161-L269)). Is this something you would be interested in me upstreaming?
kerem 2026-02-27 20:23:20 +03:00
Author
Owner

@blueforesticarus commented on GitHub (May 26, 2023):

This is essentially the logic part btw github.com/blueforesticarus/goontunes2@034994bffb

<!-- gh-comment-id:1564835256 --> @blueforesticarus commented on GitHub (May 26, 2023): This is essentially the logic part btw https://github.com/blueforesticarus/goontunes2/commit/034994bffbe3270ab9e812ac981e22c43c25d7cd
Author
Owner

@github-actions[bot] commented on GitHub (Nov 23, 2023):

Message to comment on stale issues. If none provided, will not mark issues stale

<!-- gh-comment-id:1823740575 --> @github-actions[bot] commented on GitHub (Nov 23, 2023): Message to comment on stale issues. If none provided, will not mark issues stale
Author
Owner

@github-actions[bot] commented on GitHub (Nov 27, 2025):

Message to comment on stale issues. If none provided, will not mark issues stale

<!-- gh-comment-id:3584009378 --> @github-actions[bot] commented on GitHub (Nov 27, 2025): Message to comment on stale issues. If none provided, will not mark issues stale
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/rspotify#136
No description provided.