From ede0a8fddb02bd772bebb65086277f62a0adca50 Mon Sep 17 00:00:00 2001 From: Hazmi35 Date: Mon, 30 Aug 2021 13:36:35 +0700 Subject: [PATCH 1/3] fix: Handle empty playlist --- lib/main.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/main.js b/lib/main.js index 4a24210..5ef8abc 100644 --- a/lib/main.js +++ b/lib/main.js @@ -66,11 +66,16 @@ const main = module.exports = async(linkOrId, options, rt = 3) => { }; // Parse videos - const rawVideoList = parsed.json.contents + const playlistVideoListRenderer = parsed.json.contents .twoColumnBrowseResultsRenderer.tabs[0].tabRenderer.content .sectionListRenderer.contents[0] .itemSectionRenderer.contents[0] - .playlistVideoListRenderer.contents; + .playlistVideoListRenderer; + + const rawVideoList = playlistVideoListRenderer ? playlistVideoListRenderer.contents : null; + + if (rawVideoList === null) throw new Error('Playlist is empty'); + resp.items = rawVideoList.map(PARSE_ITEM).filter(a => a).filter((_, index) => index < opts.limit); // Adjust tracker From 6b780f01e35750a57fd470292701c3e2eeac6e26 Mon Sep 17 00:00:00 2001 From: Hazmi35 Date: Mon, 30 Aug 2021 13:40:54 +0700 Subject: [PATCH 2/3] fix: Use undefined instead of null --- lib/main.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/main.js b/lib/main.js index 5ef8abc..7a553d0 100644 --- a/lib/main.js +++ b/lib/main.js @@ -72,9 +72,9 @@ const main = module.exports = async(linkOrId, options, rt = 3) => { .itemSectionRenderer.contents[0] .playlistVideoListRenderer; - const rawVideoList = playlistVideoListRenderer ? playlistVideoListRenderer.contents : null; + const rawVideoList = playlistVideoListRenderer ? playlistVideoListRenderer.contents : undefined; - if (rawVideoList === null) throw new Error('Playlist is empty'); + if (rawVideoList === undefined) throw new Error('Playlist is empty'); resp.items = rawVideoList.map(PARSE_ITEM).filter(a => a).filter((_, index) => index < opts.limit); From d3519ab6f1b2929ba1a673191223d5e2bf8f6643 Mon Sep 17 00:00:00 2001 From: Hazmi35 Date: Wed, 8 Sep 2021 20:15:28 +0700 Subject: [PATCH 3/3] fix: Use empty array instead throwing an error --- lib/main.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/main.js b/lib/main.js index 7a553d0..cfc8bdd 100644 --- a/lib/main.js +++ b/lib/main.js @@ -72,9 +72,7 @@ const main = module.exports = async(linkOrId, options, rt = 3) => { .itemSectionRenderer.contents[0] .playlistVideoListRenderer; - const rawVideoList = playlistVideoListRenderer ? playlistVideoListRenderer.contents : undefined; - - if (rawVideoList === undefined) throw new Error('Playlist is empty'); + const rawVideoList = playlistVideoListRenderer ? playlistVideoListRenderer.contents : []; resp.items = rawVideoList.map(PARSE_ITEM).filter(a => a).filter((_, index) => index < opts.limit);