diff --git a/resources/language/resource.language.de/strings.po b/resources/language/resource.language.de/strings.po index 4543f78..49e1786 100644 --- a/resources/language/resource.language.de/strings.po +++ b/resources/language/resource.language.de/strings.po @@ -1325,3 +1325,7 @@ msgstr "Bei keinem Treffer automatisch 'Keine Untertitel' wählen" msgctxt "#30701" msgid "Abspielen mit Track-Auswahl" msgstr "Abspielen mit Track-Auswahl" + +msgctxt "#30702" +msgid "Nur Forced-Untertitel auswählen (keine normalen)" +msgstr "Nur Forced-Untertitel auswählen (keine normalen)" diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 9f4a57b..64abb6b 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -1316,3 +1316,7 @@ msgstr "Auto-select 'No subtitles' if no match found" msgctxt "#30701" msgid "Play with track selection" msgstr "Play with track selection" + +msgctxt "#30702" +msgid "Only select forced subtitles (no regular subs)" +msgstr "Only select forced subtitles (no regular subs)" diff --git a/resources/lib/play_utils.py b/resources/lib/play_utils.py index 37cb6a9..0d9cb72 100644 --- a/resources/lib/play_utils.py +++ b/resources/lib/play_utils.py @@ -810,6 +810,7 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s preferred_sub_lang = sub_lang_index_map[sub_lang_index] if sub_lang_index < len(sub_lang_index_map) else '' prefer_forced = settings.getSetting("prefer_forced_subtitles") == "true" + only_forced = settings.getSetting("only_forced_subtitles") == "true" prefer_srt = settings.getSetting("prefer_srt_over_pgs") == "true" auto_no_subs = settings.getSetting("auto_no_subtitles_if_no_match") == "true" @@ -965,8 +966,8 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s auto_selected = None best_score = -1 - log.debug("Auto-selecting subtitle: preferred_lang={0}, prefer_forced={1}, prefer_srt={2}".format( - preferred_sub_lang, prefer_forced, prefer_srt)) + log.debug("Auto-selecting subtitle: preferred_lang={0}, prefer_forced={1}, only_forced={2}, prefer_srt={3}".format( + preferred_sub_lang, prefer_forced, only_forced, prefer_srt)) for stream in subtitle_streams_data: score = 0 @@ -975,6 +976,12 @@ def audio_subs_pref(url, list_item, media_source, item_id, audio_stream_index, s is_forced = stream.get('IsForced', False) is_default = stream.get('IsDefault', False) + # Skip non-forced subtitles if only_forced is enabled + if only_forced and not is_forced: + log.debug("Skipping non-forced subtitle {0} ({1}) - only_forced is enabled".format( + stream_lang, stream['Index'])) + continue + # Score based on language match if preferred_sub_lang and language_matches(stream_lang, preferred_sub_lang): score += 100 diff --git a/resources/settings.xml b/resources/settings.xml index 85958c2..1abe36f 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -54,7 +54,8 @@ - + +