Catch synthetic media at upload, not after it spreads.
SyncLens runs on a clip when it lands and returns a per-segment read your review queue can act on, before the content reaches your users.
The scenario
A marketplace lets sellers post video. A profile clip shows a real-looking person vouching for a listing. It is not a real recording, and by the time a moderator watches it, plenty of buyers already have.
Small platforms do not have a review queue deep enough to watch every upload by hand. The ones that try fall behind within a day.
The problem, at moderation scale
A binary flag tells a moderator to look, but not where. On a five-minute clip that is five minutes of attention per item.
You need the clip triaged and the suspect stretch marked, so a person spends thirty seconds confirming rather than five minutes searching.
Which result matters most here
Any of the three synthetic results is worth a hold. A fully generated clip, a swapped face over a real voice, and a real face with a cloned voice all describe content pretending to be something it is not.
The per-segment view is what makes this usable. It points the reviewer at the seconds that triggered the read.
- Read first
- Fake video, fake audio
- Also relevant
- Fake video, real audio, Real video, fake audio
Reading the report
The report is built to hand to a reviewer who has seconds, not minutes.
1. Result and confidence. The headline read with its confidence band. A low-confidence result routes to a human instead of an automated action.
2. The timeline. The exact segments that drew the model, so a reviewer confirms a marked stretch instead of scrubbing the whole clip.
3. Tagged frames. The frames behind a visual flag, so a policy call has something concrete attached to it.
4. The API response. The same result as JSON, so a borderline score can hold a post automatically and a clear one can pass through.
Runs at upload time
Call the API when a file finishes uploading. Hold the content on a synthetic or low-confidence result, release it on a clean one, and route the rest to your existing queue.
Webhooks on the Team plan push the result to you instead of making you poll.
Read the API reference