X-Git-Url: https://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fntv.py;h=8447a9b86a05d62c11b79f246d281819ba5e08fe;hb=e09b8fcd9d2abee53d56362b9589d7ae32c985a8;hp=29e8f7a04ec8eb63efa3041698123718ffb81181;hpb=263f4b514b9b90a217152d2ef8fbf5b884b41b5a;p=youtube-dl.git diff --git a/youtube_dl/extractor/ntv.py b/youtube_dl/extractor/ntv.py index 29e8f7a04..8447a9b86 100644 --- a/youtube_dl/extractor/ntv.py +++ b/youtube_dl/extractor/ntv.py @@ -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,