diff --git a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java index 30846fedc..73e6a55d5 100644 --- a/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java +++ b/app/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeStreamExtractor.java @@ -420,9 +420,15 @@ public class YoutubeStreamExtractor extends StreamExtractor { @Override public String getDashMpdUrl() throws ParsingException { - /* try { - String dashManifestUrl = videoInfoPage.get("dashmpd"); + String dashManifestUrl = ""; + if(videoInfoPage != null && videoInfoPage.containsKey("dashmpd")) { + dashManifestUrl = videoInfoPage.get("dashmpd"); + } else if (playerArgs.has("dashmpd")) { + dashManifestUrl = playerArgs.getString("dashmpd"); + } else { + return ""; + } if(!dashManifestUrl.contains("/signature/")) { String encryptedSig = Parser.matchGroup1("/s/([a-fA-F0-9\\.]+)", dashManifestUrl); String decryptedSig; @@ -435,8 +441,6 @@ public class YoutubeStreamExtractor extends StreamExtractor { throw new ParsingException( "Could not get \"dashmpd\" maybe VideoInfoPage is broken.", e); } - */ - return ""; } @@ -447,9 +451,17 @@ public class YoutubeStreamExtractor extends StreamExtractor { String encodedUrlMap; // playerArgs could be null if the video is age restricted if (playerArgs == null) { - encodedUrlMap = videoInfoPage.get("adaptive_fmts"); + if(videoInfoPage.containsKey("adaptive_fmts")) { + encodedUrlMap = videoInfoPage.get("adaptive_fmts"); + } else { + return null; + } } else { - encodedUrlMap = playerArgs.getString("adaptive_fmts"); + if(playerArgs.has("adaptive_fmts")) { + encodedUrlMap = playerArgs.getString("adaptive_fmts"); + } else { + return null; + } } for(String url_data_str : encodedUrlMap.split(",")) { // This loop iterates through multiple streams, therefor tags