diff --git a/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java b/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java index 66e72ef2..8376d77c 100644 --- a/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java +++ b/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java @@ -543,8 +543,6 @@ public class YoutubeStreamExtractor extends StreamExtractor { private static final String HTTPS = "https:"; private static final String CONTENT = "content"; private static final String DECRYPTION_FUNC_NAME = "decrypt"; - private static final String GET_VIDEO_INFO_URL = "https://www.youtube.com/get_video_info?video_id=" + "%s" + - "&el=info&ps=default&eurl=&gl=US&hl=en"; private volatile String decryptionCode = ""; @@ -559,19 +557,21 @@ public class YoutubeStreamExtractor extends StreamExtractor { @Override public void onFetchPage(@Nonnull Downloader downloader) throws IOException, ExtractionException { - String pageContent = getPageHtml(downloader); + final String pageContent = getPageHtml(downloader); doc = Jsoup.parse(pageContent, getCleanUrl()); - - String playerUrl; + final String playerUrl; + // TODO: use embedded videos to fetch DASH manifest for all videos // Check if the video is age restricted if (pageContent.contains(" getItags(String encodedUrlMapKey, ItagItem.ItagType itagTypeWanted) throws ParsingException { Map urlAndItags = new LinkedHashMap<>(); diff --git a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java index 038856e5..bbcd73de 100644 --- a/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java +++ b/src/test/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractorRestrictedTest.java @@ -12,6 +12,8 @@ import org.schabi.newpipe.extractor.stream.SubtitlesFormat; import org.schabi.newpipe.extractor.stream.VideoStream; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import static org.junit.Assert.*; import static org.schabi.newpipe.extractor.ServiceList.YouTube; @@ -103,7 +105,12 @@ public class YoutubeStreamExtractorRestrictedTest { @Test public void testGetVideoStreams() throws IOException, ExtractionException { - for (VideoStream s : extractor.getVideoStreams()) { + List streams = new ArrayList<>(); + streams.addAll(extractor.getVideoStreams()); + streams.addAll(extractor.getVideoOnlyStreams()); + + assertTrue(streams.size() > 0); + for (VideoStream s : streams) { assertTrue(s.getUrl(), s.getUrl().contains(HTTPS)); assertTrue(s.resolution.length() > 0);