Frequently Asked Questions
Everything you need to know about how MetaScrub keeps your files private.
Absolutely not. Every single operation โ reading the file, parsing metadata, stripping it, and generating the output โ happens entirely inside your browser tab using JavaScript and WebAssembly. Your files never touch the internet.
MetaScrub currently supports images (JPEG, PNG, HEIC, WebP, GIF, TIFF), videos (MP4, MOV, AVI, MKV), and PDF documents. Support for more formats is actively being added.
Yes. For large files, MetaScrub uses the Streams API to process data in small chunks rather than loading the entire file into memory at once. This means even multi-gigabyte videos can be processed without exhausting browser RAM.
From images, MetaScrub can strip: GPS latitude and longitude, GPS altitude, date and time stamps, camera make and model, software version, author/artist name, copyright notices, user comments, and many more EXIF/IPTC/XMP tags. You can selectively keep any field you want.
For video files processed via ffmpeg.wasm, MetaScrub strips the entire metadata track including embedded GPS data, encoder strings, creation timestamps, and author atoms (moov/udta). The video and audio content are preserved perfectly.
For JPEG images, the canvas re-export uses 95% quality โ visually lossless to the human eye. For PNG and WebP, the format is lossless by nature. For videos, MetaScrub uses the -c copy flag in ffmpeg, meaning the video and audio streams are bit-for-bit identical, just the metadata container is removed โ zero quality loss.
Yes! The full source code is publicly available on GitHub at github.com/kamalstores. You can inspect exactly what the code does, fork it, or contribute to it.
Yes. MetaScrub is built as a Progressive Web App (PWA). Once loaded, you can install it to your device via your browser's "Install App" option and use it completely offline.
No. Once your ZIP file is downloaded, all processed data is immediately garbage-collected by the browser. When you close the tab, nothing persists โ no cache, no local storage, no file system writes.
The COEP and COOP headers are required by browsers to enable SharedArrayBuffer, which ffmpeg.wasm needs for multi-threaded WebAssembly execution. This is a browser security requirement, not something we added โ it actually makes the app more isolated and secure.
There is no hard-coded limit. The practical limit is your browser's available RAM. On modern devices, files up to several gigabytes work fine due to the Streams API chunking. For very large batches, processing files in groups of 5-10 is recommended.
Yes. MetaScrub is fully responsive and works on iOS Safari and Chrome for Android. Note that video processing via ffmpeg.wasm may be slower on mobile devices due to CPU constraints, but it is fully functional.
Still have questions?
Open an issue on GitHub or read through the source code โ the implementation is transparent by design.