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 @@
-
+
+