diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java index 6d0c38cb..40a22fe5 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java @@ -46,6 +46,9 @@ public class YoutubeCommentsExtractor extends CommentsExtractor { */ @SuppressWarnings("OptionalUsedAsFieldOrParameterType") private Optional optCommentsDisabled = Optional.empty(); + /** + * The second ajax /next response. + */ private JsonObject ajaxJson; public YoutubeCommentsExtractor( @@ -279,14 +282,17 @@ public class YoutubeCommentsExtractor extends CommentsExtractor { @Override public int getCommentsCount() throws ExtractionException { - final JsonObject commentsHeaderRenderer = ajaxJson + final JsonObject countText = ajaxJson .getArray("onResponseReceivedEndpoints").getObject(0) .getObject("reloadContinuationItemsCommand") .getArray("continuationItems").getObject(0) - .getObject("commentsHeaderRenderer"); + .getObject("commentsHeaderRenderer") + .getObject("countText"); - final String text = getTextFromObject(commentsHeaderRenderer.getObject("countText")); - - return Integer.parseInt(Utils.removeNonDigitCharacters(text)); + try { + return Integer.parseInt(Utils.removeNonDigitCharacters(getTextFromObject(countText))); + } catch (final Exception e) { + throw new ExtractionException("Unable to get comments count", e); + } } }