From 41c178e918cd5c4f323286915288240c70c1db97 Mon Sep 17 00:00:00 2001 From: Zsombor Gegesy Date: Sat, 16 Apr 2022 23:49:08 +0200 Subject: [PATCH] Make it really old Android compatible --- .../extractor/services/youtube/YoutubeChannelHelper.java | 6 +++--- .../extractor/services/youtube/YoutubeParsingHelper.java | 8 ++++---- .../YoutubeDashManifestCreatorsUtils.java | 4 ++-- .../youtube/extractors/YoutubeChannelTabExtractor.java | 4 ++-- .../youtube/extractors/YoutubeCommentsExtractor.java | 9 +++++---- .../youtube/extractors/YoutubeMixPlaylistExtractor.java | 6 +++--- .../youtube/extractors/YoutubeMusicSearchExtractor.java | 6 +++--- .../youtube/extractors/YoutubePlaylistExtractor.java | 6 +++--- .../youtube/extractors/YoutubeSearchExtractor.java | 6 +++--- .../youtube/extractors/YoutubeStreamExtractor.java | 8 ++++---- .../youtube/extractors/YoutubeTrendingExtractor.java | 4 ++-- .../java/org/schabi/newpipe/extractor/utils/Utils.java | 6 +++--- 12 files changed, 37 insertions(+), 36 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.java index 31cfa28565..9d48f572d0 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeChannelHelper.java @@ -9,13 +9,13 @@ import javax.annotation.Nonnull; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.Optional; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.defaultAlertsCheck; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonPostResponse; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; /** * Shared functions for extracting YouTube channel pages and tabs. @@ -51,7 +51,7 @@ public static String resolveChannelId(@Nonnull final String idOrPath) prepareDesktopJsonBuilder(Localization.DEFAULT, ContentCountry.DEFAULT) .value("url", "https://www.youtube.com/" + idOrPath) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject jsonResponse = getJsonPostResponse( "navigation/resolve_url", body, Localization.DEFAULT); @@ -143,7 +143,7 @@ public static ChannelResponseData getChannelResponse(@Nonnull final String chann .value("browseId", id) .value("params", parameters) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject jsonResponse = getJsonPostResponse( "browse", body, localization); 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 0c2c2f1ede..df7a820eef 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 @@ -25,6 +25,7 @@ import static org.schabi.newpipe.extractor.utils.Utils.HTTPS; import static org.schabi.newpipe.extractor.utils.Utils.getStringResultFromRegexArray; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonBuilder; @@ -57,7 +58,6 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.OffsetDateTime; import java.time.ZoneOffset; @@ -557,7 +557,7 @@ public static boolean areHardcodedClientVersionAndKeyValid() .end() .value("fetchLiveState", true) .end() - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final var headers = getClientHeaders("1", HARDCODED_CLIENT_VERSION); @@ -798,7 +798,7 @@ public static boolean isHardcodedYoutubeMusicKeyValid() throws IOException, .end() .end() .value("input", "") - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final var headers = new HashMap<>(getOriginReferrerHeaders(YOUTUBE_MUSIC_URL)); @@ -1439,7 +1439,7 @@ public static byte[] createDesktopPlayerBody( .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java index 33fe3207ca..a01ce0e017 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/dashmanifestcreators/YoutubeDashManifestCreatorsUtils.java @@ -8,6 +8,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isTvHtml5SimplyEmbeddedPlayerStreamingUrl; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isWebStreamingUrl; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.NewPipe; @@ -25,7 +26,6 @@ import java.io.IOException; import java.io.StringWriter; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Locale; import java.util.Map; @@ -623,7 +623,7 @@ public static Response getInitializationResponse(@Nonnull String baseStreamingUr final var headers = Map.of("User-Agent", List.of(isAndroidStreamingUrl ? getAndroidUserAgent(null) : getIosUserAgent(null))); - final byte[] emptyBody = "".getBytes(StandardCharsets.UTF_8); + final byte[] emptyBody = "".getBytes(UTF_8); return downloader.post(baseStreamingUrl, headers, emptyBody); } catch (final IOException | ExtractionException e) { throw new CreationException("Could not get the " diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java index 27524ee169..fc67f1b731 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java @@ -20,7 +20,6 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Optional; @@ -33,6 +32,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextFromObject; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; /** * A {@link ChannelTabExtractor} implementation for the YouTube service. @@ -423,7 +423,7 @@ private Page getNextPageFrom(final JsonObject continuations, useVisitorData && channelIds.size() >= 3 ? channelIds.get(2) : null) .value("continuation", continuation) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); return new Page(YOUTUBEI_V1_URL + "browse?key=" + getKey() + DISABLE_PRETTY_PRINT_PARAMETER, null, channelIds, null, body); 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 84e6c3e1e1..f954b3c2e9 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 @@ -3,6 +3,7 @@ import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonWriter; + import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.comments.CommentsExtractor; @@ -19,13 +20,13 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getJsonPostResponse; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextFromObject; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; public class YoutubeCommentsExtractor extends CommentsExtractor { @@ -191,7 +192,7 @@ public InfoItemsPage getPage(final Page page) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("continuation", page.getId()) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on final JsonObject jsonObject = getJsonPostResponse("next", body, localization); @@ -272,7 +273,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("videoId", getId()) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on final String initialToken = @@ -287,7 +288,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) prepareDesktopJsonBuilder(localization, getExtractorContentCountry()) .value("continuation", initialToken) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on ajaxJson = getJsonPostResponse("next", ajaxBody, localization); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java index c88a2918e5..60324fa213 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java @@ -11,6 +11,7 @@ import static org.schabi.newpipe.extractor.utils.Utils.getQueryValue; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; import static org.schabi.newpipe.extractor.utils.Utils.stringToURL; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonBuilder; @@ -41,7 +42,6 @@ import java.io.IOException; import java.net.URL; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -97,7 +97,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) jsonBody.value("playlistIndex", Integer.parseInt(playlistIndexString)); } - final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(StandardCharsets.UTF_8); + final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(UTF_8); // Cookie is required due to consent final var headers = getYouTubeHeaders(); @@ -223,7 +223,7 @@ private Page getNextPageFrom(@Nonnull final JsonObject playlistJson, .value("playlistIndex", index) .value("params", params) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); return new Page(YOUTUBEI_V1_URL + "next?key=" + getKey(), null, null, cookies, body); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java index 3efe6a74ea..310d388018 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java @@ -10,6 +10,7 @@ import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.MUSIC_SONGS; import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.MUSIC_VIDEOS; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; @@ -32,7 +33,6 @@ import org.schabi.newpipe.extractor.utils.JsonUtils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; @@ -107,7 +107,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) .end() .value("query", getSearchString()) .value("params", params) - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final String responseBody = getValidJsonResponseBody( @@ -235,7 +235,7 @@ public InfoItemsPage getPage(final Page page) .value("enableSafetyMode", false) .end() .end() - .end().done().getBytes(StandardCharsets.UTF_8); + .end().done().getBytes(UTF_8); // @formatter:on final String responseBody = getValidJsonResponseBody( diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java index bb4df7cd29..8dca41e664 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java @@ -10,6 +10,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getUrlFromNavigationEndpoint; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; @@ -33,7 +34,6 @@ import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.List; import javax.annotation.Nonnull; @@ -71,7 +71,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) throws IOException .value("browseId", "VL" + getId()) .value("params", "wgYCCAA%3D") // Show unavailable videos .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); browseResponse = getJsonPostResponse("browse", body, localization); YoutubeParsingHelper.defaultAlertsCheck(browseResponse); @@ -385,7 +385,7 @@ private Page getNextPageFrom(final JsonArray contents) getExtractorLocalization(), getExtractorContentCountry()) .value("continuation", continuation) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); return new Page(YOUTUBEI_V1_URL + "browse?key=" + getKey() + DISABLE_PRETTY_PRINT_PARAMETER, body); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java index b56eac8dec..402be26327 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java @@ -8,6 +8,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory.getSearchParameter; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonBuilder; @@ -30,7 +31,6 @@ import org.schabi.newpipe.extractor.utils.JsonUtils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.List; import javax.annotation.Nonnull; @@ -87,7 +87,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) throws IOException jsonBody.value("params", params); } - final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(StandardCharsets.UTF_8); + final byte[] body = JsonWriter.string(jsonBody.done()).getBytes(UTF_8); initialData = getJsonPostResponse("search", body, localization); } @@ -190,7 +190,7 @@ public InfoItemsPage getPage(final Page page) throws IOException, getExtractorContentCountry()) .value("continuation", page.getId()) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on final JsonObject ajaxJson = getJsonPostResponse("search", json, localization); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java index be008fa239..a591a26bc1 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java @@ -40,6 +40,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareIosMobileJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonArray; import com.grack.nanojson.JsonObject; @@ -86,7 +87,6 @@ import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; @@ -838,7 +838,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); nextResponse = getJsonPostResponse(NEXT, body, localization); // streamType can only have LIVE_STREAM, POST_LIVE_STREAM and VIDEO_STREAM values (see @@ -945,7 +945,7 @@ private void fetchAndroidMobileJsonPlayer(@Nonnull final ContentCountry contentC // using some parameters for Android client requests .value("params", "CgIQBg") .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject androidPlayerResponse = getJsonAndroidPostResponse(PLAYER, mobileBody, localization, "&t=" + generateTParameter() @@ -980,7 +980,7 @@ private void fetchIosMobileJsonPlayer(@Nonnull final ContentCountry contentCount .value(CONTENT_CHECK_OK, true) .value(RACY_CHECK_OK, true) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); final JsonObject iosPlayerResponse = getJsonIosPostResponse(PLAYER, mobileBody, localization, "&t=" + generateTParameter() diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java index 2976edc4db..62953ce137 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java @@ -24,6 +24,7 @@ import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.getTextAtKey; import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.prepareDesktopJsonBuilder; import static org.schabi.newpipe.extractor.utils.Utils.isNullOrEmpty; +import static org.schabi.newpipe.extractor.utils.Utils.UTF_8; import com.grack.nanojson.JsonObject; import com.grack.nanojson.JsonWriter; @@ -40,7 +41,6 @@ import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.stream.Stream; import javax.annotation.Nonnull; @@ -68,7 +68,7 @@ public void onFetchPage(@Nonnull final Downloader downloader) .value("browseId", "FEtrending") .value("params", VIDEOS_TAB_PARAMS) .done()) - .getBytes(StandardCharsets.UTF_8); + .getBytes(UTF_8); // @formatter:on initialData = getJsonPostResponse("browse", body, getExtractorLocalization()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java index dd990c0ead..18a613258b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java @@ -7,7 +7,6 @@ import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; -import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.Collection; import java.util.Map; @@ -23,6 +22,7 @@ public final class Utils { public static final String HTTPS = "https://"; private static final Pattern M_PATTERN = Pattern.compile("(https?)?://m\\."); private static final Pattern WWW_PATTERN = Pattern.compile("(https?)?://www\\."); + public static final String UTF_8 = "UTF-8"; private Utils() { // no instance @@ -37,7 +37,7 @@ private Utils() { */ public static String encodeUrlUtf8(final String string) throws UnsupportedEncodingException { // TODO: Switch to URLEncoder.encode(String, Charset) in Java 10. - return URLEncoder.encode(string, StandardCharsets.UTF_8.name()); + return URLEncoder.encode(string, UTF_8); } /** @@ -48,7 +48,7 @@ public static String encodeUrlUtf8(final String string) throws UnsupportedEncodi */ public static String decodeUrlUtf8(final String url) throws UnsupportedEncodingException { // TODO: Switch to URLDecoder.decode(String, Charset) in Java 10. - return URLDecoder.decode(url, StandardCharsets.UTF_8.name()); + return URLDecoder.decode(url, UTF_8); } /**