54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | # coding: utf-8 | ||
|  | from __future__ import unicode_literals | ||
|  | 
 | ||
|  | import re | ||
|  | 
 | ||
|  | from .jwplatform import JWPlatformBaseIE | ||
|  | from ..utils import ( | ||
|  |     js_to_json, | ||
|  |     get_element_by_class, | ||
|  |     unified_strdate, | ||
|  | ) | ||
|  | 
 | ||
|  | 
 | ||
|  | class RudoIE(JWPlatformBaseIE): | ||
|  |     _VALID_URL = r'https?://rudo\.video/vod/(?P<id>[0-9a-zA-Z]+)' | ||
|  | 
 | ||
|  |     _TEST = { | ||
|  |         'url': 'http://rudo.video/vod/oTzw0MGnyG', | ||
|  |         'md5': '2a03a5b32dd90a04c83b6d391cf7b415', | ||
|  |         'info_dict': { | ||
|  |             'id': 'oTzw0MGnyG', | ||
|  |             'ext': 'mp4', | ||
|  |             'title': 'Comentario Tomás Mosciatti', | ||
|  |             'upload_date': '20160617', | ||
|  |         }, | ||
|  |     } | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     def _extract_url(self, webpage): | ||
|  |         mobj = re.search( | ||
|  |             '<iframe[^>]+src=(?P<q1>[\'"])(?P<url>(?:https?:)?//rudo\.video/vod/[0-9a-zA-Z]+)(?P=q1)', | ||
|  |             webpage) | ||
|  |         if mobj: | ||
|  |             return mobj.group('url') | ||
|  | 
 | ||
|  |     def _real_extract(self, url): | ||
|  |         video_id = self._match_id(url) | ||
|  | 
 | ||
|  |         webpage = self._download_webpage(url, video_id, encoding='iso-8859-1') | ||
|  | 
 | ||
|  |         jwplayer_data = self._parse_json(self._search_regex( | ||
|  |             r'(?s)playerInstance\.setup\(({.+?})\)', webpage, 'jwplayer data'), video_id, | ||
|  |             transform_source=lambda s: js_to_json(re.sub(r'encodeURI\([^)]+\)', '""', s))) | ||
|  | 
 | ||
|  |         info_dict = self._parse_jwplayer_data( | ||
|  |             jwplayer_data, video_id, require_title=False, m3u8_id='hls') | ||
|  | 
 | ||
|  |         info_dict.update({ | ||
|  |             'title': self._og_search_title(webpage), | ||
|  |             'upload_date': unified_strdate(get_element_by_class('date', webpage)), | ||
|  |         }) | ||
|  | 
 | ||
|  |         return info_dict |