The app is now self-contained: yt-dlp, ffmpeg and ffprobe ship inside the bundle and are resolved beside the executable, so a fresh Mac needs nothing installed. A system copy still wins when present, which is how to run a newer yt-dlp than the bundled one. yt-dlp is pointed at the bundled ffmpeg explicitly, since a bundled app has no reason to have one on PATH. The binaries stay out of git (~140MB); scripts/fetch-binaries.sh pulls them. Homebrew's ffmpeg cannot be used — it links a dozen dylibs and does not relocate — so the static arm64 build is used instead. Version checks moved to the async Command. yt-dlp is a PyInstaller bundle that unpacks ~37MB on first run, and the blocking call was stalling a runtime worker for roughly twenty seconds. Bundle size goes from 19MB to 153MB.
54 lines
1.1 KiB
JSON
54 lines
1.1 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/yt-dlp",
|
|
"binaries/ffmpeg",
|
|
"binaries/ffprobe"
|
|
]
|
|
}
|
|
}
|