Use this checklist to complete the setup and build your AVSync Desktop application.
- Project structure created (35 files)
- All React components implemented
- Electron main process configured
- TypeScript compilation successful
- Build system configured (Vite + electron-builder)
- Documentation written (README, guides, etc.)
- Requirements file updated with >= versions
# Install Node.js packages
npm install
# Install Python packages
pip install -r requirements.txtStatus: ⏳ To do Estimated time: 5-10 minutes
# Using PyInstaller
npm run build:pyinstaller
# Or manually:
pyinstaller --clean avsync.specStatus: ⏳ To do
What this does: Bundles AVSync_v12.py into a standalone executable
Output location: dist/avsync/avsync.exe (Windows) or dist/avsync/avsync (Unix)
Estimated time: 2-5 minutes
Troubleshooting:
- If it fails, ensure all Python dependencies are installed
- Check that AVSync_v12.py is in the current directory
- Try:
pip install --upgrade pyinstaller
📖 See detailed instructions in: DOWNLOAD_BINARIES.md
FFmpeg & FFprobe:
- Download: https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip
- Extract and copy from
ffmpeg-x.x.x-essentials_build/bin/:ffmpeg.exe→resources/bin/ffmpeg.exeffprobe.exe→resources/bin/ffprobe.exe
MKVToolNix:
- Download: https://mkvtoolnix.download/downloads.html (Portable version)
- Extract and copy:
mkvmerge.exe→resources/bin/mkvmerge.exe
# Install via Homebrew
brew install ffmpeg mkvtoolnix
# Copy binaries
cp $(which ffmpeg) resources/bin/
cp $(which ffprobe) resources/bin/
cp $(which mkvmerge) resources/bin/# Install via package manager
sudo apt install ffmpeg mkvtoolnix # Debian/Ubuntu
# Copy binaries
cp $(which ffmpeg) resources/bin/
cp $(which ffprobe) resources/bin/
cp $(which mkvmerge) resources/bin/Status: ⏳ To do Estimated time: 5-10 minutes
PyInstaller creates a folder with the exe and dependencies. Copy the entire folder:
# Windows (PowerShell)
Copy-Item -Path "dist\avsync" -Destination "resources\avsync" -Recurse -Force
# macOS/Linux
cp -r dist/avsync resources/avsync
chmod +x resources/avsync/avsyncWhy the whole folder? PyInstaller bundles Python DLLs and dependencies in an _internal subfolder. The executable needs this folder structure to run.
Status: ⏳ To do Estimated time: 1 minute
Check that you have the correct structure:
# List PyInstaller bundle
ls -la resources/avsync/
# Should show: avsync.exe (or avsync) and _internal/ folder
# List other binaries
ls -la resources/bin/
# Should show: ffmpeg, ffprobe, mkvmerge (with .exe on Windows)Windows checklist:
-
resources/avsync/avsync.exeexists -
resources/avsync/_internal/folder exists -
resources/bin/ffmpeg.exeexists -
resources/bin/ffprobe.exeexists -
resources/bin/mkvmerge.exeexists
Unix checklist:
-
resources/avsync/avsyncexists and is executable -
resources/avsync/_internal/folder exists -
resources/bin/ffmpegexists and is executable -
resources/bin/ffprobeexists and is executable -
resources/bin/mkvmergeexists and is executable
Status: ⏳ To do
npm run devWhat happens:
- Vite dev server starts on http://localhost:5173
- Electron window opens automatically
- React app loads with hot-reload enabled
- DevTools are available for debugging
Test the following:
- Application window opens
- File selection dialogs work
- Can select reference and foreign videos
- Video metadata displays correctly
- Frame preview loads (may take a moment)
- Navigation controls work
- Can add sync points
- Parameters can be adjusted
- Application closes cleanly
Status: ⏳ To do Estimated time: 10-15 minutes
Before building for distribution, test the full AVSync process:
- Select two test videos (reference and foreign)
- Choose an output location
- Optionally add manual sync points
- Click "Run AVSync"
- Monitor the log output
- Wait for completion
- Verify output file exists and plays correctly
Status: ⏳ To do (optional) Estimated time: 5-30 minutes (depending on video length)
npm run package:winOutput:
release/AVSync Desktop Setup 1.0.0.exe- NSIS installerrelease/AVSync Desktop 1.0.0.exe- Portable executable
npm run package:macOutput:
release/AVSync Desktop-1.0.0.dmg- DMG installerrelease/AVSync Desktop-1.0.0-mac.zip- ZIP archive
Status: ⏳ To do Estimated time: 5-10 minutes Note: This will bundle everything including all binaries
- Navigate to
release/folder - Run the portable .exe OR install using the Setup.exe
- Launch "AVSync Desktop"
- Test all features again (like step 6)
- Run a full sync operation
- Mount the DMG
- Drag to Applications folder
- Right-click → Open (first launch only)
- Test all features
- Run a full sync operation
Checklist:
- Application installs/launches successfully
- All UI elements render correctly
- File dialogs work
- Video preview works
- Full sync operation completes successfully
- Output video is valid
- Application closes without errors
Status: ⏳ To do Estimated time: 15-20 minutes
If you want to get started quickly, run the automated setup script:
Windows:
setup.batUnix (macOS/Linux):
chmod +x setup.sh
./setup.shThis will:
- Install npm dependencies
- Install Python dependencies
- Build AVSync executable
- Create resources directory
- Copy AVSync to resources (Windows)
- Attempt to copy system binaries (Unix)
You'll still need to manually download binaries on Windows.
Expect these approximate sizes:
node_modules/: ~200 MBdist/avsync/: ~150-200 MB (PyInstaller bundle)resources/bin/: ~150 MB (all binaries)- Final installer: ~300-400 MB
- First npm install: 5-10 minutes
- PyInstaller build: 2-5 minutes
- Vite build: <1 minute
- electron-builder package: 5-10 minutes
Total setup time: 30-60 minutes (including downloads)
"Module not found" during npm install:
rm -rf node_modules package-lock.json
npm installPyInstaller fails:
pip install --upgrade pyinstaller
pyinstaller --clean avsync.specBinaries not found at runtime:
- Check all files are in
resources/bin/ - On Unix:
chmod +x resources/bin/* - Rebuild:
npm run build && npm run package
App won't open on macOS:
- Right-click → Open (don't double-click)
- Or: System Preferences → Security & Privacy → Allow
When you complete all steps, you'll have:
✅ A fully functional desktop application ✅ Production-ready installers ✅ Cross-platform compatibility ✅ Professional UI with all AVSync features
What to do with the built application:
- Share the installer with users
- Upload to a distribution platform
- Keep for personal use
- Continue development
Next enhancements you could add:
- Drag & drop file support
- Recent files list
- Parameter presets/profiles
- Auto-update functionality
- Crash reporting
- More detailed progress indicators
- README.md - Feature overview and usage
- QUICKSTART.md - Fastest way to get started
- BUILD_INSTRUCTIONS.md - Detailed build guide
- PROJECT_SUMMARY.md - Architecture details
- FILE_STRUCTURE.md - Complete file tree
Happy building! 🚀
For questions or issues, refer to the documentation or check the AVSync_v12.py source code for parameter details.