[raiplay] Extract subtitles
This commit is contained in:
		| @@ -97,6 +97,25 @@ class RaiBaseIE(InfoExtractor): | ||||
|             'formats': formats, | ||||
|         }.items() if v is not None) | ||||
|  | ||||
|     @staticmethod | ||||
|     def _extract_subtitles(url, subtitle_url): | ||||
|         subtitles = {} | ||||
|         if subtitle_url and isinstance(subtitle_url, compat_str): | ||||
|             subtitle_url = urljoin(url, subtitle_url) | ||||
|             STL_EXT = '.stl' | ||||
|             SRT_EXT = '.srt' | ||||
|             subtitles['it'] = [{ | ||||
|                 'ext': 'stl', | ||||
|                 'url': subtitle_url, | ||||
|             }] | ||||
|             if subtitle_url.endswith(STL_EXT): | ||||
|                 srt_url = subtitle_url[:-len(STL_EXT)] + SRT_EXT | ||||
|                 subtitles['it'].append({ | ||||
|                     'ext': 'srt', | ||||
|                     'url': srt_url, | ||||
|                 }) | ||||
|         return subtitles | ||||
|  | ||||
|  | ||||
| class RaiPlayIE(RaiBaseIE): | ||||
|     _VALID_URL = r'(?P<url>https?://(?:www\.)?raiplay\.it/.+?-(?P<id>%s)\.html)' % RaiBaseIE._UUID_RE | ||||
| @@ -168,6 +187,8 @@ class RaiPlayIE(RaiBaseIE): | ||||
|         timestamp = unified_timestamp(try_get( | ||||
|             media, lambda x: x['availabilities'][0]['start'], compat_str)) | ||||
|  | ||||
|         subtitles = self._extract_subtitles(url, video.get('subtitles')) | ||||
|  | ||||
|         info = { | ||||
|             'id': video_id, | ||||
|             'title': title, | ||||
| @@ -183,6 +204,7 @@ class RaiPlayIE(RaiBaseIE): | ||||
|             'season_number': int_or_none(try_get( | ||||
|                 media, lambda x: x['isPartOf']['numeroStagioni'])), | ||||
|             'season': media.get('stagione') or None, | ||||
|             'subtitles': subtitles, | ||||
|         } | ||||
|  | ||||
|         info.update(relinker_info) | ||||
| @@ -307,17 +329,7 @@ class RaiIE(RaiBaseIE): | ||||
|                     'url': compat_urlparse.urljoin(url, thumbnail_url), | ||||
|                 }) | ||||
|  | ||||
|         subtitles = {} | ||||
|         captions = media.get('subtitlesUrl') | ||||
|         if captions: | ||||
|             STL_EXT = '.stl' | ||||
|             SRT_EXT = '.srt' | ||||
|             if captions.endswith(STL_EXT): | ||||
|                 captions = captions[:-len(STL_EXT)] + SRT_EXT | ||||
|             subtitles['it'] = [{ | ||||
|                 'ext': 'srt', | ||||
|                 'url': captions, | ||||
|             }] | ||||
|         subtitles = self._extract_subtitles(url, media.get('subtitlesUrl')) | ||||
|  | ||||
|         info = { | ||||
|             'id': content_id, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․