[vevo] Use _download_smil to provide informative error messages
authorYen Chi Hsuan <yan12125@gmail.com>
Fri, 11 Dec 2015 11:16:51 +0000 (19:16 +0800)
committerYen Chi Hsuan <yan12125@gmail.com>
Fri, 11 Dec 2015 11:16:51 +0000 (19:16 +0800)
youtube_dl/extractor/vevo.py

index 3e3b25da029d5507fbadb038f07ad60a3529088e..02dfd36f4ace366ccffe18e3cf211eb9fe050c95 100644 (file)
@@ -80,7 +80,7 @@ class VevoIE(InfoExtractor):
             'title': 'Till I Die - K Camp ft. T.I.',
             'duration': 193,
         },
-        'expected_warnings': ['HTTP Error 404'],
+        'expected_warnings': ['Unable to download SMIL file'],
     }]
     _SMIL_BASE_URL = 'http://smil.lvl3.vevo.com/'
 
@@ -130,9 +130,8 @@ class VevoIE(InfoExtractor):
             })
         return formats
 
-    def _formats_from_smil(self, smil_xml):
+    def _formats_from_smil(self, smil_doc):
         formats = []
-        smil_doc = compat_etree_fromstring(smil_xml.encode('utf-8'))
         els = smil_doc.findall('.//{http://www.w3.org/2001/SMIL20/Language}video')
         for el in els:
             src = el.attrib['src']
@@ -233,10 +232,9 @@ class VevoIE(InfoExtractor):
             if smil_url_m is not None:
                 smil_url = smil_url_m
         if smil_url:
-            smil_xml = self._download_webpage(
-                smil_url, video_id, 'Downloading SMIL info', fatal=False)
-            if smil_xml:
-                formats.extend(self._formats_from_smil(smil_xml))
+            smil_doc = self._download_smil(smil_url, video_id, fatal=False)
+            if smil_doc:
+                formats.extend(self._formats_from_smil(smil_doc))
 
         self._sort_formats(formats)
         timestamp = int_or_none(self._search_regex(