[rtve:alacarta] Fix extraction (closes #14290)
This commit is contained in:
		 Giuseppe Fabiano
					Giuseppe Fabiano
				
			
				
					committed by
					
						 Sergey M
						Sergey M
					
				
			
			
				
	
			
			
			 Sergey M
						Sergey M
					
				
			
						parent
						
							3836b02ce8
						
					
				
				
					commit
					2c53bd51c6
				
			| @@ -10,6 +10,7 @@ from ..compat import ( | |||||||
|     compat_struct_unpack, |     compat_struct_unpack, | ||||||
| ) | ) | ||||||
| from ..utils import ( | from ..utils import ( | ||||||
|  |     determine_ext, | ||||||
|     ExtractorError, |     ExtractorError, | ||||||
|     float_or_none, |     float_or_none, | ||||||
|     remove_end, |     remove_end, | ||||||
| @@ -84,6 +85,18 @@ class RTVEALaCartaIE(InfoExtractor): | |||||||
|             'title': 'TODO', |             'title': 'TODO', | ||||||
|         }, |         }, | ||||||
|         'skip': 'The f4m manifest can\'t be used yet', |         'skip': 'The f4m manifest can\'t be used yet', | ||||||
|  |     }, { | ||||||
|  |         'url': 'http://www.rtve.es/alacarta/videos/servir-y-proteger/servir-proteger-capitulo-104/4236788/', | ||||||
|  |         'md5': 'e55e162379ad587e9640eda4f7353c0f', | ||||||
|  |         'info_dict': { | ||||||
|  |             'id': '4236788', | ||||||
|  |             'ext': 'mp4', | ||||||
|  |             'title': 'Servir y proteger - Capítulo 104 ', | ||||||
|  |             'duration': 3222.0, | ||||||
|  |         }, | ||||||
|  |         'params': { | ||||||
|  |             'skip_download': True,  # requires ffmpeg | ||||||
|  |         }, | ||||||
|     }, { |     }, { | ||||||
|         'url': 'http://www.rtve.es/m/alacarta/videos/cuentame-como-paso/cuentame-como-paso-t16-ultimo-minuto-nuestra-vida-capitulo-276/2969138/?media=tve', |         'url': 'http://www.rtve.es/m/alacarta/videos/cuentame-como-paso/cuentame-como-paso-t16-ultimo-minuto-nuestra-vida-capitulo-276/2969138/?media=tve', | ||||||
|         'only_matching': True, |         'only_matching': True, | ||||||
| @@ -107,24 +120,41 @@ class RTVEALaCartaIE(InfoExtractor): | |||||||
|             video_id)['page']['items'][0] |             video_id)['page']['items'][0] | ||||||
|         if info['state'] == 'DESPU': |         if info['state'] == 'DESPU': | ||||||
|             raise ExtractorError('The video is no longer available', expected=True) |             raise ExtractorError('The video is no longer available', expected=True) | ||||||
|  |         title = info['title'] | ||||||
|         png_url = 'http://www.rtve.es/ztnr/movil/thumbnail/%s/videos/%s.png' % (self._manager, video_id) |         png_url = 'http://www.rtve.es/ztnr/movil/thumbnail/%s/videos/%s.png' % (self._manager, video_id) | ||||||
|         png_request = sanitized_Request(png_url) |         png_request = sanitized_Request(png_url) | ||||||
|         png_request.add_header('Referer', url) |         png_request.add_header('Referer', url) | ||||||
|         png = self._download_webpage(png_request, video_id, 'Downloading url information') |         png = self._download_webpage(png_request, video_id, 'Downloading url information') | ||||||
|         video_url = _decrypt_url(png) |         video_url = _decrypt_url(png) | ||||||
|         if not video_url.endswith('.f4m'): |         ext = determine_ext(video_url) | ||||||
|  |  | ||||||
|  |         formats = [] | ||||||
|  |         if not video_url.endswith('.f4m') and ext != 'm3u8': | ||||||
|             if '?' not in video_url: |             if '?' not in video_url: | ||||||
|                 video_url = video_url.replace('resources/', 'auth/resources/') |                 video_url = video_url.replace('resources/', 'auth/resources/') | ||||||
|             video_url = video_url.replace('.net.rtve', '.multimedia.cdn.rtve') |             video_url = video_url.replace('.net.rtve', '.multimedia.cdn.rtve') | ||||||
|  |  | ||||||
|  |         if ext == 'm3u8': | ||||||
|  |             formats.extend(self._extract_m3u8_formats( | ||||||
|  |                 video_url, video_id, ext='mp4', entry_protocol='m3u8_native', | ||||||
|  |                 m3u8_id='hls', fatal=False)) | ||||||
|  |         elif ext == 'f4m': | ||||||
|  |             formats.extend(self._extract_f4m_formats( | ||||||
|  |                 video_url, video_id, f4m_id='hds', fatal=False)) | ||||||
|  |         else: | ||||||
|  |             formats.append({ | ||||||
|  |                 'url': video_url, | ||||||
|  |             }) | ||||||
|  |         self._sort_formats(formats) | ||||||
|  |  | ||||||
|         subtitles = None |         subtitles = None | ||||||
|         if info.get('sbtFile') is not None: |         if info.get('sbtFile') is not None: | ||||||
|             subtitles = self.extract_subtitles(video_id, info['sbtFile']) |             subtitles = self.extract_subtitles(video_id, info['sbtFile']) | ||||||
|  |  | ||||||
|         return { |         return { | ||||||
|             'id': video_id, |             'id': video_id, | ||||||
|             'title': info['title'], |             'title': title, | ||||||
|             'url': video_url, |             'formats': formats, | ||||||
|             'thumbnail': info.get('image'), |             'thumbnail': info.get('image'), | ||||||
|             'page_url': url, |             'page_url': url, | ||||||
|             'subtitles': subtitles, |             'subtitles': subtitles, | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user