mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-12-22 16:57:40 +00:00
[subtitles] made inheritance hierarchy flat as requested
This commit is contained in:
parent
cf1dd0c59e
commit
f8e52269c1
2 changed files with 17 additions and 21 deletions
|
@ -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"""^
|
||||
(
|
||||
|
|
Loading…
Reference in a new issue