Write auto-subs only if selected; show count

Downloader: add detection for "Auto-generated" subtitle selection and only append --write-auto-subs when an auto-generated subtitle is explicitly chosen (prevents always enabling the flag when any subtitles are requested). GUI: update subtitle label to display the number of selected subtitles when >0, falling back to the zero-selected message otherwise. Small UX and behavior fixes in DownloadThread and AnalysisMixin.
This commit is contained in:
oop7
2026-05-01 16:49:58 +03:00
parent abef0d8a6d
commit 0d5cbb2df1
2 changed files with 10 additions and 2 deletions
+5 -1
View File
@@ -352,17 +352,21 @@ class DownloadThread(QThread):
# Get language codes from subtitle selections # Get language codes from subtitle selections
lang_codes: List[str] = [] lang_codes: List[str] = []
has_auto_generated = False
for sub_selection in self.subtitle_langs: for sub_selection in self.subtitle_langs:
try: try:
# Extract just the language code (e.g., 'en' from 'en - Manual') # Extract just the language code (e.g., 'en' from 'en - Manual')
lang_code = sub_selection.split(" - ")[0] lang_code = sub_selection.split(" - ")[0]
lang_codes.append(lang_code) lang_codes.append(lang_code)
if "Auto-generated" in sub_selection:
has_auto_generated = True
except Exception as e: except Exception as e:
logger.exception(f"Could not parse subtitle selection '{sub_selection}': {e}") logger.exception(f"Could not parse subtitle selection '{sub_selection}': {e}")
if lang_codes: if lang_codes:
cmd.extend(["--sub-langs", ",".join(lang_codes)]) cmd.extend(["--sub-langs", ",".join(lang_codes)])
cmd.append("--write-auto-subs") # Include auto-generated subtitles if has_auto_generated:
cmd.append("--write-auto-subs") # Include auto-generated subtitles
# Only embed subtitles if merge is enabled # Only embed subtitles if merge is enabled
if self.merge_subs: if self.merge_subs:
+5 -1
View File
@@ -435,7 +435,11 @@ class AnalysisMixin:
self.download_thumbnail_file(self.video_url, self.last_path) self.download_thumbnail_file(self.video_url, self.last_path)
# Update subtitle UI # Update subtitle UI
self.signals.selected_subs_label_text.emit(_("main_ui.zero_selected")) count = len(self.selected_subtitles)
if count > 0:
self.signals.selected_subs_label_text.emit(_("subtitle_selection.count_selected", count=count))
else:
self.signals.selected_subs_label_text.emit(_("main_ui.zero_selected"))
# Update format table # Update format table
self.video_button.setChecked(True) self.video_button.setChecked(True)