mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 07:17:07 -05:00 
			
		
		
		
	[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