Files
Video-Download-Helper/config.py
2025-09-15 16:18:23 +02:00

63 lines
2.0 KiB
Python

#!/usr/bin/env -S uv run --script
"""
Konfiguration und Konstanten für den Video Download Helper
"""
import os
import sys
# Hilfsfunktionen für den Ressourcenpfad
def get_base_path():
"""Gibt den Basispfad für Ressourcen zurück, funktioniert sowohl für PyInstaller als auch für reguläre Ausführung."""
if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'):
# PyInstaller-Bundled-Modus
return sys._MEIPASS
else:
# Regulärer Modus
return os.path.dirname(os.path.abspath(__file__))
def get_user_data_dir():
if getattr(sys, 'frozen', False):
return os.path.dirname(sys.executable)
else:
return os.path.dirname(os.path.abspath(__file__))
def get_temp_dir():
"""Gibt den Pfad zum temporären Verzeichnis zurück und erstellt es bei Bedarf."""
base_dir = get_base_path()
temp_dir = os.path.join(base_dir, "temp")
if not os.path.exists(temp_dir):
os.makedirs(temp_dir, exist_ok=True)
return temp_dir
def get_user_presets_dir():
# Presets-Ordner neben der EXE (bzw. Script)
base = get_user_data_dir()
path = os.path.join(base, "presets")
if not os.path.exists(path):
os.makedirs(path, exist_ok=True)
return path
# Konfigurationspfade
CONFIG_FILE = os.path.join(get_user_data_dir(), "config.json")
PRESETS_DIR = os.path.join(get_base_path(), "presets") # Nur für Lesezugriff auf mitgelieferte Presets
# Standardkonfiguration
DEFAULT_CONFIG = {
"output_dir": "",
"use_local_ytdlp": True,
"last_preset": "",
"presets": [],
"ytdlp_flags": {
"ignore_config": False,
"remux_mkv": False,
"embed_metadata": False,
"use_ffmpeg_location": False
},
"hide_default_presets": False,
"enable_adn_tab": False,
"mkvmerge_path": "C:\\Program Files\\MKVToolNix\\mkvmerge.exe",
"ffmpeg_path": "C:\\ffmpeg\\bin\\ffmpeg.exe"
}
# Template-Variablen für Serien
SERIES_TEMPLATE = "{series} S{season}E{episode}{extension}"