Desktop app for reviewing fencing bouts: import videos, mark segments, add notes, and export highlights + chapter timestamps.
- Export progress dialog is responsive and cancellable; cancel cleanly stops ffmpeg work.
- Video list now has a Remove Video button that deletes the media plus its segments/notes.
- Packaging fixes: macOS zip uses
dittoso bundled stdlib/ext modules survive unzip; Windows binaries run without stray consoles. - CI now auto-builds all platforms on tags and publishes a draft release with attached zips.
- Timeline scrubber now jumps to any click position—no more drag-only playhead.
- Export gap fast-forward: optional button under the video to render unselected parts at a chosen speed in the highlights output.
- Cross-platform PyInstaller spec +
scripts/package_release.pyfor Windows and Linux zip builds.
- Score tracker window (always on top): log Point Left/Right/No Point, optionally auto-increment scores, and drop timestamped comments at the playhead.
- Per-segment playback speed: set slow/fast motion when editing or duplicating segments; speeds carry through to exported clips and stitched highlights.
- Launch the app.
- Create/open a project: click New Project or Open Project, and create a folder where you want the output files to be.
- Import videos: Select Import Videos and choose files. (If you have multiple videos, drag to reorder them in the display).
- Play: select a video; spacebar = play/pause, M = mute toggle. Left/Right arrows scrub seconds; Shift+Left/Right step frames.
- Export gap fast-forward: button under the video toggles including unselected gaps in the highlights at your chosen speed (default 3×).
- Mark segments: To Mark the action, at the start use I (Mark In), at end press O (Mark Out). Segments appear in the list; double-click to jump.
- [Optional] Edit/duplicate segments: select a segment -> Edit segment (start/end/label/speed) or Duplicate segment.
- [Optional] notes: move playhead -> Add Comment or Add Chapter; double-click a note to edit timestamp/type/text.
- [Optional] Score tracker: toolbar -> Score Tracker (stays on top). Use Point Left/Right/No Point; with "Enable Score" checked, scores auto-increment and get appended to the comment. You can manually adjust the score boxes anytime.
- Export: click Export. Outputs go to exports/:
highlights.mp4(/clips/contain individual segments, chapters and notes found inyoutube_chapters.txt,comments_timestamps.txt. ) - Open exports folder: toolbar button or Ctrl+Shift+E.
Go to the releases page https://github.com/CarlHentges/Bout-Review/releases
- Apple Silicon (M1/M2/M3): download
Bout_Review_Mac-arm64.zip - Intel Macs: download
Bout_Review_Mac-x64.zip
After downloading:
- Extract the zip and move “Bout Review.app” wherever you like (e.g., Applications).
- If macOS blocks it, go to System Settings → Privacy & Security and choose “Open Anyway”.
- Download
Bout_Review_Windows-x64.zip - Extract the file (portable app). Keep all files together in the folder.
- Run
Bout Review.exe(create a desktop shortcut if you like).
- Download
Bout_Review_Linux-x64.zip - Extract the folder.
- Run
./Bout\\ Review/Bout\\ Review(mark executable if needed:chmod +x \"Bout Review/Bout Review\").
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install -e .
python -m bout_reviewOn first run, a bout_review_config.json is created in the repo root for colors + hotkeys.
pip install pyinstaller pillow
pyinstaller BoutReview.spec
python scripts/package_release.pyOutputs land in dist/ as Bout_Review_<Platform>-<arch>.zip (e.g., Bout_Review_Windows-x64.zip, Bout_Review_Linux-x64.zip, Bout_Review_Mac-arm64.zip). Run the executable inside the unzipped folder for your OS.
CI note: pushing a tag (v*) runs GitHub Actions to build all platforms and attach zips to a draft release automatically.
- Install build deps:
pip install pyinstaller pillow- Build:
pyinstaller BoutReview.spec- Result:
macOS: dist/Bout Review.app
Windows: dist/Bout Review/Bout Review.exe
Linux: dist/Bout Review/Bout Review
- Package for release:
python scripts/package_release.pyThis zips the right folder for your platform into dist/Bout_Review_<Platform>-<arch>.zip.
Windows build tip: If PyInstaller fails with PermissionError while removing dist/Bout Review (e.g., ffmpegmediaplugin.dll locked), close any running Bout Review instance, delete the old dist/Bout Review folder (or use pyinstaller -y --clean BoutReview.spec), then rebuild.
- The build bundles an FFmpeg binary from
imageio-ffmpegso no system FFmpeg install is needed. - App icon uses
src/bout_review/assets/bout_review_icon.pngat runtime.
