#!/usr/bin/env bash # Build standalone playlist binary with PyInstaller # Run from the playlist/ directory pip install pyinstaller yt-dlp rich mutagen pyinstaller \ --onefile \ --name playlist \ --hidden-import yt_dlp \ --hidden-import mutagen.id3 \ --hidden-import mutagen.mp3 \ playlist.py echo "" echo "Binary at: dist/playlist" echo "Usage:" echo " ./dist/playlist resolve my-export.csv" echo " ./dist/playlist search my-export-playlist.md" echo " ./dist/playlist download my-export-playlist.md" # GUI binary (Flask + system browser, no Qt/pywebview dependency) pip install flask pyinstaller \ --onefile \ --name playlist-gui \ --collect-all yt_dlp \ --hidden-import mutagen.id3 \ --hidden-import mutagen.mp3 \ --hidden-import mutagen.easyid3 \ --hidden-import flask \ --hidden-import rich \ --hidden-import rich.console \ --hidden-import rich.theme \ --hidden-import tkinter \ --hidden-import tkinter.filedialog \ gui.py echo "GUI binary at: dist/playlist-gui" echo "Usage: ./dist/playlist-gui" echo " Opens in your default browser at http://localhost:" echo " Ctrl-C to quit."