diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamHelper.java index 1b17058a1..9f005299b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamHelper.java @@ -119,7 +119,8 @@ public final class YoutubeStreamHelper { @Nonnull final Localization localization, @Nonnull final ContentCountry contentCountry, @Nonnull final String videoId, - @Nonnull final String cpn) throws IOException, ExtractionException { + @Nonnull final String cpn, + final int signatureTimestamp) throws IOException, ExtractionException { final InnertubeClientRequestInfo innertubeClientRequestInfo = new InnertubeClientRequestInfo( new InnertubeClientRequestInfo.ClientInfo( @@ -154,6 +155,8 @@ public final class YoutubeStreamHelper { addVideoIdCpnAndOkChecks(builder, videoId, cpn); + addPlaybackContext(builder, BASE_YT_DESKTOP_WATCH_URL + videoId, signatureTimestamp); + final byte[] body = JsonWriter.string(builder.done()) .getBytes(StandardCharsets.UTF_8); 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 e2a49f7da..76ef2771b 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 @@ -941,7 +941,8 @@ public class YoutubeStreamExtractor extends StreamExtractor { final JsonObject tvHtml5PlayerResponse = YoutubeStreamHelper.getTvHtml5PlayerResponse( - localization, contentCountry, videoId, html5Cpn); + localization, contentCountry, videoId, html5Cpn, + YoutubeJavaScriptPlayerManager.getSignatureTimestamp(videoId)); if (isPlayerResponseNotValid(tvHtml5PlayerResponse, videoId)) { throw new ExtractionException("TVHTML5 player response is not valid");