From 4ea8fa25615afd6e3905dbee968e352d5464792e Mon Sep 17 00:00:00 2001 From: Dylan Corrales Date: Fri, 28 Feb 2025 09:25:01 -0500 Subject: [PATCH] fix: Filter for only `MusicResponsiveListItem` in playlist items (#3022) --- src/plugins/downloader/main/index.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/plugins/downloader/main/index.ts b/src/plugins/downloader/main/index.ts index 6d817aa5..484f233a 100644 --- a/src/plugins/downloader/main/index.ts +++ b/src/plugins/downloader/main/index.ts @@ -639,7 +639,12 @@ export async function downloadPlaylist(givenUrl?: string | URL) { try { playlist = await yt.music.getPlaylist(playlistId); if (playlist?.items) { - items.push(...playlist.items.as(YTNodes.MusicResponsiveListItem)); + const filteredItems = playlist.items.filter( + (item): item is YTNodes.MusicResponsiveListItem => + item instanceof YTNodes.MusicResponsiveListItem, + ); + + items.push(...filteredItems); } } catch (error: unknown) { sendError( @@ -674,9 +679,13 @@ export async function downloadPlaylist(givenUrl?: string | URL) { while (playlist.has_continuation) { playlist = await playlist.getContinuation(); - if (playlist?.items) { - items.push(...playlist.items.as(YTNodes.MusicResponsiveListItem)); - } + + const filteredItems = playlist.items.filter( + (item): item is YTNodes.MusicResponsiveListItem => + item instanceof YTNodes.MusicResponsiveListItem, + ); + + items.push(...filteredItems); } if (items.length === 1) {