mirror of
https://github.com/aome510/spotify-player.git
synced 2026-04-26 09:25:49 +03:00
[GH-ISSUE #782] [Feature] Paginate very large playlists #468
Labels
No labels
bug
documentation
enhancement
good first issue
help wanted
pull-request
question
third-party
third-party
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/spotify-player#468
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @RiverOmega on GitHub (Jul 28, 2025).
Original GitHub issue: https://github.com/aome510/spotify-player/issues/782
Is your feature already implemented in the latest
master?No
Is your feature request related to a problem? Please describe.
Not sure, tried searching the issues but came up empty.
Describe the solution you'd like
When loading a very large playlist (thousands upon thousands of songs) the client takes a long time indexing all of them. Instead, it would be nice if the client could load pages (size around 100 maybe?) progressively as you scroll/play along.
Describe alternatives you've considered
Pagination is a common concept when handling large lists, I haven't really considered other alternatives.
Additional context
No
@aome510 commented on GitHub (Aug 5, 2025):
The pagination logic can probably be implemented by spawning an async task in background that lazily fetches the track data page-by-page and update the data stored in the state. In other words, the task should implement the logic in
github.com/aome510/spotify-player@b92c7379b1/spotify_player/src/client/mod.rs (L1318-L1323)but instead update the state upon fetching a new page.
@aome510 commented on GitHub (Sep 6, 2025):
Duplicate of #502
@aaratha commented on GitHub (Dec 23, 2025):
I’d be interested in taking a crack at this. I'm thinking a
PagedListstruct could be implemented instate::modeland replaceVec<Track>inContext::Tracks, so liked tracks and large playlists can share paging logic. Shuffling could be problematic, but I guess there are two options: (1) fetch remaining pages on demand (async, with a progress indicator) before shuffling, or (2) maintain a lightweight full list of track IDs/URIs for shuffle while paging full track data for UI. Curious to hear thoughts about this.