Alta Video Player (WebAVP)
WebAVP is a local player for Alta/Ava Security camera exports. It focuses on core review workflows: importing video exports, synchronizing multiple cameras on one timeline, zooming into footage, and validating export integrity.
The app can run in two modes:
Core Features
- Drag/drop individual video and metadata files, folders, or ZIP archives
- Import unencrypted ZIPs through vendored JSZip
- Import AES-encrypted ZIP exports with an in-app password prompt
- Synchronize multiple camera segments on a shared timeline
- Scrub, zoom, pan, change playback speed, and frame-step footage
- Reorder, hide/show, expand, and automatically or manually lay out up to 16 camera tiles (4x4)
- Use region zoom and scroll zoom tools
- Verify signed exports offline and optionally confirm certificates with Alta's cloud verification endpoint
- Preserve sessions across refreshes with IndexedDB
Standalone desktop app (Electron)
npm install
npm start
The Electron shell loads the same player template used by web mode through the custom webavp://app/ protocol. Certificate verification and GitPeji update checks are bridged through narrowly scoped Electron IPC. Check for Updates compares semantic versions and opens the matching public GitPeji release asset in the system browser; installation remains an explicit user action.
Packaging scripts are included:
npm run dist:linux # Linux x64 AppImage + deb
npm run dist:mac # macOS x64 + arm64 dmg (run on macOS)
npm run dist:win # Windows x64 NSIS installer (run on Windows)
electron-builder is configured for Linux AppImage/deb, macOS dmg, and Windows nsis. Cross-platform packaging still needs to be run on the target OS/build host.
Web/Python mode
python3 app.py
# http://127.0.0.1:5152
The Python stdlib server serves /, /static/*, and /api/verify-cert. It binds to 127.0.0.1 by default; set WEBAVP_HOST=0.0.0.0 only for deliberate trusted-LAN sharing. Web mode shows Download Desktop App, selecting the latest compatible public GitPeji release asset when available and otherwise opening the releases page.
Checks
npm run check
npm run smoke # Electron on a desktop session
npm run smoke:headless # Electron under xvfb on headless Linux
WEBAVP_SMOKE_WEB_URL=http://127.0.0.1:5152/ npm run smoke:web
check runs syntax, focused layout/release regressions, Python server tests, and source invariants. The smoke commands exercise the shared template in both Electron and served web modes. See RELEASING.md for the GitPeji publishing and asset contract.