diff --git a/YoutubeScript.js b/YoutubeScript.js index dc78306de0f437b8d3f6b7d3be7c34039c77810b..87bf14d2a35117720ce0a5efd488c42a05ed335f 100644 --- a/YoutubeScript.js +++ b/YoutubeScript.js @@ -1258,7 +1258,7 @@ class RichGridPager extends VideoPager { const newData = validateContinuation(()=>requestBrowse({ continuation: this.continuation.token }, !!this.useMobile, !!this.useAuth)); - if(newData.length > 0) { + if(newData && newData.length > 0) { const fakeRichGrid = { contents: newData }; @@ -3201,16 +3201,32 @@ function validateContinuation(reqcb, useAuth = false) { const clientContext = getClientContext(useAuth); const result = reqcb(); const append = result?.onResponseReceivedCommands ?? result?.onResponseReceivedActions; - if(append && append.length > 0 && append[0].appendContinuationItemsAction) - return append[0].appendContinuationItemsAction.continuationItems; + if(append && append.length > 0 && append[0].appendContinuationItemsAction) { + const appendResults = append[0].appendContinuationItemsAction.continuationItems; + if(!appendResults) { + if(IS_TESTING) + console.log("Continuation found without items?", result); + return []; + } + else + return appendResults; + } else if(!clientContext.INNERTUBE_CONTEXT.client.visitorData && result.responseContext?.visitorData) { log("[validateContinuation] No visitor data set, found visitor data in response, retrying"); clientContext.INNERTUBE_CONTEXT.client.visitorData = result.responseContext.visitorData; //Retry with visitorData const reResult = reqcb(); log("[validateContinuation] retry result"); - if(append && append.length > 0 && append[0].appendContinuationItemsAction) - return append[0].appendContinuationItemsAction.continuationItems; + if(append && append.length > 0 && append[0].appendContinuationItemsAction) { + const appendResults = append[0].appendContinuationItemsAction.continuationItems; + if(!appendResults) { + if(IS_TESTING) + console.log("Continuation found without items?", result); + return []; + } + else + return appendResults; + } else return []; }