feat: Playtube Edge 1.0.0 - WebView2 statt QtWebEngine (eigene Musik/AAC abspielbar)

Eigene Anwendung neben der Qt-Version: PlaytubeEdge.exe, eigene Installer-ID,
eigener Datenordner, Updates nur ueber Releases mit Tag *-edge.
This commit is contained in:
2026-09-26 20:23:24 +02:00
parent 6a682fc49c
commit c3e69bd5da
22 changed files with 628 additions and 422 deletions
+15 -6
View File
@@ -4,22 +4,31 @@
import sys
from pathlib import Path
from PyInstaller.utils.hooks import collect_all
block_cipher = None
ROOT = Path(SPECPATH).resolve().parent
# Edge-Variante: pythonnet + clr_loader (bringen Python.Runtime.dll/ClrLoader.dll mit) und die
# Microsoft-WebView2-DLLs aus vendor/webview2 (siehe playtube/webview2_runtime.py).
pythonnet_datas, pythonnet_binaries, pythonnet_hidden = collect_all("pythonnet")
clr_datas, clr_binaries, clr_hidden = collect_all("clr_loader")
a = Analysis(
[str(ROOT / "main.py")],
pathex=[str(ROOT)],
binaries=[],
binaries=pythonnet_binaries + clr_binaries,
datas=[
(str(ROOT / "assets"), "assets"),
(str(ROOT / "config.json"), "."),
],
hiddenimports=["pypresence"],
(str(ROOT / "vendor" / "webview2"), "vendor/webview2"),
] + pythonnet_datas + clr_datas,
hiddenimports=["pypresence", "clr"] + pythonnet_hidden + clr_hidden,
hookspath=[],
runtime_hooks=[],
excludes=[],
# Kein QtWebEngine mehr (WebView2 statt dessen) - haelt das Paket klein.
excludes=["PySide6.QtWebEngineCore", "PySide6.QtWebEngineWidgets", "PySide6.QtWebEngineQuick"],
noarchive=False,
)
@@ -29,7 +38,7 @@ pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
# Linux/macOS gibt es diese Konzepte fuer ELF-Binaries nicht, deshalb nur dort setzen.
exe_kwargs = dict(
exclude_binaries=True,
name="Playtube",
name="PlaytubeEdge",
debug=False,
bootloader_ignore_signals=False,
strip=False,
@@ -49,5 +58,5 @@ coll = COLLECT(
a.datas,
strip=False,
upx=False,
name="Playtube",
name="PlaytubeEdge",
)