From b89b6b1db229c522fd1eebbb6aed60ee41e8fc4d Mon Sep 17 00:00:00 2001 From: wb9688 Date: Fri, 28 Feb 2020 16:35:24 +0100 Subject: [PATCH] Check if hard-coded client version is valid in separate function --- .../linkHandler/YoutubeParsingHelper.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeParsingHelper.java index 0061d6d0..5a33e4ce 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/linkHandler/YoutubeParsingHelper.java @@ -175,15 +175,7 @@ public class YoutubeParsingHelper { } } - /** - * Get the client version from a page - * @return - * @throws ParsingException - */ - public static String getClientVersion() throws ParsingException { - if (clientVersion != null && !clientVersion.isEmpty()) return clientVersion; - - // Test if hard-coded client version is valid + public static boolean isHardcodedClientVersionValid() { try { final String url = "https://www.youtube.com/results?search_query=test&pbj=1"; @@ -193,11 +185,26 @@ public class YoutubeParsingHelper { Collections.singletonList(HARDCODED_CLIENT_VERSION)); final String response = getDownloader().get(url, headers).responseBody(); if (response.length() > 50) { // ensure to have a valid response - clientVersion = HARDCODED_CLIENT_VERSION; - return clientVersion; + return true; } } catch (Exception ignored) {} + return false; + } + + /** + * Get the client version from a page + * @return + * @throws ParsingException + */ + public static String getClientVersion() throws ParsingException { + if (clientVersion != null && !clientVersion.isEmpty()) return clientVersion; + + if (isHardcodedClientVersionValid()) { + clientVersion = HARDCODED_CLIENT_VERSION; + return clientVersion; + } + // Try extracting it from YouTube's website otherwise try { final String url = "https://www.youtube.com/results?search_query=test";