Skip to content
CreatorPrivacyKit

Empirical research & benchmark

Metadata Removal Product & Engine Benchmark (2026-09)

A dual evaluation of client-side metadata sanitization: live browser product E2E for interactive JPEG and PDF export paths, plus deterministic engine regression fixtures for images, documents, and video container atoms. All operations execute locally on-device without cloud uploads.

Metadata Removal Product & Engine Benchmark (2026-09)?

A dual evaluation of client-side metadata sanitization: live browser product E2E for interactive JPEG and PDF export paths, plus deterministic engine regression fixtures for images, documents, and video container atoms. All operations execute locally on-device without cloud uploads. Canvas raster re-encode to clean JPEG via Metadata Cleaner UI

C2PA: Coalition for Content Provenance and Authenticity; C2PA specification 2.4

Last updated

Verified Tested by CreatorPrivacyKit Labs · September 23, 2026 · Metadata Removal Benchmark v1.0
Fixtures Evaluated 8 fixtures JPEG, PNG, WebP, PDF, MP4, MOV
Pass (Full-Pass Scope) 6 / 6 Declared full-pass fixtures (2 Browser E2E)
Partial (Documented) 2 / 8 PDF visible text & JPEG pixel stamp
Failures 0 On tested supported scope
Supported Scope Pass Rate: 100.0% (6 / 6 declared full-pass fixtures passed within tested supported scope) Zero server uploads across all paths

Benchmark Results Matrix

Metadata Removal Product & Engine Benchmark — September 2026 Test Run
Fixture Execution & Verification Sanitization Pipeline Target Metadata Injected Surviving Fields After Export Verdict
MR-JPG-001
JPEG (1.3 KB)
Engine + Browser E2E Canvas raster re-encode to clean JPEG via Metadata Cleaner UI Make, Model, Software, Artist, Copyright, ImageDescription, GPS None (All target metadata removed) PASS
MR-PNG-002
PNG (1.1 KB)
Engine Regression Canvas raster re-encode to clean PNG via Metadata Cleaner UI ImageDescription, Artist, Software None (All target metadata removed) PASS
MR-WEBP-003
WEBP (1.0 KB)
Engine Regression Canvas raster re-encode to clean WebP via Metadata Cleaner UI Make, Model, Software, GPS None (All target metadata removed) PASS
MR-PDF-004
PDF (1.1 KB)
Engine + Browser E2E PDF Toolkit clearSupportedMetadata Info dictionary strip Title, Author, Subject, Keywords, Creator, Producer None (All target metadata removed) PASS
MR-MP4-005
MP4 (2.0 KB)
Engine Regression ISO-BMFF processIsoLevel box filtering (Engine regression only) udta None (All target metadata removed) PASS
MR-MOV-006
MOV (2.0 KB)
Engine Regression ISO-BMFF processIsoLevel box filtering (Engine regression only) udta None (All target metadata removed) PASS
MR-PDF-007
PDF (1.1 KB)
Engine Regression PDF Toolkit clearSupportedMetadata Info dictionary strip Title, Author, VisibleText Visible body text on page 1 PARTIAL
MR-JPG-008
JPEG (2.9 KB)
Engine Regression Canvas raster re-encode to clean JPEG via Metadata Cleaner UI DateTimeOriginal, Software, BurnedInPixelStamp Burned-in visual timestamp in pixel raster PARTIAL

Methodology & Architecture Findings

1. Image Sanitization (Canvas Pixel Re-encoding)

For JPEG, PNG, and WebP images, CreatorPrivacyKit decodes the compressed bitstream into raw RGBA pixel data on an off-screen HTML5 Canvas, then re-encodes a fresh container via the homepage Metadata Cleaner UI. Live browser product E2E on Chromium verifies the real interactive upload, cleaning, and download export path for JPEG (/), while PNG and WebP are verified in deterministic engine regression.

Result: PASS (6 of 6 declared full-pass fixtures passed within tested supported scope). Because the container is freshly minted from pure pixel data, all non-image chunks—including EXIF, GPS latitude/longitude, camera model, software name, IPTC editorial records, XMP packets, and C2PA JUMBF provenance manifests—are completely omitted.

2. PDF Document Sanitization (Dictionary Clearing)

PDFs cannot simply be rasterized without destroying vector crispness, text searchability, and increasing file size by orders of magnitude. The Local PDF Toolkit parses the low-level PDF catalog and clears the Document Information Dictionary (/Info) on the /tools/pdf/?mode=metadata product route, verified via live Chromium browser E2E.

Result: PASS (All standard Info dictionary fields cleared on MR-PDF-004). Title, Author, Subject, Keywords, Creator, and Producer are cleared to blank values. Re-inspecting the exported PDF confirms complete removal of standard metadata without disturbing document typography or page layout.

3. Video Containers (Engine-Only Regression — ISO-BMFF Filtering)

MP4 and QuickTime MOV containers store both presentation metadata (duration, resolution, sample tables) and user metadata (GPS coordinates, creation software, track names).

Result: PASS on Engine Regression (MR-MP4-005, MR-MOV-006). The engine-level box filter strips udta (user data), meta, and free boxes and adjusts chunk offsets, removing user-identifying tags while preserving media playback tracks (moov, mdat). Cleaned outputs are verified decodable and playable via ffprobe. Note: This container filter is maintained as an engine-level regression fixture and is not marketed as a dedicated video metadata cleaning UI on money pages.

4. Documented Limitation Cases (PARTIAL Verdicts)

Transparent reporting requires verifying scenarios where metadata removal cannot and should not replace content modification:

  • MR-PDF-007 (PARTIAL): Standard Document Information dictionary fields were completely cleared, but visible body text on page 1 remains unredacted. Metadata removal is NOT visual redaction.
  • MR-JPG-008 (PARTIAL): EXIF tags were stripped, but a burned-in visual date stamp rendered directly into the pixel raster remains visible. Metadata stripping does NOT modify pixel raster content.

Reproduce this benchmark locally

Every number published on this page can be re-executed directly from the source repository. No private keys or cloud accounts are required.

  1. Clone the repository: git clone https://github.com/ggggghhhhyyyy/creator-privacy-kit
  2. Install dependencies: npm install
  3. Run the official engine benchmark:
    node scripts/benchmark-metadata-removal.mjs
  4. Run the browser E2E verification test:
    npm run benchmark:ocr -- --e2e

Runtime environment: Node.js v20+ with native ES modules. Fixtures and test suite live under tests/fixtures/metadata-removal/ and tests/metadata-removal-benchmark.test.mjs. Ground truth strings and fixture hashes are defined in tests/fixtures/ocr-multilingual/manifest.json.

Public synthetic fixtures

These files were generated for CreatorPrivacyKit. They contain no real-world personal data. Expected values are the fields the current viewers returned from the bytes in this directory. A remover cell says Not tested when that cleaner was not run. A clear result from a re-encode or engine check is not a product verdict.

Download manifest.json

Fixture Format Purpose SHA-256 Expected fields Viewer Remover Known limitation
image-exif-basic.jpg image JPEG EXIF camera, date, software, and serial parsing aeefe834404a1162711271a288e77bd88f2f902d93fa9159ee37527f084f7f65 make=CPK Camera; model=Synthetic Body; software=CreatorPrivacyKit Fixture; dateTime=2026:01:15 12:00:00; lensModel=Synthetic 35mm; dateTimeOriginal=2026:01:15 12:00:00; bodySerial=SN-FIXTURE-001 Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-gps.jpg image JPEG GPS latitude and longitude parsing b4d4098b7162babaad038fc4f13ca0e3aa7f1fcc345e52236f02f6ac5bfbd8a1 make=CPK Camera; gpsLatitude=37.774900; gpsLongitude=-122.419400 Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-camera.jpg image JPEG camera maker, model, and lens parsing aeefe834404a1162711271a288e77bd88f2f902d93fa9159ee37527f084f7f65 make=CPK Camera; model=Synthetic Body; software=CreatorPrivacyKit Fixture; dateTime=2026:01:15 12:00:00; lensModel=Synthetic 35mm; dateTimeOriginal=2026:01:15 12:00:00; bodySerial=SN-FIXTURE-001 Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-xmp.jpg image JPEG XMP creator and tool parsing aeec7fdf1e77f9cfea29f542e5a9654c5dc1ba49bf027e464bd3dfc05a772f5a author=CPK XMP Author; creatorTool=CreatorPrivacyKit XMP Fixture; xmpModel=XMP Synthetic Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-iptc.jpg image JPEG IPTC byline, city, and copyright parsing 18b3d8ddb05a06c07c0edbfffce7fb898b76da84feb1e297c878fc1584919ca7 iptcByline=CPK IPTC Author; iptcCity=Fixture City; iptcCopyright=CPK Fixture Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-no-metadata.jpg image JPEG with no EXIF, XMP, or IPTC 57b06e278719cde09d761d63f62c6d5f5b005db34347661b3750d90046c2841b (none) no_metadata Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-png-exif.png image PNG eXIf chunk parsing 2dc3bca1d53f94edb588c756bd097fd74d4b9afdd500d4ef79838231026da8b9 make=CPK Camera; model=Synthetic Body; software=CreatorPrivacyKit Fixture; dateTime=2026:01:15 12:00:00; lensModel=Synthetic 35mm; dateTimeOriginal=2026:01:15 12:00:00; bodySerial=SN-FIXTURE-001 Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
image-gps.webp image WebP EXIF GPS chunk parsing 6231b887bbafe0aba2facfc14fce0d140e5608b858d29a50f80a8e56cf3139bb make=CPK Camera; gpsLatitude=37.774900; gpsLongitude=-122.419400 Yes Cleared in this check. Not a product result. pixel re-encode check (sharp). This is the same idea as the browser canvas cleaner, not a browser product E2E run.
video-basic.mp4 video MP4 container, track size, and codec parsing 588553126cfb8121e831d681f33622fa1086d722b19282f8a83d4a4b1cdb9fd0 majorBrand=isom; compatibleBrands=isom, iso2, avc1, mp41; duration=0.400 s; resolution=64×48; codec:avc1=avc1; codec:mp4a=mp4a; encoder=Lavf61.1.100; containerName=MP4; mediaDuration=0.400 s; displaySize=64×48; videoCodecName=avc; frameRate=10.000 fps; audioCodecName=aac Yes Cleared in this check. Not a product result. Engine ISO box filter (udta/meta). Not the video compressor UI, and not claimed as a full metadata wipe.
video-creation-time.mp4 video MP4 creation time parsing 983197851bb65ed3cfd31dea1f6d2713f4e07fd7fdb47fa399df9e696b09f86d majorBrand=isom; compatibleBrands=isom, iso2, avc1, mp41; creationTime=2026-01-15T12:00:00Z; modificationTime=2026-01-15T12:00:00Z; duration=0.400 s; resolution=64×48; codec:avc1=avc1; encoder=Lavf61.1.100; containerName=MP4; mediaDuration=0.400 s; displaySize=64×48; videoCodecName=avc; frameRate=10.000 fps Yes Cleared in this check. Not a product result. Engine ISO box filter (udta/meta). Not the video compressor UI, and not claimed as a full metadata wipe.
video-encoder-tags.mp4 video MP4 encoder, title, and location tag parsing c4b68fbc4fb0b1625115afe1a7fea1b61c04fbe88598d696226da845da670a57 majorBrand=isom; compatibleBrands=isom, iso2, avc1, mp41; duration=0.300 s; resolution=80×48; codec:avc1=avc1; title=CPK Fixture Clip; encoder=Lavf61.1.100; gpsLatitude=37.774887; gpsLongitude=-122.419388; containerName=MP4; mediaDuration=0.300 s; displaySize=80×48; videoCodecName=avc; frameRate=10.000 fps Yes Cleared in this check. Not a product result. Engine ISO box filter (udta/meta). Not the video compressor UI, and not claimed as a full metadata wipe.
video-basic.mov video MOV container parsing e15f4d012f940498e3ad9f08d02d8d5ae24a1aced5a42ae87d00a37d3baa56e0 majorBrand=qt; compatibleBrands=qt; duration=0.300 s; resolution=64×48; codec:avc1=avc1; software=Lavf61.1.100; containerName=QuickTime File Format; mediaDuration=0.300 s; displaySize=64×48; videoCodecName=avc; frameRate=10.000 fps Yes Cleared in this check. Not a product result. Engine ISO box filter (udta/meta). Not the video compressor UI, and not claimed as a full metadata wipe.
pdf-basic.pdf pdf PDF Info dictionary title, author, and creator acde8a206066bef09a1bfbd4809987bf14485a66686a3a1ba921c4024999af91 pdfVersion=1.7; pageCount=1; title=CPK Basic Fixture; author=CPK Basic Author; creator=CreatorPrivacyKit Fixture; producer=pdf-lib; creationDate=2026-01-15T12:00:00Z; modificationDate=2026-09-24T07:18:26Z; encrypted=no Yes Cleared in this check. Not a product result. PDF Toolkit clearSupportedMetadata Info dictionary. XMP packets are not part of this cleaner.
pdf-author.pdf pdf PDF author, subject, keywords, and dates 4e82022f8e18a0157e30c5e650350d1a51a9fe182c3ffa22f221419b30443eba pdfVersion=1.7; pageCount=1; title=Author Fixture; author=Ada Fixture; subject=Synthetic subject; keywords=synthetic metadata; creator=CreatorPrivacyKit Fixture; producer=pdf-lib; creationDate=2026-02-02T08:30:00Z; modificationDate=2026-02-03T09:45:00Z; encrypted=no Yes Cleared in this check. Not a product result. PDF Toolkit clearSupportedMetadata Info dictionary. XMP packets are not part of this cleaner.
pdf-xmp.pdf pdf PDF XMP packet presence and dc:creator daee642ba00aea3a1a7d9446d1c5ba0841f55bbcfdbdaec46f108d4a1f38b2f1 pdfVersion=1.7; pageCount=1; title=XMP Fixture; author=Info Author; creator=pdf-lib (https://github.com/Hopding/pdf-lib); producer=pdf-lib (https://github.com/Hopding/pdf-lib); creationDate=2026-09-24T07:18:26Z; modificationDate=2026-09-24T07:18:26Z; xmpAuthor=CPK XMP Author; xmpPresent=present; encrypted=no Yes Cleared in this check. Not a product result. PDF Toolkit clearSupportedMetadata Info dictionary. XMP packets are not part of this cleaner.
pdf-clean.pdf pdf PDF with no Info metadata 8027561d8991ccb107dc71266856f9d42d5bfcbfc57f7bebcfca9c30f6b1d3e2 pdfVersion=1.7; pageCount=1; encrypted=no no_metadata Cleared in this check. Not a product result. PDF Toolkit clearSupportedMetadata Info dictionary. XMP packets are not part of this cleaner.
pdf-encrypted.pdf pdf Encrypted PDF is reported as encrypted, not as empty metadata 132f8bd12ec04b65979aaaefc0dbb062cb4e02c6535469f3a6415baf65145715 pdfVersion=1.4 encrypted Not tested Encrypted PDFs are rejected by the local PDF editor.

Cite this benchmark

Empirical research published by CreatorPrivacyKit Labs is freely citeable with attribution under CC BY 4.0.

APA / Text Format
CreatorPrivacyKit Labs. (2026). Metadata Removal Product & Engine Benchmark (Version 1.0) [Data set]. CreatorPrivacyKit. https://creatorprivacykit.com/labs/metadata-removal-benchmark/
View BibTeX entry
@misc{creatorprivacykit_2026_ocr_benchmark,
  title = {Metadata Removal Product & Engine Benchmark},
  author = {{CreatorPrivacyKit Labs}},
  year = {2026},
  version = {1.0},
  howpublished = {\url{https://creatorprivacykit.com/labs/metadata-removal-benchmark/}},
  note = {Tested 2026-09-23. In-browser Tesseract.js 5.1.1 multilingual evaluation}
}