Option für eigen Namen

This commit is contained in:
Akamaru
2025-05-19 00:24:21 +02:00
parent 76770119c4
commit f445cd4989

65
main.py
View File

@@ -186,12 +186,23 @@ class DownloadThread(QThread):
self.update_signal.emit(f"Debug - Vollständiger Ausgabepfad: {output_path}")
cmd.extend(["-o", output_path])
else:
default_path = os.path.join(self.output_dir, "%(title)s.%(ext)s")
self.update_signal.emit(f"Debug - Standard-Ausgabepfad: {default_path}")
cmd.extend(["-o", default_path])
# Verwende benutzerdefinierten Namen, wenn in den Presets aktiviert
if self.preset_data.get("custom_output_template", False) and self.preset_data.get("output_template"):
output_template = self.preset_data.get("output_template")
output_path = os.path.join(self.output_dir, output_template)
self.update_signal.emit(f"Debug - Benutzerdefinierte Name: {output_path}")
else:
output_path = os.path.join(self.output_dir, "%(title)s.%(ext)s")
self.update_signal.emit(f"Debug - Standard-Ausgabepfad: {output_path}")
cmd.extend(["-o", output_path])
elif self.output_filename:
self.update_signal.emit(f"Debug - Nur Ausgabedateiname: {self.output_filename}")
cmd.extend(["-o", self.output_filename])
elif self.preset_data.get("custom_output_template", False) and self.preset_data.get("output_template"):
# Wenn kein Ausgabeverzeichnis, aber benutzerdefinierte Vorlage vorhanden
output_template = self.preset_data.get("output_template")
self.update_signal.emit(f"Debug - Nur benutzerdefinierte Name: {output_template}")
cmd.extend(["-o", output_template])
cmd.append(self.url)
@@ -718,7 +729,9 @@ class PresetDialog(QDialog):
"episode": "1",
"extension": ".mkv",
"custom_path": "",
"is_audio": False
"is_audio": False,
"custom_output_template": False,
"output_template": "%(title)s.%(ext)s"
}
self.setup_ui()
@@ -798,7 +811,34 @@ class PresetDialog(QDialog):
subtitle_tab.setLayout(subtitle_layout)
tabs.addTab(subtitle_tab, "Untertitel")
# Tab 3: Authentifizierung
# Tab 3: Output Template
output_tab = QWidget()
output_layout = QFormLayout()
# Custom Output Template Checkbox
self.custom_output_template_cb = QCheckBox("Eigenen Namen verwenden")
self.custom_output_template_cb.setChecked(self.preset_data.get("custom_output_template", False))
output_layout.addRow(self.custom_output_template_cb)
# Output Template Field
self.output_template_edit = QLineEdit(self.preset_data.get("output_template", "%(title)s.%(ext)s"))
self.output_template_edit.setPlaceholderText("z.B. %(title)s.%(ext)s, %(uploader)s/%(title)s.%(ext)s")
output_layout.addRow("Name:", self.output_template_edit)
# Add examples and documentation link
examples_label = QLabel("<b>Beispiele:</b><br>" +
"%(title)s-%(id)s.%(ext)s<br>" +
"%(uploader)s/%(title)s.%(ext)s<br>" +
"%(playlist)s/%(playlist_index)s-%(title)s.%(ext)s<br><br>" +
"<a href='https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#output-template'>Mehr Beispiele in der yt-dlp Dokumentation</a>")
examples_label.setOpenExternalLinks(True)
examples_label.setTextFormat(Qt.RichText)
output_layout.addRow(examples_label)
output_tab.setLayout(output_layout)
tabs.addTab(output_tab, "Name")
# Tab 4: Authentifizierung
auth_tab = QWidget()
auth_layout = QFormLayout()
@@ -971,7 +1011,9 @@ class PresetDialog(QDialog):
"temp_de_filename": self.temp_de_filename_edit.text(),
"de_sub_filename": self.de_sub_filename_edit.text(),
"de_forced_sub_filename": self.de_forced_sub_filename_edit.text(),
"cleanup_temp": self.cleanup_temp_cb.isChecked()
"cleanup_temp": self.cleanup_temp_cb.isChecked(),
"custom_output_template": self.custom_output_template_cb.isChecked(),
"output_template": self.output_template_edit.text()
}
def browse_custom_path(self):
@@ -1104,7 +1146,7 @@ class OptionenDialog(QDialog):
tab_info = QWidget()
info_layout = QVBoxLayout()
info_text = (
"<b>Version:</b> 1.3<br>"
"<b>Version:</b> 1.4<br>"
"<b>&copy; 2025 Akamaru</b><br>"
"<b>Sourcecode:</b> <a href='https://git.ponywave.de/Akamaru/video-download-helper'>https://git.ponywave.de/Akamaru/video-download-helper</a><br>"
"<b>Erstellt mit Hilfe von Claude, GPT &amp; Gemini</b>"
@@ -1768,8 +1810,13 @@ class MainWindow(QMainWindow):
output_name = output_name.replace("\\\\", "\\")
output_filename = output_name
else:
output_filename = "%(title)s.%(ext)s"
# Verwende benutzerdefinierte Ausgabevorlage, wenn in den Presets aktiviert
if preset.get("custom_output_template", False) and preset.get("output_template"):
output_filename = preset.get("output_template")
else:
output_filename = "%(title)s.%(ext)s"
# Füge den Ausgabepfad zum Befehl hinzu
if output_dir:
output_path = os.path.join(output_dir, output_filename)
cmd.extend(["-o", output_path])