language settings and default-mode settings for subtitles

This commit is contained in:
James Taylor 2018-07-13 16:54:33 -07:00
parent 12382d5205
commit cccffb8354
2 changed files with 15 additions and 6 deletions

View File

@ -1,6 +1,14 @@
default_settings = '''route_tor = False default_settings = '''route_tor = False
port_number = 80 port_number = 80
allow_foreign_addresses = False allow_foreign_addresses = False
# 0 - off by default
# 1 - only manually created subtitles on by default
# 2 - enable even if automatically generated is all that's available
subtitles_mode = 0
# ISO 639 language code: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
subtitles_language = "en"
''' '''
exec(default_settings) exec(default_settings)
try: try:

View File

@ -7,6 +7,7 @@ import youtube.common as common
from youtube.common import default_multi_get, get_thumbnail_url, video_id, URL_ORIGIN from youtube.common import default_multi_get, get_thumbnail_url, video_id, URL_ORIGIN
import youtube.comments as comments import youtube.comments as comments
import gevent import gevent
import settings
video_height_priority = (360, 480, 240, 720, 1080) video_height_priority = (360, 480, 240, 720, 1080)
@ -252,17 +253,17 @@ def subtitles_html(info):
for language, formats in info['subtitles'].items(): for language, formats in info['subtitles'].items():
for format in formats: for format in formats:
if format['ext'] == 'vtt': if format['ext'] == 'vtt':
if language == "en": if language == settings.subtitles_language:
default_found = True default_found = True
result += subtitles_tag_template.substitute( result += subtitles_tag_template.substitute(
src = html.escape('/' + format['url']), src = html.escape('/' + format['url']),
label = html.escape(language), label = html.escape(language),
srclang = html.escape(language), srclang = html.escape(language),
default = 'default' if language == 'en' else '', default = 'default' if language == settings.subtitles_language and settings.subtitles_mode > 0 else '',
) )
break break
try: try:
formats = info['automatic_captions']['en'] formats = info['automatic_captions'][settings.subtitles_language]
except KeyError: except KeyError:
pass pass
else: else:
@ -270,9 +271,9 @@ def subtitles_html(info):
if format['ext'] == 'vtt': if format['ext'] == 'vtt':
result += subtitles_tag_template.substitute( result += subtitles_tag_template.substitute(
src = html.escape('/' + format['url']), src = html.escape('/' + format['url']),
label = 'en' + ' - Automatic', label = settings.subtitles_language + ' - Automatic',
srclang = 'en', srclang = settings.subtitles_language,
default = '' if default_found else 'default', default = 'default' if settings.subtitles_mode == 2 and not default_found else '',
) )
return result return result