[YoutubeDL] Propagate overridden metadata to IE results of type url (closes #11163)
authorSergey M․ <dstftw@gmail.com>
Sat, 15 Apr 2017 17:56:53 +0000 (00:56 +0700)
committerSergey M․ <dstftw@gmail.com>
Sat, 15 Apr 2017 17:57:36 +0000 (00:57 +0700)
youtube_dl/YoutubeDL.py

index 7953670a732eb29abdd249ecadf63be5fc52e029..3da5200d7b87b4b0be2bddae98585eadf572127d 100755 (executable)
@@ -851,7 +851,14 @@ class YoutubeDL(object):
             new_result = info.copy()
             new_result.update(force_properties)
 
-            assert new_result.get('_type') != 'url_transparent'
+            # Extracted info may not be a video result (i.e.
+            # info.get('_type', 'video') != video) but rather an url or
+            # url_transparent. In such cases outer metadata (from ie_result)
+            # should be propagated to inner one (info). For this to happen
+            # _type of info should be overridden with url_transparent. This
+            # fixes issue from https://github.com/rg3/youtube-dl/pull/11163.
+            if new_result.get('_type') == 'url':
+                new_result['_type'] = 'url_transparent'
 
             return self.process_ie_result(
                 new_result, download=download, extra_info=extra_info)