[extractor/common] Recognize DASH formats in html5 media entries
authorSergey M․ <dstftw@gmail.com>
Sat, 17 Dec 2016 16:03:13 +0000 (23:03 +0700)
committerSergey M․ <dstftw@gmail.com>
Sat, 17 Dec 2016 16:03:13 +0000 (23:03 +0700)
youtube_dl/extractor/common.py

index 6ae946569095a4e6e82a8ff5f04580aa3229ee3a..40f3e232392d63cd4f05eb93d2cffeb486ec03c6 100644 (file)
@@ -1888,7 +1888,7 @@ class InfoExtractor(object):
                 })
         return formats
 
-    def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None, m3u8_entry_protocol='m3u8'):
+    def _parse_html5_media_entries(self, base_url, webpage, video_id, m3u8_id=None, m3u8_entry_protocol='m3u8', mpd_id=None):
         def absolute_url(video_url):
             return compat_urlparse.urljoin(base_url, video_url)
 
@@ -1905,11 +1905,16 @@ class InfoExtractor(object):
 
         def _media_formats(src, cur_media_type):
             full_url = absolute_url(src)
-            if determine_ext(full_url) == 'm3u8':
+            ext = determine_ext(full_url)
+            if ext == 'm3u8':
                 is_plain_url = False
                 formats = self._extract_m3u8_formats(
                     full_url, video_id, ext='mp4',
                     entry_protocol=m3u8_entry_protocol, m3u8_id=m3u8_id)
+            elif ext == 'mpd':
+                is_plain_url = False
+                formats = self._extract_mpd_formats(
+                    full_url, video_id, mpd_id=mpd_id)
             else:
                 is_plain_url = True
                 formats = [{