[extractor/common] Fallback url to base URL for DASH formats
authorSergey M․ <dstftw@gmail.com>
Tue, 5 Mar 2019 17:33:08 +0000 (00:33 +0700)
committerSergey M․ <dstftw@gmail.com>
Tue, 5 Mar 2019 17:33:08 +0000 (00:33 +0700)
youtube_dl/extractor/common.py

index 55ce1a888bb4dc6c8c3172c78920636756c21a28..a17f7cbc4e828dfeeb10586fd7d835629925f35c 100644 (file)
@@ -108,7 +108,10 @@ class InfoExtractor(object):
                                    for RTMP - RTMP URL,
                                    for HLS - URL of the M3U8 media playlist,
                                    for HDS - URL of the F4M manifest,
-                                   for DASH - URL of the MPD manifest,
+                                   for DASH - URL of the MPD manifest or
+                                              base URL representing the media
+                                              if MPD manifest is parsed from
+                                              a string,
                                    for MSS - URL of the ISM manifest.
                     * manifest_url
                                  The URL of the manifest file in case of
@@ -2134,7 +2137,8 @@ class InfoExtractor(object):
                         bandwidth = int_or_none(representation_attrib.get('bandwidth'))
                         f = {
                             'format_id': '%s-%s' % (mpd_id, representation_id) if mpd_id else representation_id,
-                            'url': mpd_url,
+                            # NB: mpd_url may be empty when MPD manifest is parsed from a string
+                            'url': mpd_url or base_url,
                             'manifest_url': mpd_url,
                             'ext': mimetype2ext(mime_type),
                             'width': int_or_none(representation_attrib.get('width')),