Firefly video watermark detector
What the Adobe Firefly video watermark detector does
Firefly's signal on video is Content Credentials: a signed C2PA manifest carried inside the video container, declaring which tools contributed to the file and whether a model generated the content. This app reads that record and reports what it says.
Drop a video into the upload control and it runs through our media workflow, which parses the container, locates any manifest, checks it and reports the result. The file is genuinely uploaded, because the record lives inside the file and there is no way to read it without reading the file.
Workflow
How to check a Firefly video watermark in three steps
One pass through the upload control on this page.
- Step 1
- Use the original file. A screen recording is a brand new video and carries none of the original container's metadata, so it will always come back empty.
- Step 2
- Drop it into the box above and let the workflow parse the container.
- Step 3
- Read the verdict against the three outcomes below. Found and not found aren't the only two answers.
Reading the result
The three results a Content Credentials check returns
Most detector pages report a binary. There are three states, and they carry very different weight.
- Present and valid
- A manifest exists, its signature verifies, and the file still matches what was signed. Strong evidence, because signatures are hard to forge and quick to check.
- Present but invalid
- A record exists but doesn't verify, or the file has changed since signing. That points at editing after the credential was written, which is different from having none.
- Absent
- No manifest at all. The weakest result, and on video the weakest it ever gets, for the reasons in the next section.
Why results come back empty
What strips Content Credentials from a video
This is the thing to understand before reading any result, because a genuine Firefly clip very often reports nothing. None of these is an attempt to remove a watermark. They're ordinary operations that happen to drop metadata, and video gets hit harder than stills.
- It was never embedded
- The credential only exists if the generating tool wrote one. Not every export path does.
- Screen recording
- A recording captures playback. Container boxes the player never rendered aren't part of what got captured.
- Platform transcoding
- Practically every video platform re-encodes on upload and generates its own renditions. The new container is written without the old record.
- Share sheets and re-wraps
- Messaging apps and export tools routinely rewrap or recompress clips, and the manifest goes with the original container.
Mechanics
Where the C2PA record sits inside an MP4
An MP4 is a stack of boxes: some hold video, some audio, some timing. One box type exists to carry data the format itself doesn't define, the uuid box, tagged with a 16-byte identifier saying what's inside. C2PA claims one of those identifiers, D8FEC3D6-1B0B-4872-BD80-E04F827E80D9, and the manifest goes in there.
That's why the record is separable from the picture: it sits beside the encoded frames rather than inside them. It's also the precise reason a screen recording carries nothing, and why re-encoding a clip reliably loses the credential without anyone intending to.
Two different checks
Finding a marker is not verifying it
Some detectors scan a file for the C2PA identifier and report a hit. That answers one narrow question: does a C2PA structure exist in this container. It doesn't answer whether the signature is good, whether the certificate is trusted, or whether the video still matches what was signed.
Those checks are what turn a hit into evidence, and they're also what makes present-but-invalid a useful answer in its own right. A record that was written and then broken by an edit tells you something specific. A page that reports both cases as found is giving you less than it looks like.
Stated scope
What this detector does not examine
This app reads the provenance record. It doesn't inspect frames, doesn't score how AI-generated a clip looks, and doesn't guess at a generator from resolution, duration or bitrate patterns the way screening tools do. Those are separate techniques with separate failure modes.
It also won't name which model made a video when there are no credentials to name it. The screening tools that attempt that say so in their own limitations sections, and nothing here does better than they do.
Who it's for
Who checks video for a Firefly watermark and when
Editorial and broadcast teams running provenance review on supplied footage, where a declared generation record changes how a clip gets labelled or whether it runs at all. Agencies auditing delivered video against a brief that restricted generated material.
Anyone reusing a clip who wants to know what history is still attached to the file. And anyone who has run a removal and wants to confirm the manifest is genuinely gone before publishing.