Removal coverage, tests & limitations
A successful download means the supported processing path finished. It does not certify that a file is anonymous or that every metadata field is gone. Keep originals and review the downloaded copy before sharing.
Scroll the table sideways to read all limitations.
| Format | Current behavior | Remaining limitations |
|---|---|---|
| JPEG / WebP / AVIF | Decode and re-encode pixels. JPEG/WebP quality 0.95; AVIF 0.85, with WebP fallback. | Lossy output, color/profile changes and animation loss are possible. This is not metadata-only editing. |
| PNG / APNG | Keep selected rendering/animation chunks and original compressed IDAT/fdAT data. Drop text, EXIF, XMP, ICC and unknown chunks. | pHYs and selected rendering information remain. Removing ICC can change appearance. Canvas fallback re-encodes the image and can lose animation. |
| HEIC / HEIF | Decode and export JPEG; default path can encode JPEG twice. | Lossy conversion. Extra frames, depth, HDR and original color information may be lost. One real HEIC sample was tested; HEIF variants are not all verified. |
| GIF / BMP / TIFF | Export a raster PNG from one frame/page. | GIF animation and extra TIFF pages are lost. TIFF decoder/color differences can change pixels. PNG export does not restore lost source quality. |
| SVG | Remove metadata, title, desc, script elements and selected root editor attributes. | Not a complete SVG sanitizer. Other attributes, comments, external references and identifying drawing content can remain. |
| Clear standard Info title, author, subject, keywords, producer and creator; set dates to the Unix epoch. Detach catalog Metadata/PieceInfo references. | Tests confirm custom Info properties and detached XMP bytes can remain in the output. Comments, attachments, page/image metadata and visible content are not redacted. Re-saving can invalidate signatures. | |
| DOCX / XLSX / PPTX / ODT / ODS / ODP | Replace standard property XML, remove custom Office properties and selected thumbnails. | Comments, tracked changes, embedded files and their metadata remain. ZIP relationships, full application compatibility and every document variant have not been verified. |
| MP3 / MP4 / MOV / M4V | MP3: remove leading ID3v2 and trailing ID3v1 tags. Video: target selected user-data and XMP UUID boxes. | Other audio tags, dates, track/vendor metadata can remain. MP3 checks use synthetic envelopes; real media playback and video output validity have not been verified. Review videos before use. |
Published test evidence
44 automated checks passed on 2026-10-27 using Chrome/156.0.8078.48, ExifTool 13.59 and sharp 0.35.5. The checks are run by the maintainer using independent readers, not an independent security audit.
Image fixtures check selected author/GPS/comment fields with ExifTool and compare decoded pixels with sharp. PNG also checks that IDAT bytes stay unchanged. Office checks inspect synthetic ZIP package entries; PDF checks use ExifTool and raw bytes. Both viewer languages check that maps remain off before consent and reset when the file changes.
Download the full results, field values and output hashes (JSON)
| Input | Default output | Changed channel values in test fixture |
|---|---|---|
| JPG | JPG | 4457 / 6144 |
| PNG | PNG | 0 / 6144 |
| WEBP | WEBP | 4433 / 6144 |
| AVIF | AVIF | 4573 / 6144 |
| TIFF | PNG | 4525 / 6144 |
| GIF | PNG | 0 / 6144 |
| BMP | PNG | 0 / 6144 |
| SVG | SVG | Not compared |
| HEIC | JPG | Not compared |
These small fixtures do not cover every browser, color profile, camera, malformed file or encrypted document. BMP verifies conversion/pixels without a personal tag fixture. No universal tests of AI generators, C2PA variants, watermarks, steganography or external provenance records have been performed.
Reproduce the checks
In the source checkout, install dependencies and Chrome, start Astro in background mode, then run the test script with TEST_ORIGIN set to the local server URL. Set HEIC_FIXTURE to a local HEIC sample to include that format. The test intercepts external requests. The JSON records the removal engine hash and test environment.
npm run test:metadata