]> gitweb @ CieloNegro.org - youtube-dl.git/blobdiff - youtube_dl/extractor/ntv.py
[ro220] Make test case more flexible
[youtube-dl.git] / youtube_dl / extractor / ntv.py
index 29e8f7a04ec8eb63efa3041698123718ffb81181..8447a9b86a05d62c11b79f246d281819ba5e08fe 100644 (file)
@@ -5,7 +5,7 @@ import re
 
 from .common import InfoExtractor
 from ..utils import (
-    RegexNotFoundError,
+    ExtractorError,
     unescapeHTML
 )
 
@@ -98,16 +98,15 @@ class NTVIE(InfoExtractor):
 
         page = self._download_webpage(url, video_id, 'Downloading page')
 
-        def extract(patterns, name, page, fatal=False):
-            for pattern in patterns:
-                mobj = re.search(pattern, page)
-                if mobj:
-                    return mobj.group(1)
-            if fatal:
-                raise RegexNotFoundError(u'Unable to extract %s' % name)
-            return None
+        for pattern in self._VIDEO_ID_REGEXES:
+            mobj = re.search(pattern, page)
+            if mobj:
+                break
 
-        video_id = extract(self._VIDEO_ID_REGEXES, 'video id', page, fatal=True)
+        if not mobj:
+            raise ExtractorError('No media links available for %s' % video_id)
+
+        video_id = mobj.group(1)
 
         player = self._download_xml('http://www.ntv.ru/vi%s/' % video_id, video_id, 'Downloading video XML')
         title = unescapeHTML(player.find('./data/title').text)
@@ -125,13 +124,14 @@ class NTVIE(InfoExtractor):
             '7': 'video2',
         }
 
+        app = apps[puid22] if puid22 in apps else apps['4']
+
         formats = []
         for format_id in ['', 'hi', 'webm']:
             file = video.find('./%sfile' % format_id)
             if file is None:
                 continue
             size = video.find('./%ssize' % format_id)
-            app = apps[puid22] if puid22 in apps else apps['4']
             formats.append({
                 'url': 'rtmp://media.ntv.ru/%s' % app,
                 'app': app,