Fix exception when _captions_base_url is not present
Signed-off-by: Jesús <heckyel@hyperbola.info>
This commit is contained in:
parent
e8cbc5074a
commit
dcd4b0f0ae
@ -176,7 +176,7 @@ def make_caption_src(info, lang, auto=False, trans_lang=None):
|
|||||||
if trans_lang:
|
if trans_lang:
|
||||||
label += ' -> ' + trans_lang
|
label += ' -> ' + trans_lang
|
||||||
return {
|
return {
|
||||||
'url': '/' + yt_data_extract.get_caption_url(info, lang, 'vtt', auto, trans_lang),
|
'url': util.prefix_url(yt_data_extract.get_caption_url(info, lang, 'vtt', auto, trans_lang)),
|
||||||
'label': label,
|
'label': label,
|
||||||
'srclang': trans_lang[0:2] if trans_lang else lang[0:2],
|
'srclang': trans_lang[0:2] if trans_lang else lang[0:2],
|
||||||
'on': False,
|
'on': False,
|
||||||
@ -220,6 +220,8 @@ def get_subtitle_sources(info):
|
|||||||
pref_lang (Automatic)
|
pref_lang (Automatic)
|
||||||
pref_lang (Manual)'''
|
pref_lang (Manual)'''
|
||||||
sources = []
|
sources = []
|
||||||
|
if not yt_data_extract.captions_available(info):
|
||||||
|
return []
|
||||||
pref_lang = settings.subtitles_language
|
pref_lang = settings.subtitles_language
|
||||||
native_video_lang = None
|
native_video_lang = None
|
||||||
if info['automatic_caption_languages']:
|
if info['automatic_caption_languages']:
|
||||||
|
@ -10,4 +10,4 @@ from .watch_extraction import (extract_watch_info, get_caption_url,
|
|||||||
update_with_age_restricted_info, requires_decryption,
|
update_with_age_restricted_info, requires_decryption,
|
||||||
extract_decryption_function, decrypt_signatures, _formats,
|
extract_decryption_function, decrypt_signatures, _formats,
|
||||||
update_format_with_type_info, extract_hls_formats,
|
update_format_with_type_info, extract_hls_formats,
|
||||||
extract_watch_info_from_html)
|
extract_watch_info_from_html, captions_available)
|
||||||
|
@ -732,10 +732,15 @@ def extract_watch_info_from_html(watch_html):
|
|||||||
return extract_watch_info(fake_polymer_json)
|
return extract_watch_info(fake_polymer_json)
|
||||||
|
|
||||||
|
|
||||||
|
def captions_available(info):
|
||||||
|
return bool(info['_captions_base_url'])
|
||||||
|
|
||||||
|
|
||||||
def get_caption_url(info, language, format, automatic=False, translation_language=None):
|
def get_caption_url(info, language, format, automatic=False, translation_language=None):
|
||||||
'''Gets the url for captions with the given language and format. If automatic is True, get the automatic captions for that language. If translation_language is given, translate the captions from `language` to `translation_language`. If automatic is true and translation_language is given, the automatic captions will be translated.'''
|
'''Gets the url for captions with the given language and format. If automatic is True, get the automatic captions for that language. If translation_language is given, translate the captions from `language` to `translation_language`. If automatic is true and translation_language is given, the automatic captions will be translated.'''
|
||||||
url = info['_captions_base_url']
|
url = info['_captions_base_url']
|
||||||
|
if not url:
|
||||||
|
return None
|
||||||
url += '&lang=' + language
|
url += '&lang=' + language
|
||||||
url += '&fmt=' + format
|
url += '&fmt=' + format
|
||||||
if automatic:
|
if automatic:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user