Prepare WhisperDrop for cross-platform release - #5
Open
Zer0codestuff wants to merge 15 commits into
Open
Zer0codestuff wants to merge 15 commits into
Zer0codestuff wants to merge 15 commits into
Conversation
- add macOS app bundle, icon generation, and DMG packaging scripts - add YouTube video and playlist transcription through yt-dlp - make launchers runtime-aware for installed app bundles - document release installation, source setup, and packaging flow
Probe Vulkan before transcription and fall back to CPU when the backend stalls. Co-authored-by: Cursor <cursoragent@cursor.com>
Stream whisper.cpp segment output during transcription while filtering backend diagnostics from the app log. Co-authored-by: Cursor <cursoragent@cursor.com>
Include a first-run launcher that unblocks downloaded runtime DLLs before starting the packaged app. Co-authored-by: Cursor <cursoragent@cursor.com>
Bundle runtime tools into a single PyInstaller executable so Windows users can download and run one file directly. Co-authored-by: Cursor <cursoragent@cursor.com>
Bundle the original app assets into the PyInstaller onefile build so the packaged app can load the microphone icon while keeping the simple executable launch path. Co-authored-by: Cursor <cursoragent@cursor.com>
Select whisper-cli with ggml-vulkan.dll when available and teach setup.ps1 to build or refresh a local Vulkan binary instead of stopping at a CPU-only PATH install. Co-authored-by: Cursor <cursoragent@cursor.com>
whisper.cpp enables flash attention by default, which crashes the Vulkan backend on many discrete GPUs (notably NVIDIA) and forces a silent CPU fallback. Pass --no-flash-attn for the Vulkan probe and transcription, add a WHISPERDROP_VULKAN_FLASH_ATTN opt-in, and log the real failure reason instead of an uninformative first line. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR turns WhisperDrop into a more complete cross-platform desktop transcription app and prepares it for macOS distribution.
It adds Windows support, multi-file transcription, YouTube video/playlist ingestion, a macOS
.appbundle workflow, a generated app icon, and a ready-to-publish DMG packaging script. It also updates the README so the public GitHub surface reflects the current release and setup flow.What changed
macOS app and release packaging
scripts/build_macos_app.shto createdist/WhisperDrop.appfrom the existing Python/Tkinter app without changing the UI.script/build_and_run.shas a repeatable build/run/verify entrypoint for local macOS testing.scripts/package_dmg.shto producebuild/package/WhisperDrop-<version>.dmg.assets/app-icon/whisperdrop-icon.pngand converts it intoWhisperDrop.icnsduring bundle creation.~/Library/Application Support/WhisperDropinstead of mutating the bundled app source.dist/,build/,.codex/,.downloads/,.models/,.tools/, and.venv/.YouTube transcription
yt-dlpas a dependency.Downloads/WhisperDropand transcribes it through the sameffmpeg+whisper.cpppipeline as local files.Multi-file transcription and UI behavior
Windows support
WhisperDrop.batandWhisperDrop_installer.bat.scripts/setup.ps1for Windows provisioning.ffmpeg/whisper.cpphelper tools locally under ignored runtime folders.whisper.cppwith Vulkan support where possible and falls back to CPU behavior when needed.Tool discovery and backend handling
ffmpeg,whisper-cli,whisper-cpp, andyt-dlp.Documentation
Release artifact
A release was published from
devwith the generated DMG attached:80f2088cd3e119da6992daf748cb13f839ca3e60a27bdd8fef187f1960a7a1acNote: the current macOS artifact is not signed or notarized, so Gatekeeper may require right-click > Open on first launch.
Validation
Completed locally:
bash -n WhisperDrop.command scripts/setup.sh scripts/build_macos_app.sh scripts/package_dmg.sh script/build_and_run.sh.venv/bin/python -m py_compile transcriber.py scripts/dev.pygit diff --check./script/build_and_run.sh --verify./scripts/package_dmg.sh 1.0.0hdiutil verify build/package/WhisperDrop-1.0.0.dmgWhisperDrop.appplus anApplicationssymlink./Applications/WhisperDrop.applaunches and is visible to macOS ascom.whisperdrop.app.Merge notes
origin/dev.v1.0.0points at the latestdevcommit.build/anddist/are intentionally not committed; the DMG is distributed through GitHub Releases.