Skip to content

Commit

Permalink
Make it really old Android compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
gzsombor committed Feb 1, 2023
1 parent e920ab3 commit 818745b
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -53,7 +54,6 @@
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.security.SecureRandom;
import java.time.LocalDate;
import java.time.OffsetDateTime;
Expand Down Expand Up @@ -553,7 +553,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);
Expand Down Expand Up @@ -794,7 +794,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));
Expand Down Expand Up @@ -1376,7 +1376,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
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -24,7 +25,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;
Expand Down Expand Up @@ -585,7 +585,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 "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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 {
Expand Down Expand Up @@ -176,7 +177,7 @@ public InfoItemsPage<CommentsInfoItem> 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);
Expand Down Expand Up @@ -257,7 +258,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 =
Expand All @@ -272,7 +273,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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -37,7 +38,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;
Expand Down Expand Up @@ -86,7 +86,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();
Expand Down Expand Up @@ -205,7 +205,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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -31,7 +32,6 @@
import org.schabi.newpipe.extractor.utils.Utils;

import java.io.IOException;
import java.nio.charset.StandardCharsets;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -65,7 +65,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);
Expand Down Expand Up @@ -375,7 +375,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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,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;
Expand Down Expand Up @@ -87,7 +88,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;
Expand Down Expand Up @@ -887,7 +887,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
Expand Down Expand Up @@ -996,7 +996,7 @@ private void fetchAndroidMobileJsonPlayer(@Nonnull final ContentCountry contentC
// 10.29.2022
.value("params", "8AEB")
.done())
.getBytes(StandardCharsets.UTF_8);
.getBytes(UTF_8);

final JsonObject androidPlayerResponse = getJsonAndroidPostResponse(PLAYER,
mobileBody, localization, "&t=" + generateTParameter()
Expand Down Expand Up @@ -1031,7 +1031,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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand All @@ -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);
}

/**
Expand All @@ -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);
}

/**
Expand Down

0 comments on commit 818745b

Please sign in to comment.