Skip to content

Commit 325a51f

Browse files
committed
[YouTube] Do not crash if there is no next stream, but return null
Like every other extractor does if there is no next stream
1 parent 6446abc commit 325a51f

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -523,10 +523,18 @@ public StreamInfoItem getNextStream() throws ExtractionException {
523523
if (getAgeLimit() != NO_AGE_LIMIT) return null;
524524

525525
try {
526-
final JsonObject videoInfo = initialData.getObject("contents").getObject("twoColumnWatchNextResults")
527-
.getObject("secondaryResults").getObject("secondaryResults").getArray("results")
528-
.getObject(0).getObject("compactAutoplayRenderer").getArray("contents")
529-
.getObject(0).getObject("compactVideoRenderer");
526+
final JsonObject firstWatchNextItem = initialData.getObject("contents")
527+
.getObject("twoColumnWatchNextResults").getObject("secondaryResults")
528+
.getObject("secondaryResults").getArray("results").getObject(0);
529+
530+
if (!firstWatchNextItem.has("compactAutoplayRenderer")) {
531+
// there is no "next" stream
532+
return null;
533+
}
534+
535+
final JsonObject videoInfo = firstWatchNextItem.getObject("compactAutoplayRenderer")
536+
.getArray("contents").getObject(0).getObject("compactVideoRenderer");
537+
530538
final TimeAgoParser timeAgoParser = getTimeAgoParser();
531539
StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId());
532540

0 commit comments

Comments
 (0)