[extractor/common] Properly handle full URLs
authorSergey M․ <dstftw@gmail.com>
Wed, 15 Jul 2015 19:14:52 +0000 (01:14 +0600)
committerSergey M․ <dstftw@gmail.com>
Wed, 15 Jul 2015 19:14:52 +0000 (01:14 +0600)
youtube_dl/extractor/common.py

index f8a5eccedd78bf23304866c47f3ea000e9e60245..78e5cf8d090212c98e42e537360dbaf92713260b 100644 (file)
@@ -851,8 +851,10 @@ class InfoExtractor(object):
             media_nodes = manifest.findall('{http://ns.adobe.com/f4m/2.0}media')
         for i, media_el in enumerate(media_nodes):
             if manifest_version == '2.0':
-                manifest_url = ('/'.join(manifest_url.split('/')[:-1]) + '/' +
-                                (media_el.attrib.get('href') or media_el.attrib.get('url')))
+                media_url = media_el.attrib.get('href') or media_el.attrib['url']
+                manifest_url = (
+                    media_url if media_url.startswith('http://') or media_url.startswith('https://')
+                    else ('/'.join(manifest_url.split('/')[:-1]) + '/' + media_url))
             tbr = int_or_none(media_el.attrib.get('bitrate'))
             formats.append({
                 'format_id': '-'.join(filter(None, [f4m_id, compat_str(i if tbr is None else tbr)])),