Replaces the official yt-dlp_macos sidecar. That build is PyInstaller one-file and unpacks 37MB on every invocation, costing ~8s per call on this machine — ruled out signing, xattrs and thinning the universal binary as causes, and it is 8% CPU over 8s, so it is the unpack itself. Every stream resolve paid it. The 3MB zipapp on a trimmed portable CPython starts in ~0.45s, a 17x improvement; a real stream resolve goes from ~10s to ~2.4s. macOS ships only Python 3.9 and yt-dlp needs 3.10+, hence bundling an interpreter. yt-dlp is now resolved as an argv prefix rather than a path, so a system install (a plain script, instant) still takes precedence. Bundle grows 153MB -> 219MB, which buys back the responsiveness.
57 lines
1.2 KiB
JSON
57 lines
1.2 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "FlightTube",
|
|
"version": "0.1.0",
|
|
"identifier": "com.vincent.flighttube",
|
|
"build": {
|
|
"beforeDevCommand": "npm run dev",
|
|
"devUrl": "http://localhost:1420",
|
|
"beforeBuildCommand": "npm run build",
|
|
"frontendDist": "../dist"
|
|
},
|
|
"app": {
|
|
"windows": [
|
|
{
|
|
"title": "FlightTube",
|
|
"width": 1180,
|
|
"height": 780,
|
|
"minWidth": 900,
|
|
"minHeight": 560,
|
|
"center": true,
|
|
"titleBarStyle": "Overlay",
|
|
"hiddenTitle": true
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": null,
|
|
"assetProtocol": {
|
|
"enable": true,
|
|
"scope": [
|
|
"$HOME/Movies/FlightTube/**",
|
|
"$APPDATA/**",
|
|
"$APPLOCALDATA/**"
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": "all",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.icns",
|
|
"icons/icon.ico"
|
|
],
|
|
"externalBin": [
|
|
"binaries/ffmpeg",
|
|
"binaries/ffprobe"
|
|
],
|
|
"resources": {
|
|
"resources/python": "python",
|
|
"resources/yt-dlp.pyz": "yt-dlp.pyz"
|
|
}
|
|
}
|
|
}
|