Option für eigen Namen
This commit is contained in:
65
main.py
65
main.py
@@ -186,12 +186,23 @@ class DownloadThread(QThread):
|
|||||||
self.update_signal.emit(f"Debug - Vollständiger Ausgabepfad: {output_path}")
|
self.update_signal.emit(f"Debug - Vollständiger Ausgabepfad: {output_path}")
|
||||||
cmd.extend(["-o", output_path])
|
cmd.extend(["-o", output_path])
|
||||||
else:
|
else:
|
||||||
default_path = os.path.join(self.output_dir, "%(title)s.%(ext)s")
|
# Verwende benutzerdefinierten Namen, wenn in den Presets aktiviert
|
||||||
self.update_signal.emit(f"Debug - Standard-Ausgabepfad: {default_path}")
|
if self.preset_data.get("custom_output_template", False) and self.preset_data.get("output_template"):
|
||||||
cmd.extend(["-o", default_path])
|
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:
|
elif self.output_filename:
|
||||||
self.update_signal.emit(f"Debug - Nur Ausgabedateiname: {self.output_filename}")
|
self.update_signal.emit(f"Debug - Nur Ausgabedateiname: {self.output_filename}")
|
||||||
cmd.extend(["-o", 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)
|
cmd.append(self.url)
|
||||||
|
|
||||||
@@ -718,7 +729,9 @@ class PresetDialog(QDialog):
|
|||||||
"episode": "1",
|
"episode": "1",
|
||||||
"extension": ".mkv",
|
"extension": ".mkv",
|
||||||
"custom_path": "",
|
"custom_path": "",
|
||||||
"is_audio": False
|
"is_audio": False,
|
||||||
|
"custom_output_template": False,
|
||||||
|
"output_template": "%(title)s.%(ext)s"
|
||||||
}
|
}
|
||||||
|
|
||||||
self.setup_ui()
|
self.setup_ui()
|
||||||
@@ -798,7 +811,34 @@ class PresetDialog(QDialog):
|
|||||||
subtitle_tab.setLayout(subtitle_layout)
|
subtitle_tab.setLayout(subtitle_layout)
|
||||||
tabs.addTab(subtitle_tab, "Untertitel")
|
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_tab = QWidget()
|
||||||
auth_layout = QFormLayout()
|
auth_layout = QFormLayout()
|
||||||
|
|
||||||
@@ -971,7 +1011,9 @@ class PresetDialog(QDialog):
|
|||||||
"temp_de_filename": self.temp_de_filename_edit.text(),
|
"temp_de_filename": self.temp_de_filename_edit.text(),
|
||||||
"de_sub_filename": self.de_sub_filename_edit.text(),
|
"de_sub_filename": self.de_sub_filename_edit.text(),
|
||||||
"de_forced_sub_filename": self.de_forced_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):
|
def browse_custom_path(self):
|
||||||
@@ -1104,7 +1146,7 @@ class OptionenDialog(QDialog):
|
|||||||
tab_info = QWidget()
|
tab_info = QWidget()
|
||||||
info_layout = QVBoxLayout()
|
info_layout = QVBoxLayout()
|
||||||
info_text = (
|
info_text = (
|
||||||
"<b>Version:</b> 1.3<br>"
|
"<b>Version:</b> 1.4<br>"
|
||||||
"<b>© 2025 Akamaru</b><br>"
|
"<b>© 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>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 & Gemini</b>"
|
"<b>Erstellt mit Hilfe von Claude, GPT & Gemini</b>"
|
||||||
@@ -1768,8 +1810,13 @@ class MainWindow(QMainWindow):
|
|||||||
output_name = output_name.replace("\\\\", "\\")
|
output_name = output_name.replace("\\\\", "\\")
|
||||||
output_filename = output_name
|
output_filename = output_name
|
||||||
else:
|
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:
|
if output_dir:
|
||||||
output_path = os.path.join(output_dir, output_filename)
|
output_path = os.path.join(output_dir, output_filename)
|
||||||
cmd.extend(["-o", output_path])
|
cmd.extend(["-o", output_path])
|
||||||
|
Reference in New Issue
Block a user