YouTube Data API containsSyntheticMedia: set it on videos.insert

YouTube Data API v3 VideoStatus has containsSyntheticMedia, a boolean for altered or synthetic media. Where to set it and how to trim a Sume clip first.

4 min readSume
All posts

The YouTube Data API v3 has a boolean containsSyntheticMedia on the VideoStatus resource. The discovery document describes it as indicating whether the video contains altered or synthetic media. When you upload an AI-generated clip through videos.insert, set it in the status part of the request body so the declaration travels with the upload instead of being added later in Studio.

Where is the field?

It lives in VideoStatus, next to the other status properties such as privacy. Writing status in the request means you must list status among the parts of the call. The document states no behavior beyond the description, so what YouTube shows viewers is a matter for its help pages.

videos.insert and VideoStatus (read 2026-10-02)
ItemDetail
Fieldstatus.containsSyntheticMedia (boolean)
DescriptionAltered or synthetic media indicator
Upload size cap274877906944 bytes (256 GiB)
Discovery revision20261001

What should I trim before upload?

The upload cap is enormous, so size is not the constraint for AI clips. Length and format are. Cut a generated video to the length you want with POST /v1/video-trim, using start plus end or duration, and download the resulting MP4. For vertical output, add output with width 1080 and height 1920 on the exact path.

import json, os, urllib.request

body = {
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "start": 0,
    "duration": 45,
    "output": {
        "width": 1080,
        "height": 1920,
        "fps": 30
    }
}
req = urllib.request.Request(
    "https://api.sume.com/v1/video-trim",
    data=json.dumps(body).encode(),
    headers={
        "Authorization": "Bearer " + os.environ["SUME_API_KEY"],
        "Content-Type": "application/json",
        "Idempotency-Key": "yt-short-001",
    },
    method="POST",
)
print(urllib.request.urlopen(req).read().decode())

Is declaring synthetic media optional?

The field is optional in the schema. Whether it is required for your content is a policy question, and the policy is YouTube's. Treat the flag as an honest declaration, and set it whenever the video is AI-made or realistically altered.

What should I check?

Read the discovery document at release time and YouTube's policy page. The video trim guide covers Sume's cut.

Sources

Related posts

More in Integrations

All Integrations posts

Written by Sume