'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
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,
'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)
'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,