A cross-platform desktop application for removing static watermarks from video files. Draw a box over the watermark, pick a removal method, and export a clean output — no cloud upload, no subscription, everything runs locally.
- Interactive ROI selector — drag-to-resize bounding box directly on the video frame via Konva.js canvas
- Four removal engines — Inpainting (TELEA), Gaussian Blur, Solid Fill, Clone Stamp
- 3-second quick preview — test your settings on a short clip before committing to a full render
- Real-time progress bar — frame-by-frame progress streamed from the Python backend via IPC
- Multi-core processing — Python
multiprocessing.Poolsaturates all CPU cores automatically - Audio preserved — original audio track is muxed back into the output with zero re-encoding
- Zero temp files — all intermediate frames are deleted from disk on completion or error
- Fully offline — no internet connection; no data ever leaves your machine
| Launch screen | Video loaded — pick a method |
|---|---|
![]() |
![]() |
| Ready to export | Processing in progress | Export complete |
|---|---|---|
![]() |
![]() |
![]() |
| Dependency | Version | Install |
|---|---|---|
| Node.js | 18+ | nodejs.org |
| Python | 3.11+ | python.org |
| FFmpeg | 6+ | brew install ffmpeg / choco install ffmpeg / apt install ffmpeg |
git clone https://github.com/YOUR_USERNAME/watermark-remover.git
cd watermark-removernpm install
cd renderer && npm install && cd ..python3 -m venv backend/.venv
source backend/.venv/bin/activate # macOS/Linux
# backend\.venv\Scripts\activate # Windows
pip install -r backend/requirements.txtpython scripts/validate_env.py
# Expected: EXIT:0 — all checks passednpm run devThe Electron window opens automatically once Vite's dev server is ready at http://localhost:5173.
npm run dist
# Output: dist/ → .dmg (macOS) | .exe (Windows) | .AppImage (Linux)See RELEASING.md for code signing, GitHub Actions CI/CD, versioning, and publishing a GitHub Release.
See HELP.md for a step-by-step guide with screenshots and tips for each removal method.
See PROJECT_STRUCTURE.md for a full annotated map of every file and directory.
See TESTING.md for how to run the full test suite (backend + renderer) and what each test covers.
| Layer | Technology |
|---|---|
| Desktop shell | Electron 41 |
| UI framework | React 19 + TypeScript |
| Build tool | Vite 8 |
| Canvas | Konva.js / react-konva |
| Styling | Tailwind CSS v4 |
| Backend | Python 3.11+ |
| Video processing | FFmpeg 6+ via ffmpeg-python |
| Image processing | OpenCV-contrib (cv2) + NumPy |
| Schema validation | Pydantic v2 |
| Parallelism | Python multiprocessing.Pool |
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Run tests before committing:
npm run test:backendandcd renderer && npm run test:run - Open a pull request with a clear description of the change
Please follow existing code style. New Python code should pass ruff linting. New TypeScript should have no tsc errors.
This project is licensed under the MIT License — see LICENSE for the full text.
MIT License
Copyright (c) 2026 cpanda
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.




