[ok] Add support for live streams
This commit is contained in:
		
							parent
							
								
									a39e15c516
								
							
						
					
					
						commit
						8005dc68cb
					
				| @ -19,11 +19,11 @@ from ..utils import ( | ||||
| 
 | ||||
| 
 | ||||
| class OdnoklassnikiIE(InfoExtractor): | ||||
|     _VALID_URL = r'https?://(?:(?:www|m|mobile)\.)?(?:odnoklassniki|ok)\.ru/(?:video(?:embed)?|web-api/video/moviePlayer)/(?P<id>[\d-]+)' | ||||
|     _VALID_URL = r'https?://(?:(?:www|m|mobile)\.)?(?:odnoklassniki|ok)\.ru/(?:video(?:embed)?|web-api/video/moviePlayer|live)/(?P<id>[\d-]+)' | ||||
|     _TESTS = [{ | ||||
|         # metadata in JSON | ||||
|         'url': 'http://ok.ru/video/20079905452', | ||||
|         'md5': '6ba728d85d60aa2e6dd37c9e70fdc6bc', | ||||
|         'md5': '0b62089b479e06681abaaca9d204f152', | ||||
|         'info_dict': { | ||||
|             'id': '20079905452', | ||||
|             'ext': 'mp4', | ||||
| @ -35,7 +35,6 @@ class OdnoklassnikiIE(InfoExtractor): | ||||
|             'like_count': int, | ||||
|             'age_limit': 0, | ||||
|         }, | ||||
|         'skip': 'Video has been blocked', | ||||
|     }, { | ||||
|         # metadataUrl | ||||
|         'url': 'http://ok.ru/video/63567059965189-0?fromTime=5', | ||||
| @ -99,6 +98,9 @@ class OdnoklassnikiIE(InfoExtractor): | ||||
|     }, { | ||||
|         'url': 'http://mobile.ok.ru/video/20079905452', | ||||
|         'only_matching': True, | ||||
|     }, { | ||||
|         'url': 'https://www.ok.ru/live/484531969818', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
| 
 | ||||
|     def _real_extract(self, url): | ||||
| @ -184,6 +186,10 @@ class OdnoklassnikiIE(InfoExtractor): | ||||
|             }) | ||||
|             return info | ||||
| 
 | ||||
|         assert title | ||||
|         if provider == 'LIVE_TV_APP': | ||||
|             info['title'] = self._live_title(title) | ||||
| 
 | ||||
|         quality = qualities(('4', '0', '1', '2', '3', '5')) | ||||
| 
 | ||||
|         formats = [{ | ||||
| @ -210,6 +216,20 @@ class OdnoklassnikiIE(InfoExtractor): | ||||
|             if fmt_type: | ||||
|                 fmt['quality'] = quality(fmt_type) | ||||
| 
 | ||||
|         # Live formats | ||||
|         m3u8_url = metadata.get('hlsMasterPlaylistUrl') | ||||
|         if m3u8_url: | ||||
|             formats.extend(self._extract_m3u8_formats( | ||||
|                 m3u8_url, video_id, 'mp4', entry_protocol='m3u8', | ||||
|                 m3u8_id='hls', fatal=False)) | ||||
|         rtmp_url = metadata.get('rtmpUrl') | ||||
|         if rtmp_url: | ||||
|             formats.append({ | ||||
|                 'url': rtmp_url, | ||||
|                 'format_id': 'rtmp', | ||||
|                 'ext': 'flv', | ||||
|             }) | ||||
| 
 | ||||
|         self._sort_formats(formats) | ||||
| 
 | ||||
|         info['formats'] = formats | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user