Watermark Remover - Private Video Desktop Application
A privacy-focused desktop application built with Electron, React, and Python. It uses OpenCV and FFmpeg to remove watermarks from videos through inpainting and other algorithms, all processed locally on the user's hardware.

π§ Overview
Watermark Remover is a cross-platform desktop application designed to remove static watermarks from video files. Its primary goal is to provide a private, local-first solution that avoids cloud uploads or subscriptions, allowing users to clean videos directly on their own hardware.
The project uses a modern “Hybrid” architecture, combining a web-based frontend with a powerful Python-based processing engine.
π Key Features
- Interactive ROI Selection β Users can drag and resize a bounding box directly over the video frame to target the watermark using Konva.js.
- Multiple Removal Engines β Offers four distinct algorithms: Inpainting (TELEA), Gaussian Blur, Solid Fill, and Clone Stamp.
- Quick Preview β Generates a 3-second clip to test settings before committing to a full render.
- High Performance β Utilizes multi-core CPU processing and streams real-time progress from the backend.
- Audio Integrity β Preserves the original audio track by muxing it back into the output without re-encoding.
- Privacy-Focused β Operates entirely offline with no data leaving the machine and automatic cleanup of temporary files.
βοΈ How It Works
- Input & Selection: The user loads a video into the Electron interface and draws a Region of Interest (ROI) over the watermark.
- IPC Communication: The React frontend sends the coordinates and chosen removal method to the Python backend via Inter-Process Communication (IPC).
- Frame Processing:
- The Python backend uses FFmpeg to extract frames from the video.
- OpenCV algorithms process each frame within the selected ROI using
multiprocessing.Poolfor speed.
- Reassembly: FFmpeg muxes the original audio track back with the new frames to create the final video file.
- Cleanup: All intermediate image files are deleted immediately upon completion.
π¬ Quick Start
To run the application locally:
# Clone the repository
git clone https://github.com/pandaind/watermark-remove.git
cd watermark-remove
# Install dependencies and start
npm install
npm run dev
π Topics Covered
- π₯οΈ Desktop Shell β Electron 41 with React 19 and TypeScript
- π¨ UI & Styling β Tailwind CSS v4 and Vite 8
- π§ Backend Processing β Python 3.11+ with Pydantic v2
- π½οΈ Video Processing β FFmpeg 6 for extraction and reassembly
- ποΈ Computer Vision β OpenCV (cv2) and NumPy for inpainting algorithms
- ποΈ Hybrid Architecture β Integrating Electron with a Python subprocess
π§ Potential Extensions
Areas for experimentation:
- Implement AI-based deep learning inpainting (e.g., LaMa)
- Support for dynamic (moving) watermarks with object tracking
- GPU-accelerated frame processing with CUDA
- Batch processing of multiple videos
- Cloud-sync for project configurations (optional)
π€ Contributing
This project is an open-source tool. You can:
- Study the hybrid Electron-Python architecture
- Add new inpainting algorithms or filters
- Improve the performance of frame processing
- Submit bug reports or feature requests via GitHub