From 8f71bde776336c442da66f2656e0141881fa9987 Mon Sep 17 00:00:00 2001 From: wb9688 Date: Sat, 9 May 2020 16:47:32 +0200 Subject: [PATCH] Fix bug for YT videos longer than 1000h --- .../services/youtube/YoutubeParsingHelper.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java index e78168ab..88fec795 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java @@ -1,6 +1,5 @@ package org.schabi.newpipe.extractor.services.youtube; - import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonParser; @@ -111,9 +110,7 @@ public class YoutubeParsingHelper { public static long parseDurationString(String input) throws ParsingException, NumberFormatException { - // If time separator : is not detected, try . instead - final String[] splitInput = input.contains(":") ? input.split(":") : input.split("\\."); @@ -145,10 +142,10 @@ public class YoutubeParsingHelper { default: throw new ParsingException("Error duration string with unknown format: " + input); } - return ((((Long.parseLong(days) * 24) - + Long.parseLong(hours) * 60) - + Long.parseLong(minutes)) * 60) - + Long.parseLong(seconds); + return (((Long.parseLong(Utils.removeNonDigitCharacters(days)) * 24) + + Long.parseLong(Utils.removeNonDigitCharacters(hours)) * 60) + + Long.parseLong(Utils.removeNonDigitCharacters(minutes)) * 60) + + Long.parseLong(Utils.removeNonDigitCharacters(seconds)); } public static String getFeedUrlFrom(final String channelIdOrUser) {