From 7ef3e80493c736a32c389c22d327e2bc71396d99 Mon Sep 17 00:00:00 2001 From: wb9688 Date: Fri, 15 May 2020 12:04:21 +0200 Subject: [PATCH] Extract dashManifestUrl in playerResponse --- .../services/youtube/extractors/YoutubeStreamExtractor.java | 4 +++- .../youtube/stream/YoutubeStreamExtractorLivestreamTest.java | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) 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 b543c14f3..bdc2a10f3 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 @@ -377,7 +377,9 @@ public class YoutubeStreamExtractor extends StreamExtractor { assertPageFetched(); try { String dashManifestUrl; - if (videoInfoPage.containsKey("dashmpd")) { + if (playerResponse.getObject("streamingData").isString("dashManifestUrl")) { + return playerResponse.getObject("streamingData").getString("dashManifestUrl"); + } else if (videoInfoPage.containsKey("dashmpd")) { dashManifestUrl = videoInfoPage.get("dashmpd"); } else if (playerArgs != null && playerArgs.isString("dashmpd")) { dashManifestUrl = playerArgs.getString("dashmpd", EMPTY_STRING); diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/stream/YoutubeStreamExtractorLivestreamTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/stream/YoutubeStreamExtractorLivestreamTest.java index f5c7fe104..0e17fe8d8 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/stream/YoutubeStreamExtractorLivestreamTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/services/youtube/stream/YoutubeStreamExtractorLivestreamTest.java @@ -116,8 +116,7 @@ public class YoutubeStreamExtractorLivestreamTest { @Test public void testGetDashMpd() throws ParsingException { - // we dont expect this particular video to have a DASH file. For this purpouse we use a different test class. - assertTrue(extractor.getDashMpdUrl(), extractor.getDashMpdUrl().isEmpty()); + assertTrue(extractor.getDashMpdUrl().startsWith("https://manifest.googlevideo.com/api/manifest/dash/")); } @Test