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": {
|
||||
"ignore_config": False,
|
||||
"remux_mkv": False,
|
||||
"embed_metadata": False
|
||||
"embed_metadata": False,
|
||||
"use_ffmpeg_location": False
|
||||
},
|
||||
"hide_default_presets": 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
|
||||
@@ -996,7 +998,7 @@ class OptionenDialog(QDialog):
|
||||
def __init__(self, output_dir, use_local_ytdlp, parent=None, ytdlp_flags=None):
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("Optionen")
|
||||
self.resize(420, 250)
|
||||
self.resize(420, 300)
|
||||
self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint)
|
||||
|
||||
# Icon für den Dialog setzen
|
||||
@@ -1009,7 +1011,8 @@ class OptionenDialog(QDialog):
|
||||
self.selected_flags = ytdlp_flags or {
|
||||
"ignore_config": False,
|
||||
"remux_mkv": False,
|
||||
"embed_metadata": False
|
||||
"embed_metadata": False,
|
||||
"use_ffmpeg_location": False
|
||||
}
|
||||
self.setup_ui()
|
||||
|
||||
@@ -1036,6 +1039,15 @@ class OptionenDialog(QDialog):
|
||||
mkvmerge_hbox.addWidget(self.mkvmerge_path_input)
|
||||
mkvmerge_hbox.addWidget(mkvmerge_browse_btn)
|
||||
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.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))
|
||||
flags_layout.addWidget(self.cb_embed_metadata)
|
||||
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)
|
||||
tabs.addTab(tab_flags, "yt-dlp-Flags")
|
||||
|
||||
@@ -1127,6 +1143,13 @@ class OptionenDialog(QDialog):
|
||||
if 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):
|
||||
return (
|
||||
self.output_dir_input.text(),
|
||||
@@ -1134,11 +1157,13 @@ class OptionenDialog(QDialog):
|
||||
{
|
||||
"ignore_config": self.cb_ignore_config.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.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):
|
||||
@@ -1617,13 +1642,14 @@ class MainWindow(QMainWindow):
|
||||
self.config.get("ytdlp_flags", DEFAULT_CONFIG["ytdlp_flags"])
|
||||
)
|
||||
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["use_local_ytdlp"] = use_local_ytdlp
|
||||
self.config["ytdlp_flags"] = ytdlp_flags
|
||||
self.config["hide_default_presets"] = hide_defaults
|
||||
self.config["mkvmerge_path"] = mkvmerge_path
|
||||
self.config["enable_adn_tab"] = enable_adn_tab
|
||||
self.config["ffmpeg_path"] = ffmpeg_path
|
||||
self.update_preset_combo()
|
||||
self.update_cmd_preview()
|
||||
|
||||
@@ -1713,6 +1739,9 @@ class MainWindow(QMainWindow):
|
||||
# HLS-ffmpeg
|
||||
if preset.get("hls_ffmpeg"):
|
||||
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
|
||||
if preset.get("sublang"):
|
||||
cmd.extend(["--sub-lang", preset["sublang"]])
|
||||
@@ -1812,6 +1841,9 @@ class MainWindow(QMainWindow):
|
||||
extra_args.append(f"--referer={preset['referer']}")
|
||||
if preset.get("hls_ffmpeg"):
|
||||
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"):
|
||||
extra_args.extend(["--sub-lang", preset["sublang"]])
|
||||
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"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
|
||||
if preset.get("use_format_selection", False):
|
||||
self.log_output.append("Format-Auswahl ist aktiviert.")
|
||||
@@ -2011,6 +2047,9 @@ class MainWindow(QMainWindow):
|
||||
extra_args.append(f"--referer={preset['referer']}")
|
||||
if preset.get("hls_ffmpeg"):
|
||||
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"):
|
||||
extra_args.extend(["--sub-lang", preset["sublang"]])
|
||||
if preset.get("embed_subs"):
|
||||
|
Reference in New Issue
Block a user