[rutv] Add support for more live stream URLs (Closes #2875)
This commit is contained in:
		| @@ -12,7 +12,12 @@ from ..utils import ( | |||||||
|  |  | ||||||
| class RUTVIE(InfoExtractor): | class RUTVIE(InfoExtractor): | ||||||
|     IE_DESC = 'RUTV.RU' |     IE_DESC = 'RUTV.RU' | ||||||
|     _VALID_URL = r'https?://player\.(?:rutv\.ru|vgtrk\.com)/(?:flash2v/container\.swf\?id=|iframe/(?P<type>swf|video|live)/id/)(?P<id>\d+)' |     _VALID_URL = r'''(?x) | ||||||
|  |         https?://player\.(?:rutv\.ru|vgtrk\.com)/ | ||||||
|  |             (?P<path>flash2v/container\.swf\?id= | ||||||
|  |             |iframe/(?P<type>swf|video|live)/id/ | ||||||
|  |             |index/iframe/cast_id/) | ||||||
|  |             (?P<id>\d+)''' | ||||||
|  |  | ||||||
|     _TESTS = [ |     _TESTS = [ | ||||||
|         { |         { | ||||||
| @@ -90,7 +95,7 @@ class RUTVIE(InfoExtractor): | |||||||
|     @classmethod |     @classmethod | ||||||
|     def _extract_url(cls, webpage): |     def _extract_url(cls, webpage): | ||||||
|         mobj = re.search( |         mobj = re.search( | ||||||
|             r'<iframe[^>]+?src=(["\'])(?P<url>https?://player\.rutv\.ru/iframe/(?:swf|video|live)/id/.+?)\1', webpage) |             r'<iframe[^>]+?src=(["\'])(?P<url>https?://player\.rutv\.ru/(?:iframe/(?:swf|video|live)/id|index/iframe/cast_id)/.+?)\1', webpage) | ||||||
|         if mobj: |         if mobj: | ||||||
|             return mobj.group('url') |             return mobj.group('url') | ||||||
|  |  | ||||||
| @@ -103,10 +108,16 @@ class RUTVIE(InfoExtractor): | |||||||
|     def _real_extract(self, url): |     def _real_extract(self, url): | ||||||
|         mobj = re.match(self._VALID_URL, url) |         mobj = re.match(self._VALID_URL, url) | ||||||
|         video_id = mobj.group('id') |         video_id = mobj.group('id') | ||||||
|         video_type = mobj.group('type') |         video_path = mobj.group('path') | ||||||
|  |  | ||||||
|         if not video_type or video_type == 'swf': |         if video_path.startswith('flash2v'): | ||||||
|             video_type = 'video' |             video_type = 'video' | ||||||
|  |         elif video_path.startswith('iframe'): | ||||||
|  |             video_type = mobj.group('type') | ||||||
|  |             if video_type == 'swf': | ||||||
|  |                 video_type = 'video' | ||||||
|  |         elif video_path.startswith('index/iframe/cast_id'): | ||||||
|  |             video_type = 'live' | ||||||
|  |  | ||||||
|         json_data = self._download_json( |         json_data = self._download_json( | ||||||
|             'http://player.rutv.ru/iframe/%splay/id/%s' % ('live-' if video_type == 'live' else '', video_id), |             'http://player.rutv.ru/iframe/%splay/id/%s' % ('live-' if video_type == 'live' else '', video_id), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․