1
0
mirror of https://github.com/l1ving/youtube-dl synced 2025-02-11 15:12:57 +08:00

replace member variable by a special dictionary key.

This commit is contained in:
Géraud Le Falher 2013-08-10 10:17:45 +02:00
parent 577dae1dfa
commit 9c4aa5354a

View File

@ -287,7 +287,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
}, },
}, },
] ]
_subtitle_error_message = u''
@classmethod @classmethod
@ -376,11 +375,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
try: try:
sub_list = compat_urllib_request.urlopen(request).read().decode('utf-8') sub_list = compat_urllib_request.urlopen(request).read().decode('utf-8')
except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
self._subtitle_error_message = u'unable to download video subtitles: %s' % compat_str(err) return {'error': u'unable to download video subtitles: %s' % compat_str(err)}
return {}
sub_lang_list = re.findall(r'name="([^"]*)"[^>]+lang_code="([\w\-]+)"', sub_list) sub_lang_list = re.findall(r'name="([^"]*)"[^>]+lang_code="([\w\-]+)"', sub_list)
if len(sub_lang_list) == 0: if len(sub_lang_list) == 0:
self._subtitle_error_message = u'video doesn\'t have subtitles' return {'error': u'video doesn\'t have subtitles'}
return dict((l[1], l[0]) for l in sub_lang_list) return dict((l[1], l[0]) for l in sub_lang_list)
def _list_available_subtitles(self, video_id): def _list_available_subtitles(self, video_id):
@ -443,8 +441,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
""" """
sub_lang_list = self._get_available_subtitles(video_id) sub_lang_list = self._get_available_subtitles(video_id)
sub_format = self._downloader.params.get('subtitlesformat') sub_format = self._downloader.params.get('subtitlesformat')
if not sub_lang_list: #There was some error, it didn't get the available subtitles if 'error' in sub_lang_list: #There was some error, it didn't get the available subtitles
return [(self._subtitle_error_message, None, None)] return [(sub_lang_list['error'], None, None)]
if self._downloader.params.get('subtitleslang', False): if self._downloader.params.get('subtitleslang', False):
sub_lang = self._downloader.params.get('subtitleslang') sub_lang = self._downloader.params.get('subtitleslang')
elif 'en' in sub_lang_list: elif 'en' in sub_lang_list:
@ -460,9 +458,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
def _extract_all_subtitles(self, video_id): def _extract_all_subtitles(self, video_id):
sub_lang_list = self._get_available_subtitles(video_id) sub_lang_list = self._get_available_subtitles(video_id)
sub_format = self._downloader.params.get('subtitlesformat') sub_format = self._downloader.params.get('subtitlesformat')
if not sub_lang_list: #There was some error, it didn't get the available subtitles if 'error' in sub_lang_list: #There was some error, it didn't get the available subtitles
print(self._subtitle_error_message) return [(sub_lang_list['error'], None, None)]
return [(self._subtitle_error_message, None, None)]
subtitles = [] subtitles = []
for sub_lang in sub_lang_list: for sub_lang in sub_lang_list:
subtitle = self._request_subtitle(sub_lang, sub_lang_list[sub_lang].encode('utf-8'), video_id, sub_format) subtitle = self._request_subtitle(sub_lang, sub_lang_list[sub_lang].encode('utf-8'), video_id, sub_format)