# encoding: utf-8 import re from .common import InfoExtractor class Tele5IE(InfoExtractor): _VALID_URL = r'http://www.tele5.de/(?Pre-play/filme|a-z)/(?P.*?).html' _TESTS = [{ 'url': 'http://www.tele5.de/re-play/filme/flying-swords-of-dragon-gate.html', 'info_dict': { 'ext': 'mp4', 'id': 'flying-swords-of-dragon-gate', 'title': 'Flying Swords of Dragon Gate', }, }] def _get_video_url(self, thumbnail, entity_id, video_js_url): video_js = self._download_webpage(video_js_url, None) match = re.compile(r'''\\"flavorParamsId\\":(\d),\\"width\\":(\d+),\\"height\\":(\d+),\\"bitrate\\":(\d+),\\"frameRate\\":(\d+),.+?,\\"id\\":\\"(\w+)\\",.+?,\\"size\\":(\d+),''').findall(video_js) formats = [] for m in match: # assumes matches are already in the right order, from worst to best quality formats.append({ 'url': thumbnail.split('thumbnail/')[0] + 'playManifest/entryId/{}/flavorId/{}/format/url/protocol/http/a.mp4'.format(entity_id, m[5]), 'format_id': m[0], # needs to be string otherwise cmp fails 'width': int(m[1]), 'height': int(m[2]), 'tbr': int(m[3]), # needs to be an integer 'frameRate': int(m[4]), 'filesize': int(m[6]) }) return formats def _real_extract(self, url): mobj = re.match(self._VALID_URL, url) video_id = mobj.group('id') series = mobj.group('type') == 'a-z' webpage = self._download_webpage(url, video_id) if series: title = self._html_search_regex(r'(.*?)', webpage, 'title').split('-')[0].strip() partner_data =self._html_search_regex( r'', webpage, 'video js').split('/') uiconf_id = partner_data[-3] partner_id = partner_data[-1] entries = [] for player in re.compile(r'''
(.*?)', webpage, 'title') video_js_url =self._html_search_regex( r'', webpage, 'video js') thumbnail = self._html_search_regex( r'', webpage, "thumbnail url", fatal=False) entity_id = thumbnail.split('entry_id/')[1].split('/')[0] video_url = self._get_video_url(thumbnail, entity_id, video_js_url) return { 'ext': 'mp4', 'id': video_id, 'thumbnail': thumbnail, 'title': title, 'url': video_url, }