OpenAI Sora attaches a C2PA Content Credentials manifest to every video frame and still image it produces. The manifest contains the claim_generator string, signing certificate, and assertions linking the output to your OpenAI account. Once you share a Sora frame on social or in a client deck, that manifest goes with it — anyone with a free C2PA viewer can read it. GhostMeta detects the Sora signature in the JPEG APP11 segment, shows you what's there, then strips it via canvas re-encode. Inside a Sora JPEG, the manifest lives in one or more APP11 segments that reassemble into a single JUMBF superbox: a c2pa claim box, a hard-binding hash assertion bound to the pixel data, and a signature box holding a certificate-chain (COSE) signature. Because the binding is a hash, even a light crop or filter applied later leaves a broken-but-still-present manifest that a viewer flags as tampered rather than absent — which can look worse than an untouched credential. Stock libraries and ad networks that scan uploads on ingest increasingly read this box and either label the asset, push it to manual review, or reject it outright, so a single un-stripped Sora frame can stall an entire batch submission.
This page covers still images, not video: GhostMeta handles no MP4, MOV or WebM. On a JPEG or PNG from the Sora ecosystem, the C2PA manifest and the EXIF, IPTC and XMP layers are removed by re-encoding in the browser. The fingerprint held by the issuer is not affected.
Sora produces video first. GhostMeta does not process video: no MP4, no MOV, no WebM. What this page covers is still images from that ecosystem — an image export, a thumbnail capture, a frame you extracted yourself and saved as JPEG or PNG.
If your file is a video, nothing done here applies to it. Saying so upfront saves you time, and a tool implying otherwise would be doing you a disservice.
OpenAI attaches C2PA Content Credentials to its image outputs, as a signed JUMBF block inserted into the file. That block is metadata: a canvas re-encode does not carry it over, and the resulting image no longer presents a manifest to a provenance verifier.
This removal touches neither fingerprints kept server-side by the issuer nor any pixel-level marking. Vendor practices shift from one release to the next: the only defensible guarantee concerns what the file you drop actually contains, and you can check that before cleaning with the metadata viewer.
If you start from a video, you first need a still: a screenshot, or a frame extraction with a player or a video utility. The resulting file is a JPEG or a PNG, so it can be processed here.
One caveat: an extracted frame inherits the render, including any visible watermark that was there. Cleaning removes what the new file carries as metadata, not what was printed into the image.
| File type | Handled | Note |
|---|---|---|
| JPEG, PNG | Yes | Metadata and C2PA manifest removed |
| WebP | Yes | Browser re-encode |
| MP4, MOV, WebM | No | Video is out of scope |
| Server-side fingerprint | No | Lives outside the file |
Sora's C2PA manifest carries a claim_generator string, the signing certificate chain, and timestamped assertions. It does not embed your raw OpenAI email by default, but the chain ties the output to OpenAI as the producer.
Yes. The C2PA manifest sits in metadata containers — its removal does not affect the H.264/H.265 stream. For video frames exported as stills, GhostMeta handles the JPEG normally.
No — that is the point. C2PA is a provenance chain. Once stripped, no third-party tool can prove the image came from Sora. Only strip when you control the publishing context.
It sits in the APP11 marker segments, not APP1 (which holds EXIF/XMP). C2PA splits a manifest larger than 64KB across several APP11 segments that a reader concatenates into one JUMBF box, identified by the 'JP' marker and a box-instance number. GhostMeta walks the JPEG segment list, recognises every APP11 fragment as part of the Sora manifest, and drops them all on canvas re-encode so no partial box survives.
No. A basic crop only changes the pixels; the APP11 manifest is copied through by most editors untouched. Worse, the hard-binding hash no longer matches the new pixels, so a C2PA viewer reports the asset as modified rather than clean. To actually clear it you need to remove the JUMBF box, which is what GhostMeta does by re-encoding from a bare canvas with no metadata carried over.
GhostMeta removes everything stored in the file: the APP11/JUMBF manifest, plus any EXIF, XMP or IPTC. What it cannot remove is a soft binding — a fingerprint Sora may compute from the pixels and register server-side — because that is not data inside your file and would survive re-encoding. For metadata-based provenance, though, a re-encoded frame carries no readable C2PA at all.
Partner : M.E Expert Serrurier