- Blog
- videowipe Review: An Auto-Detecting Video Cleanup Engine for Subtitles, Watermarks, and Logos
videowipe Review: An Auto-Detecting Video Cleanup Engine for Subtitles, Watermarks, and Logos
videowipe Review: An Auto-Detecting Video Cleanup Engine for Subtitles, Watermarks, and Logos
The Hidden Cost of Video Watermark Removal: Manual Masking
Anyone who has used video watermark removal tools knows the drill: drag the video in, scrub through frames to find where the mark appears, draw a box, and pray it stays in one place for the whole clip. Real videos don't work that way — subtitles appear only during spoken segments, a watermark sits bottom-left for the first 10 seconds then jumps to top-right, a station logo fades in and out. Fixed-region processing means you erase the watermark and also blur out frames that never had one.
An open-source project called videowipe on GitHub targets exactly this: auto-detection + time-awareness. It scans the whole video, finds every subtitle, watermark, logo, and timestamp, builds an individual time track for each target, and then only erases the frames where that target actually appears. No manual box-drawing at all.
1. Core Design: Time-Aware Remove/Keep Tracks
videowipe's most distinctive concept is the WipePlan — a plain JSON file where every detected target is a track carrying four pieces of information:
- action:
removeorkeep - segments: the time ranges where the target appears
- mask: the precise mask (stored in a sidecar
.npzfile — must not be edited) - source: the video it's bound to
The magic is time-awareness: a subtitle that appears at second 5 and disappears at second 20 gets a track recording only that window. When execution runs, only those frames are processed — the same screen region stays untouched in frames without the subtitle. The subtitle is gone; the rest of the picture is untouched.
WipePlans are reviewable and editable: open the JSON in any editor, flip a track's action from remove to keep, adjust segment ranges, then re-execute. The plan is bound to its source video — executing it against a different video is rejected outright.
2. Auto-Detection: Multilingual, Four Target Types, Intent-Driven
Detection is videowipe's other headline feature:
- Multilingual text detection: officially tested on Chinese, English, Korean, and Burmese subtitles, works out of the box;
- Four target types:
subtitle,timestamp,watermark,logo— auto-detect everything by default, or pin targets with--target; - Region limiting:
--regionrestricts detection to top, bottom, any corner, or center; - Intent-driven:
--intentaccepts natural-language cleanup goals (e.g., "only remove the bottom-right logo"); - Local LLM agent:
--agentcan hook a local LLM CLI (claude, codex) to automate intent selection.
Detection sensitivity comes in three tiers: fast (24 coarse frames), balanced (50 frames, default), and sensitive (80 frames with dense re-checking of detector-backed remove segments to catch stragglers).
3. Architecture: SDK-First, Not Another GUI
videowipe's architecture inverts the usual approach — the core is a reusable Python engine, WipeEngine, and the CLI, local Web UI, and Docker images are just adapters over it.
- Create one WipeEngine instance and reuse it across a batch; the model loads once;
WipeEngine.run()returns aWipeResult; failures raise stableWipeErrorsubclasses (invalid input, missing backends, cancellation, processing failures are distinguished);- Legacy
process()andremove_text()entry points stay backwards-compatible; - No LLM or cloud required — plans are plain JSON, editable by any editor or local agent.
Requirements: Python 3.10+, ONNX Runtime or PyTorch as the inference backend, built on opencv-python-headless (runs in headless workers/containers). Not on PyPI yet — install from source; model weights auto-download to ~/.videowipe/weights/ on first run.
4. Inpainting: Built-In STTN, External ProPainter
For the erase step, videowipe ships STTN (Video Inpainting Transformer) by default — it runs on CPU via ONNX, no GPU required. For higher quality, --external-command lets you plug in any third-party inpainting model: the command receives <video> <mask> <output_dir> and must produce the output video there.
Official comparison (a bilingual Korean + Burmese subtitle music video, 852×480, 10-second clip):
- ProPainter (GPU fp16): higher quality;
- STTN (CPU ONNX): built-in default, zero GPU barrier.
ProPainter's cost: roughly 16GB VRAM for 480p video, and the NTU S-Lab License 1.0 is non-commercial.
5. CLI Quick Reference
The main command is clean (full pipeline). Key flags:
| Flag | Purpose | Default |
|---|---|---|
--target | Target types: subtitle/timestamp/watermark/logo, repeatable | auto-detect all |
--region | Limit region: top/bottom/corners/center | all regions |
--intent | Natural-language cleanup intent | — |
--preview | Write detection artifacts only, no inpainting | off |
--plan | Execute an existing wipe_plan.json | — |
--confirm | Show detected targets and confirm before processing | off |
--detect-mode | fast / balanced / sensitive | balanced |
--external-command | External inpainting command | — |
-g, --gap | Segment length per pass; higher = better quality, slower | 200 |
-d, --dual | Side-by-side original in output | off |
One-liner: videowipe clean --target subtitle --target watermark input.mp4.
6. Who Should Use It
videowipe turns "manual box-drawing + blind region erasing" into "auto-detection + precise time-aware erasing":
- Repurposers / second-screen creators: batch-clean hardcoded subtitles and watermarks from downloaded footage; multilingual detection is a real plus for foreign-language assets;
- Developers building automation pipelines: SDK-first architecture, JSON plans, and a Python API slot neatly into custom batch workers;
- Users who want control: WipePlans are reviewable and editable — inspect before you erase, unlike black-box tools.
The trade-offs are real: you need a Python environment, a command line, and the default STTN quality ceiling is below ProPainter. But if what you want is an engine that finds the watermarks itself rather than yet another manual masking tool, videowipe is the most distinctive idea in the current open-source ecosystem.
