Füge Unterstützung für den FFmpeg-Pfad in den Optionen hinzu. Erweitere die Log-Ausgabe um den FFmpeg-Pfad, wenn die Option aktiviert ist.
This commit is contained in:
53
main.py
53
main.py
@@ -74,11 +74,13 @@ DEFAULT_CONFIG = {
|
|||||||
"ytdlp_flags": {
|
"ytdlp_flags": {
|
||||||
"ignore_config": False,
|
"ignore_config": False,
|
||||||
"remux_mkv": False,
|
"remux_mkv": False,
|
||||||
"embed_metadata": False
|
"embed_metadata": False,
|
||||||
|
"use_ffmpeg_location": False
|
||||||
},
|
},
|
||||||
"hide_default_presets": False,
|
"hide_default_presets": False,
|
||||||
"enable_adn_tab": False,
|
"enable_adn_tab": False,
|
||||||
"mkvmerge_path": "C:\\Program Files\\MKVToolNix\\mkvmerge.exe"
|
"mkvmerge_path": "C:\\Program Files\\MKVToolNix\\mkvmerge.exe",
|
||||||
|
"ffmpeg_path": "C:\\ffmpeg\\bin\\ffmpeg.exe"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Template-Variablen für Serien
|
# Template-Variablen für Serien
|
||||||
@@ -996,7 +998,7 @@ class OptionenDialog(QDialog):
|
|||||||
def __init__(self, output_dir, use_local_ytdlp, parent=None, ytdlp_flags=None):
|
def __init__(self, output_dir, use_local_ytdlp, parent=None, ytdlp_flags=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.setWindowTitle("Optionen")
|
self.setWindowTitle("Optionen")
|
||||||
self.resize(420, 250)
|
self.resize(420, 300)
|
||||||
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
|
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
|
||||||
|
|
||||||
# Icon für den Dialog setzen
|
# Icon für den Dialog setzen
|
||||||
@@ -1009,7 +1011,8 @@ class OptionenDialog(QDialog):
|
|||||||
self.selected_flags = ytdlp_flags or {
|
self.selected_flags = ytdlp_flags or {
|
||||||
"ignore_config": False,
|
"ignore_config": False,
|
||||||
"remux_mkv": False,
|
"remux_mkv": False,
|
||||||
"embed_metadata": False
|
"embed_metadata": False,
|
||||||
|
"use_ffmpeg_location": False
|
||||||
}
|
}
|
||||||
self.setup_ui()
|
self.setup_ui()
|
||||||
|
|
||||||
@@ -1036,6 +1039,15 @@ class OptionenDialog(QDialog):
|
|||||||
mkvmerge_hbox.addWidget(self.mkvmerge_path_input)
|
mkvmerge_hbox.addWidget(self.mkvmerge_path_input)
|
||||||
mkvmerge_hbox.addWidget(mkvmerge_browse_btn)
|
mkvmerge_hbox.addWidget(mkvmerge_browse_btn)
|
||||||
layout.addRow("MKVMerge-Pfad:", mkvmerge_hbox)
|
layout.addRow("MKVMerge-Pfad:", mkvmerge_hbox)
|
||||||
|
|
||||||
|
# FFmpeg-Pfad hinzufügen
|
||||||
|
self.ffmpeg_path_input = QLineEdit(self.parent().config.get("ffmpeg_path", "C:\\ffmpeg\\bin\\ffmpeg.exe") if self.parent() else "C:\\ffmpeg\\bin\\ffmpeg.exe")
|
||||||
|
ffmpeg_browse_btn = QPushButton("Durchsuchen...")
|
||||||
|
ffmpeg_browse_btn.clicked.connect(self.browse_ffmpeg_path)
|
||||||
|
ffmpeg_hbox = QHBoxLayout()
|
||||||
|
ffmpeg_hbox.addWidget(self.ffmpeg_path_input)
|
||||||
|
ffmpeg_hbox.addWidget(ffmpeg_browse_btn)
|
||||||
|
layout.addRow("FFmpeg-Pfad:", ffmpeg_hbox)
|
||||||
|
|
||||||
self.ytdlp_source_combo = QComboBox()
|
self.ytdlp_source_combo = QComboBox()
|
||||||
self.ytdlp_source_combo.addItems(["Lokal (bin/yt-dlp.exe)", "System (PATH)"])
|
self.ytdlp_source_combo.addItems(["Lokal (bin/yt-dlp.exe)", "System (PATH)"])
|
||||||
@@ -1081,6 +1093,10 @@ class OptionenDialog(QDialog):
|
|||||||
self.cb_embed_metadata.setChecked(self.selected_flags.get("embed_metadata", False))
|
self.cb_embed_metadata.setChecked(self.selected_flags.get("embed_metadata", False))
|
||||||
flags_layout.addWidget(self.cb_embed_metadata)
|
flags_layout.addWidget(self.cb_embed_metadata)
|
||||||
flags_layout.addWidget(QLabel("Betten Metadaten in die Ausgabedatei ein."))
|
flags_layout.addWidget(QLabel("Betten Metadaten in die Ausgabedatei ein."))
|
||||||
|
self.cb_use_ffmpeg_location = QCheckBox("--ffmpeg-location")
|
||||||
|
self.cb_use_ffmpeg_location.setChecked(self.selected_flags.get("use_ffmpeg_location", False))
|
||||||
|
flags_layout.addWidget(self.cb_use_ffmpeg_location)
|
||||||
|
flags_layout.addWidget(QLabel("Nutzt den konfigurierten FFmpeg-Pfad für yt-dlp."))
|
||||||
tab_flags.setLayout(flags_layout)
|
tab_flags.setLayout(flags_layout)
|
||||||
tabs.addTab(tab_flags, "yt-dlp-Flags")
|
tabs.addTab(tab_flags, "yt-dlp-Flags")
|
||||||
|
|
||||||
@@ -1127,6 +1143,13 @@ class OptionenDialog(QDialog):
|
|||||||
if file_path:
|
if file_path:
|
||||||
self.mkvmerge_path_input.setText(file_path)
|
self.mkvmerge_path_input.setText(file_path)
|
||||||
|
|
||||||
|
def browse_ffmpeg_path(self):
|
||||||
|
file_path, _ = QFileDialog.getOpenFileName(self, "FFmpeg-Executable auswählen",
|
||||||
|
self.ffmpeg_path_input.text() or "C:\\ffmpeg\\bin",
|
||||||
|
"Executable (*.exe)")
|
||||||
|
if file_path:
|
||||||
|
self.ffmpeg_path_input.setText(file_path)
|
||||||
|
|
||||||
def get_values(self):
|
def get_values(self):
|
||||||
return (
|
return (
|
||||||
self.output_dir_input.text(),
|
self.output_dir_input.text(),
|
||||||
@@ -1134,11 +1157,13 @@ class OptionenDialog(QDialog):
|
|||||||
{
|
{
|
||||||
"ignore_config": self.cb_ignore_config.isChecked(),
|
"ignore_config": self.cb_ignore_config.isChecked(),
|
||||||
"remux_mkv": self.cb_remux_mkv.isChecked(),
|
"remux_mkv": self.cb_remux_mkv.isChecked(),
|
||||||
"embed_metadata": self.cb_embed_metadata.isChecked()
|
"embed_metadata": self.cb_embed_metadata.isChecked(),
|
||||||
|
"use_ffmpeg_location": self.cb_use_ffmpeg_location.isChecked()
|
||||||
},
|
},
|
||||||
self.hide_defaults_cb.isChecked(),
|
self.hide_defaults_cb.isChecked(),
|
||||||
self.mkvmerge_path_input.text(),
|
self.mkvmerge_path_input.text(),
|
||||||
self.enable_adn_tab_cb.isChecked()
|
self.enable_adn_tab_cb.isChecked(),
|
||||||
|
self.ffmpeg_path_input.text()
|
||||||
)
|
)
|
||||||
|
|
||||||
def download_ytdlp(self):
|
def download_ytdlp(self):
|
||||||
@@ -1617,13 +1642,14 @@ class MainWindow(QMainWindow):
|
|||||||
self.config.get("ytdlp_flags", DEFAULT_CONFIG["ytdlp_flags"])
|
self.config.get("ytdlp_flags", DEFAULT_CONFIG["ytdlp_flags"])
|
||||||
)
|
)
|
||||||
if dialog.exec_() == QDialog.Accepted:
|
if dialog.exec_() == QDialog.Accepted:
|
||||||
output_dir, use_local_ytdlp, ytdlp_flags, hide_defaults, mkvmerge_path, enable_adn_tab = dialog.get_values()
|
output_dir, use_local_ytdlp, ytdlp_flags, hide_defaults, mkvmerge_path, enable_adn_tab, ffmpeg_path = dialog.get_values()
|
||||||
self.config["output_dir"] = output_dir
|
self.config["output_dir"] = output_dir
|
||||||
self.config["use_local_ytdlp"] = use_local_ytdlp
|
self.config["use_local_ytdlp"] = use_local_ytdlp
|
||||||
self.config["ytdlp_flags"] = ytdlp_flags
|
self.config["ytdlp_flags"] = ytdlp_flags
|
||||||
self.config["hide_default_presets"] = hide_defaults
|
self.config["hide_default_presets"] = hide_defaults
|
||||||
self.config["mkvmerge_path"] = mkvmerge_path
|
self.config["mkvmerge_path"] = mkvmerge_path
|
||||||
self.config["enable_adn_tab"] = enable_adn_tab
|
self.config["enable_adn_tab"] = enable_adn_tab
|
||||||
|
self.config["ffmpeg_path"] = ffmpeg_path
|
||||||
self.update_preset_combo()
|
self.update_preset_combo()
|
||||||
self.update_cmd_preview()
|
self.update_cmd_preview()
|
||||||
|
|
||||||
@@ -1713,6 +1739,9 @@ class MainWindow(QMainWindow):
|
|||||||
# HLS-ffmpeg
|
# HLS-ffmpeg
|
||||||
if preset.get("hls_ffmpeg"):
|
if preset.get("hls_ffmpeg"):
|
||||||
cmd.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
cmd.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
||||||
|
# FFmpeg-Pfad
|
||||||
|
if flags.get("use_ffmpeg_location") and self.config.get("ffmpeg_path"):
|
||||||
|
cmd.extend(["--ffmpeg-location", self.config.get("ffmpeg_path")])
|
||||||
# Untertitel
|
# Untertitel
|
||||||
if preset.get("sublang"):
|
if preset.get("sublang"):
|
||||||
cmd.extend(["--sub-lang", preset["sublang"]])
|
cmd.extend(["--sub-lang", preset["sublang"]])
|
||||||
@@ -1812,6 +1841,9 @@ class MainWindow(QMainWindow):
|
|||||||
extra_args.append(f"--referer={preset['referer']}")
|
extra_args.append(f"--referer={preset['referer']}")
|
||||||
if preset.get("hls_ffmpeg"):
|
if preset.get("hls_ffmpeg"):
|
||||||
extra_args.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
extra_args.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
||||||
|
# FFmpeg-Pfad
|
||||||
|
if flags.get("use_ffmpeg_location") and self.config.get("ffmpeg_path"):
|
||||||
|
extra_args.extend(["--ffmpeg-location", self.config.get("ffmpeg_path")])
|
||||||
if preset.get("sublang"):
|
if preset.get("sublang"):
|
||||||
extra_args.extend(["--sub-lang", preset["sublang"]])
|
extra_args.extend(["--sub-lang", preset["sublang"]])
|
||||||
if preset.get("embed_subs"):
|
if preset.get("embed_subs"):
|
||||||
@@ -1850,6 +1882,10 @@ class MainWindow(QMainWindow):
|
|||||||
self.log_output.append(f"Untertitel-Format: {preset.get('subformat','')}")
|
self.log_output.append(f"Untertitel-Format: {preset.get('subformat','')}")
|
||||||
self.log_output.append(f"Ausgabedateiname: {output_filename}")
|
self.log_output.append(f"Ausgabedateiname: {output_filename}")
|
||||||
|
|
||||||
|
# FFmpeg-Pfad
|
||||||
|
if flags.get("use_ffmpeg_location") and self.config.get("ffmpeg_path"):
|
||||||
|
self.log_output.append(f"FFmpeg-Pfad: {self.config.get('ffmpeg_path')}")
|
||||||
|
|
||||||
# Format-Auswahl und Dual-Audio
|
# Format-Auswahl und Dual-Audio
|
||||||
if preset.get("use_format_selection", False):
|
if preset.get("use_format_selection", False):
|
||||||
self.log_output.append("Format-Auswahl ist aktiviert.")
|
self.log_output.append("Format-Auswahl ist aktiviert.")
|
||||||
@@ -2011,6 +2047,9 @@ class MainWindow(QMainWindow):
|
|||||||
extra_args.append(f"--referer={preset['referer']}")
|
extra_args.append(f"--referer={preset['referer']}")
|
||||||
if preset.get("hls_ffmpeg"):
|
if preset.get("hls_ffmpeg"):
|
||||||
extra_args.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
extra_args.extend(["--downloader", "ffmpeg", "--hls-use-mpegts"])
|
||||||
|
# FFmpeg-Pfad
|
||||||
|
if flags.get("use_ffmpeg_location") and self.config.get("ffmpeg_path"):
|
||||||
|
extra_args.extend(["--ffmpeg-location", self.config.get("ffmpeg_path")])
|
||||||
if preset.get("sublang"):
|
if preset.get("sublang"):
|
||||||
extra_args.extend(["--sub-lang", preset["sublang"]])
|
extra_args.extend(["--sub-lang", preset["sublang"]])
|
||||||
if preset.get("embed_subs"):
|
if preset.get("embed_subs"):
|
||||||
|
Reference in New Issue
Block a user