X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;f=youtube_dl%2Fextractor%2Fviki.py;h=cf6af1e5cdb6315d325d2bd355d384cc283a3e0c;hb=725652e9247e1171110b624d748e20fa1c88260e;hp=0fc1ceb19c8ece086e683da59e720489c80edbba;hpb=89966a5aeacb70cc19b0a87a0514be824d2409af;p=youtube-dl.git diff --git a/youtube_dl/extractor/viki.py b/youtube_dl/extractor/viki.py index 0fc1ceb19..cf6af1e5c 100644 --- a/youtube_dl/extractor/viki.py +++ b/youtube_dl/extractor/viki.py @@ -11,7 +11,8 @@ from ..utils import ( unescapeHTML, unified_strdate, US_RATINGS, - clean_html, + determine_ext, + mimetype2ext, ) from .common import InfoExtractor @@ -45,6 +46,19 @@ class VikiIE(InfoExtractor): 'upload_date': '20150430', 'title': '\'The Avengers: Age of Ultron\' Press Conference', } + }, { + 'url': 'http://www.viki.com/videos/1048879v-ankhon-dekhi', + 'info_dict': { + 'id': '1048879v', + 'ext': 'mp4', + 'upload_date': '20140820', + 'description': 'md5:54ff56d51bdfc7a30441ec967394e91c', + 'title': 'Ankhon Dekhi', + }, + 'params': { + # requires ffmpeg + 'skip_download': True, + } }] def _real_extract(self, url): @@ -74,15 +88,27 @@ class VikiIE(InfoExtractor): req, video_id, note='Downloading info page') err_msg = self._html_search_regex(r']+class="video-error[^>]+>(.+)', info_webpage, 'error message', default=None) if err_msg: - err_msg = clean_html(err_msg) if 'not available in your region' in err_msg: raise ExtractorError( 'Video %s is blocked from your location.' % video_id, expected=True) else: raise ExtractorError('Viki said: ' + err_msg) - video_url = self._html_search_regex( - r']+src="([^"]+)"', info_webpage, 'video URL') + mobj = re.search( + r']+type="(?P[^"]+)"[^>]+src="(?P[^"]+)"', info_webpage) + if not mobj: + raise ExtractorError('Unable to find video URL') + video_url = unescapeHTML(mobj.group('url')) + video_ext = mimetype2ext(mobj.group('mime_type')) + + if determine_ext(video_url) == 'm3u8': + formats = self._extract_m3u8_formats( + video_url, video_id, ext=video_ext) + else: + formats = [{ + 'url': video_url, + 'ext': video_ext, + }] upload_date_str = self._html_search_regex( r'"created_at":"([^"]+)"', info_webpage, 'upload date') @@ -98,7 +124,7 @@ class VikiIE(InfoExtractor): return { 'id': video_id, 'title': title, - 'url': video_url, + 'formats': formats, 'description': description, 'thumbnail': thumbnail, 'age_limit': age_limit,