mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:35:12 +00:00 
			
		
		
		
	[subtitles] made inheritance hierarchy flat as requested
This commit is contained in:
		@@ -18,23 +18,7 @@ from ..utils import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DailyMotionSubtitlesIE(NoAutoSubtitlesIE):
 | 
			
		||||
 | 
			
		||||
    def _get_available_subtitles(self, video_id):
 | 
			
		||||
        request = compat_urllib_request.Request('https://api.dailymotion.com/video/%s/subtitles?fields=id,language,url' % video_id)
 | 
			
		||||
        try:
 | 
			
		||||
            sub_list = compat_urllib_request.urlopen(request).read().decode('utf-8')
 | 
			
		||||
        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
 | 
			
		||||
            self._downloader.report_warning(u'unable to download video subtitles: %s' % compat_str(err))
 | 
			
		||||
            return {}
 | 
			
		||||
        info = json.loads(sub_list)
 | 
			
		||||
        if (info['total'] > 0):
 | 
			
		||||
            sub_lang_list = dict((l['language'], l['url']) for l in info['list'])
 | 
			
		||||
            return sub_lang_list
 | 
			
		||||
        self._downloader.report_warning(u'video doesn\'t have subtitles')
 | 
			
		||||
        return {}
 | 
			
		||||
 | 
			
		||||
class DailymotionIE(DailyMotionSubtitlesIE, InfoExtractor):
 | 
			
		||||
class DailymotionIE(NoAutoSubtitlesIE):
 | 
			
		||||
    """Information Extractor for Dailymotion"""
 | 
			
		||||
 | 
			
		||||
    _VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/(?:embed/)?video/([^/]+)'
 | 
			
		||||
@@ -120,6 +104,20 @@ class DailymotionIE(DailyMotionSubtitlesIE, InfoExtractor):
 | 
			
		||||
            'thumbnail': info['thumbnail_url']
 | 
			
		||||
        }]
 | 
			
		||||
 | 
			
		||||
    def _get_available_subtitles(self, video_id):
 | 
			
		||||
        request = compat_urllib_request.Request('https://api.dailymotion.com/video/%s/subtitles?fields=id,language,url' % video_id)
 | 
			
		||||
        try:
 | 
			
		||||
            sub_list = compat_urllib_request.urlopen(request).read().decode('utf-8')
 | 
			
		||||
        except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
 | 
			
		||||
            self._downloader.report_warning(u'unable to download video subtitles: %s' % compat_str(err))
 | 
			
		||||
            return {}
 | 
			
		||||
        info = json.loads(sub_list)
 | 
			
		||||
        if (info['total'] > 0):
 | 
			
		||||
            sub_lang_list = dict((l['language'], l['url']) for l in info['list'])
 | 
			
		||||
            return sub_lang_list
 | 
			
		||||
        self._downloader.report_warning(u'video doesn\'t have subtitles')
 | 
			
		||||
        return {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class DailymotionPlaylistIE(InfoExtractor):
 | 
			
		||||
    _VALID_URL = r'(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/playlist/(?P<id>.+?)/'
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ from ..utils import (
 | 
			
		||||
    orderedSet,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
class YoutubeBaseInfoExtractor(InfoExtractor):
 | 
			
		||||
class YoutubeBaseInfoExtractor(SubtitlesIE):
 | 
			
		||||
    """Provide base functions for Youtube extractors"""
 | 
			
		||||
    _LOGIN_URL = 'https://accounts.google.com/ServiceLogin'
 | 
			
		||||
    _LANG_URL = r'https://www.youtube.com/?hl=en&persist_hl=1&gl=US&persist_gl=1&opt_out_ackd=1'
 | 
			
		||||
@@ -131,8 +131,6 @@ class YoutubeBaseInfoExtractor(InfoExtractor):
 | 
			
		||||
            return
 | 
			
		||||
        self._confirm_age()
 | 
			
		||||
 | 
			
		||||
class YoutubeSubtitlesIE(SubtitlesIE):
 | 
			
		||||
 | 
			
		||||
    def _get_available_subtitles(self, video_id):
 | 
			
		||||
        request = compat_urllib_request.Request('http://video.google.com/timedtext?hl=en&type=list&v=%s' % video_id)
 | 
			
		||||
        try:
 | 
			
		||||
@@ -189,7 +187,7 @@ class YoutubeSubtitlesIE(SubtitlesIE):
 | 
			
		||||
            self._downloader.report_warning(err_msg)
 | 
			
		||||
            return {}
 | 
			
		||||
 | 
			
		||||
class YoutubeIE(YoutubeSubtitlesIE, YoutubeBaseInfoExtractor):
 | 
			
		||||
class YoutubeIE(YoutubeBaseInfoExtractor):
 | 
			
		||||
    IE_DESC = u'YouTube.com'
 | 
			
		||||
    _VALID_URL = r"""^
 | 
			
		||||
                     (
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user