Einstellungen-Tab, plattformuebergreifendes Update/Branding, CI-Release-Pipeline

- Settings-Tab in der App (Discord/Update/Start-Tab live editierbar, kein config.json-Handbearbeiten noetig)
- updater.py: plattformabhaengige Asset-Auswahl + Installation (Windows .zip/robocopy, Linux .tar.gz/Shell-Skript)
- browser.py/chrome_shim.py: Sec-CH-UA + navigator.userAgentData jetzt je nach sys.platform (Windows/Linux/macOS)
- app_id.py: robustere Suche nach umbenanntem QtWebEngine-Hilfsprozess (rglob statt fixer Pfade)
- packaging/playtube.spec: icon/version nur unter Windows setzen (Linux-Build faehig)
- packaging/install-linux.sh: Installationsskript fuer native Linux-Version (Desktop-Eintrag, Icon, PATH)
- .github/workflows/release.yml: baut bei Tag-Push automatisch Windows-.exe UND Linux-Binary und veroeffentlicht beide als GitHub Release

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
2026-09-11 19:34:45 +02:00
co-authored by Claude Sonnet 5
parent 578cda499a
commit 0e6b580018
11 changed files with 459 additions and 109 deletions
+7 -8
View File
@@ -47,11 +47,10 @@ def configure_webengine_process_path() -> None:
return
exe_dir = Path(sys.executable).resolve().parent
candidates = [
exe_dir / "PlaytubeHelper.exe",
exe_dir / "_internal" / "PlaytubeHelper.exe",
]
for candidate in candidates:
if candidate.exists():
os.environ["QTWEBENGINEPROCESS_PATH"] = str(candidate)
return
# PyInstaller legt PySide6 je nach Version unterschiedlich tief in _internal ab
# (z.B. _internal\PySide6\), daher rekursiv suchen statt feste Pfade anzunehmen.
try:
candidate = next(exe_dir.rglob("PlaytubeHelper.exe"))
except StopIteration:
return
os.environ["QTWEBENGINEPROCESS_PATH"] = str(candidate)