From: Francesco <66080458+chicco-carone@users.noreply.github.com> Date: Wed, 2 Jul 2025 10:04:40 +0000 (+0200) Subject: Implement pagination for plex provider (#2253) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=4669e71ceef5552f0eb918df9acd673a2ede317a;p=music-assistant-server.git Implement pagination for plex provider (#2253) --- diff --git a/music_assistant/providers/plex/__init__.py b/music_assistant/providers/plex/__init__.py index e997da59..3af9d08d 100644 --- a/music_assistant/providers/plex/__init__.py +++ b/music_assistant/providers/plex/__init__.py @@ -827,9 +827,23 @@ class PlexProvider(MusicProvider): async def get_library_tracks(self) -> AsyncGenerator[Track, None]: """Retrieve library tracks from Plex Music.""" - tracks_obj = await self._search_track(None, limit=99999) - for track in tracks_obj: - yield await self._parse_track(track) + page_size = 500 + offset = 0 + while True: + batch = cast( + "list[PlexTrack]", + await self._run_async( + self._plex_library.searchTracks, + title=None, + limit=page_size, + offset=offset, + ), + ) + if not batch: + break + for plex_track in batch: + yield await self._parse_track(plex_track) + offset += page_size async def get_album(self, prov_album_id: str) -> Album: """Get full album details by id."""