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.
36 lines
1.2 KiB
Bash
Executable File
36 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Fetches the helper binaries FlightTube ships as Tauri sidecars.
|
|
#
|
|
# They are not in git — together they are about 140MB. Run this once before
|
|
# building, or after changing the target architecture.
|
|
set -euo pipefail
|
|
|
|
TRIPLE="${1:-aarch64-apple-darwin}"
|
|
DEST="$(cd "$(dirname "$0")/.." && pwd)/src-tauri/binaries"
|
|
TMP="$(mktemp -d)"
|
|
trap 'rm -rf "$TMP"' EXIT
|
|
mkdir -p "$DEST"
|
|
|
|
echo "Fetching yt-dlp (official GitHub release)…"
|
|
curl -fsSL -o "$TMP/yt-dlp" \
|
|
https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos
|
|
|
|
# Static arm64 builds; Homebrew's ffmpeg links a dozen dylibs and cannot be
|
|
# relocated into an app bundle.
|
|
for tool in ffmpeg ffprobe; do
|
|
echo "Fetching $tool (static, osxexperts.net)…"
|
|
curl -fsSL -A "Mozilla/5.0" -o "$TMP/$tool.zip" "https://www.osxexperts.net/${tool}9arm.zip"
|
|
unzip -o -q "$TMP/$tool.zip" -d "$TMP"
|
|
done
|
|
|
|
for tool in yt-dlp ffmpeg ffprobe; do
|
|
install -m 0755 "$TMP/$tool" "$DEST/$tool-$TRIPLE"
|
|
echo " -> $DEST/$tool-$TRIPLE"
|
|
done
|
|
|
|
echo "Done. Verifying they run:"
|
|
for tool in yt-dlp ffmpeg ffprobe; do
|
|
"$DEST/$tool-$TRIPLE" -version 2>/dev/null | head -1 || \
|
|
"$DEST/$tool-$TRIPLE" --version 2>/dev/null | head -1
|
|
done
|