This guide ensures your project is production-ready for GitHub.
Before pushing to GitHub, verify:
- All scripts are executable (
launcher.bat,build_installer.bat, etc.) - README.md is complete and clear
- Code has proper comments
- Error handling is robust
- No hardcoded paths for other users (we use auto-detection)
- All test files pass
- License file included (MIT)
- User clones repository
- Runs
build_installer.bat - Gets
Video Clipper.exe - Just double-click and use!
Benefits:
- No dependencies to install
- Works anywhere
- No admin privileges needed
- Includes all dependencies
- User clones repository
- Runs
launcher.bat - Launcher auto-detects Python and FFmpeg
- Uses the tool!
Benefits:
- No manual installation
- Auto-path detection
- Easy to use
- User clones repository
- Runs
setup_dependencies.bat(installs Python, FFmpeg) - Runs
launcher.bat - Uses the tool!
Benefits:
- Can see and modify source
- No installer size overhead
- Updates are instant
build_installer.batThis script:
- Installs Python 3.13 if needed
- Installs FFmpeg if needed
- Installs PyInstaller
- Builds the EXE
- Saves as
Video Clipper.exe
# 1. Install dependencies
setup_dependencies.bat
# 2. Build with PyInstaller
python -m PyInstaller --onefile --windowed --name "Video Clipper" main.py
# 3. Result: Video Clipper.exe in current directoryThe launcher uses this detection order:
C:\Users\<user>\AppData\Local\Programs\Python\Python3*\python.exeC:\Python313\python.exepython.exe(from PATH)
C:\Program Files\ffmpeg\bin\ffmpeg.exeC:\ffmpeg\bin\ffmpeg.exe%LOCALAPPDATA%\ffmpeg\bin\ffmpeg.exe- From winget package (Gyan.FFmpeg)
This ensures the tool works on:
- Fresh Windows installs
- Updated Python installations
- Different user profiles
- Various FFmpeg versions
- Main documentation
- Installation instructions
- Usage examples
- Troubleshooting
- 5-step quick start
- Sample workflow
- Tips and tricks
- GitHub preparation guide
- Building instructions
- Path detection logic
No manual path configuration needed!
- Simple input fields
- Time format: mm:ss
- Clear progress indicators
- Error messages
- FFmpeg copy mode (-c copy)
- No re-encoding
- Instant cuts
- Original quality preserved
- Add unlimited clips
- Custom titles for each
- Batch processing
- Progress tracking
- Detects missing dependencies
- Validates time inputs
- Shows clear error messages
- Prevents crashes
- Reads video files from user selection
- Creates output files in user-specified folder
- Uses FFmpeg for processing (standard tool)
- No network connections
- No data collection
- No keylogging or spying
- Send data anywhere
- Modify other files
- Access the internet
- Run malicious code
- Install hidden software
- Base Python script: ~10KB
- PyInstaller overhead: ~20MB
- FFmpeg (included in detection, not bundled): ~80MB (if built)
- Final EXE size: ~20-100MB depending on bundling
When you release a new version:
-
Build the EXE: Run
build_installer.bat -
Update version: Modify main.py version string
-
Create release:
- Name:
Video Clipper v1.0.0 - Upload:
Video Clipper.exe- Source code (zip/tar)
- Write release notes
- Name:
-
User workflow:
- Download EXE
- Run and done!
# Make changes
git add .
git commit -m "Add new feature: x, fix y"
# Before pushing
git status # Check everything is committed
git log # Review recent commits
# Push
git push origin main# Tag version
git tag -a v1.0.0 -m "Initial release"
# Push tag
git push origin v1.0.0
# Create GitHub release from tagBefore releasing:
- Test EXE on clean Windows machine
- Test with sample video
- Test multiple clip creation
- Test error handling (missing file, wrong time format)
- Test on different Python versions (if possible)
- Verify FFmpeg detection works
- Check output files are valid MP4
- Test with large video files
- Test on Windows 10 and 11
Best for:
- Professional releases
- Version control
- User downloads
- Archive history
Best for:
- Developers
- Contributors
- Custom modifications
- Release EXE + source code
- Best of both worlds
Potential features:
- Batch video processing
- Multiple output formats
- Video preview window
- Drag and drop support
- Cloud integration
- Custom FFmpeg settings
- GUI theme switching
- Download EXE
- Run (first run: installs dependencies)
- Browse video
- Create folder
- Add clips
- Start
- Done!
- Run EXE
- Use as before (faster, no setup needed)
- Clone repository
- Customize
main.py - Build custom EXE
- Distribute
Ready to push to GitHub! 🎉