From 7442f91aa619a57b73ece4ca43160420585e1464 Mon Sep 17 00:00:00 2001 From: wb9688 Date: Sun, 23 Feb 2020 14:18:21 +0100 Subject: [PATCH] Don't assume which channel tab is videos --- .../extractors/YoutubeChannelExtractor.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java index 1cb448e4e..ed987f243 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java @@ -248,9 +248,22 @@ public class YoutubeChannelExtractor extends ChannelExtractor { final String uploaderUrl = getUrl(); final TimeAgoParser timeAgoParser = getTimeAgoParser(); - JsonArray videos = initialData.getObject("contents").getObject("twoColumnBrowseResultsRenderer") - .getArray("tabs").getObject(1).getObject("tabRenderer").getObject("content") - .getObject("sectionListRenderer").getArray("contents"); + JsonArray tabs = initialData.getObject("contents").getObject("twoColumnBrowseResultsRenderer") + .getArray("tabs"); + JsonArray videos = null; + + for (Object tab : tabs) { + if (((JsonObject) tab).getObject("tabRenderer") != null) { + if (((JsonObject) tab).getObject("tabRenderer").getString("title").equals("Videos")) { + videos = ((JsonObject) tab).getObject("tabRenderer").getObject("content") + .getObject("sectionListRenderer").getArray("contents"); + } + } + } + + if (videos == null) { + throw new ParsingException("Could not find Videos tab"); + } for (Object video : videos) { JsonObject videoInfo = ((JsonObject) video).getObject("itemSectionRenderer")