Can I call my AI video human-made? Google's rule and a job record

Google's policy bars claiming AI output was made solely by a human to deceive. Keep a per-clip record from Sume's poll response to show origin.

4 min readSume
All posts

Google's generative AI prohibited use policy forbids misrepresenting the provenance of generated content by claiming it was created solely by a human, in order to deceive. Telling people your clip is AI-made, and keeping a record that shows it, keeps you inside that line.

What the policy says

Google's policy page lists several prohibited uses for generated content: impersonating an individual without explicit disclosure in order to deceive, facilitating non-consensual intimate imagery, and misleading content. Under misleading content it names the provenance rule above, plus frauds, scams and misleading claims in sensitive areas such as health, finance and government. It also allows exceptions for educational, documentary, scientific or artistic considerations.

Prohibited uses relevant to video, Google generative AI policy (read 2026-10-05)
AreaWhat is prohibitedWhat to keep
ImpersonationImpersonating a person without disclosure, to deceiveConsent and disclosure text
ProvenanceClaiming sole human creation, to deceiveJob id, model, prompt
Misleading claimsDeceptive claims in health, finance, governmentClaim substantiation
Intimate imageryNon-consensual intimate imageryDo not generate

What to store per clip

The poll response of GET /v1/videos/{id} returns the job id, model, status and usage.cost. Save those with a hash of the downloaded file and the prompt text. The script below does that for one finished job.

import os, json, hashlib, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
job = requests.get(f"https://api.sume.com/v1/videos/{os.environ['JOB_ID']}",
                   headers=H, timeout=30).json()
if job["status"] != "completed":
    raise SystemExit(f"job is {job['status']}")

video = requests.get(job["unsigned_urls"][0], headers=H, timeout=120).content
record = {
    "job_id": job["id"],
    "model": job["model"],
    "cost_usd": job.get("usage", {}).get("cost"),
    "sha256": hashlib.sha256(video).hexdigest(),
    "prompt": os.environ.get("PROMPT", ""),
    "disclosure": "AI-generated video",
}
with open(f"{job['id']}.record.json", "w") as f:
    json.dump(record, f, indent=2)
print(record)

Disclose on the surface

A record is for you and your counsel. The public line is a plain label such as "AI-generated" in the caption or the on-screen credit. Google's own tools add SynthID to what they produce, but a label from you does not depend on a detector.

Fields worth keeping

The record takes about a kilobyte per clip, which is small compared to a single render. Store it next to the file, and your answer to a platform review is one lookup.

  • Job id and model id.
  • The full prompt and any reference file names.
  • The usage.cost figure, so finance can match the record to the bill.
  • The SHA-256 of the delivered file and the time you downloaded it.
  • The disclosure text that went out with the clip.

Limits of this advice

This is a practical checklist, not legal advice. The policy page was last updated on December 17, 2024 according to the text read, and your platform's rules may be stricter than Google's. Read the policy and each platform's AI disclosure rule before you publish, and use the Videos guide for the fields of the poll response.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume