Toy product video: use real demo footage, not AI play, per CPSC rules

Selling toys online: why to film the real toy, how the CPSC choking-hazard warning reaches ads, and how to burn that line onto clips with Sume cues.

4 min readSume
All posts

A toy listing video makes a promise about a physical object. If a generator invents the play, the clip shows the toy doing something your product never did, in the hands of a child you never filmed. For toys, film the real product and use software for the assembly and the required text. This is not legal advice; check your own compliance file.

What the CPSC pages actually say

The CPSC Toy Safety business guidance says products designed or intended primarily for children 12 and under need third-party testing at a CPSC-accepted lab and a Children's Product Certificate; for toys the CPC cites 16 C.F.R. part 1250 plus the applicable ASTM F963 sections.

The page on the small parts ban and choking hazard labeling states: "Any advertising for children's toys subject to the choking hazard warning labeling requirement must use the same warning label per 16 C.F.R. § 1500.20." So the warning belongs in the ad, not only on the box. Neither page mentions AI video; the point here is that a certified toy is tested as built, and the footage should show that toy.

A split that keeps the claims honest

Shoot the demo clips on a phone with the real toy: unboxing, the one trick it does, a size shot next to a hand. Then let Sume do the parts that carry no product claim.

Who makes each piece of a toy listing video (Sume prices from docs, read 2026-10-03)
PieceSourceSume surfaceCost
Demo clipsYour camera, real toyNoneYour time
Assembly of 3 to 6 clipsReal clips, importedTimeline 1.0$0.10 per output minute
Warning line on screenYour compliance textVideo captions with cues$0.20 per clip up to 60 s
Opening packshot motionYour product photoImage-to-videoPer second, by model

Burn the warning as authored cues

Caption cues skip speech-to-text and burn exactly the text you send, each with text, start and end in seconds. A cue holds up to 400 characters, a job takes up to 200 cues, and the source can be up to 60 seconds. Read the wording from your own file rather than retyping it; the script below refuses to run without it.

import os
import requests

warning = os.environ["TOY_WARNING_TEXT"]
if not warning.strip():
    raise SystemExit("TOY_WARNING_TEXT is empty")
resp = requests.post(
    "https://api.sume.com/v1/video-captions",
    headers={
        "Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
        "Idempotency-Key": "toy-listing-warning-001",
    },
    json={
        "video_url": "https://media.sume.com/artifacts/example/toy.mp4",
        "cues": [{"text": warning, "start": 0, "end": 20}],
    },
    timeout=60,
)
print(resp.status_code)
print(resp.json())

Cost of one 30-second listing video

Timeline assembly of a 30-second cut reserves one output minute, $0.10 at the public rate in the Timeline docs. The warning burn is $0.20 under the captions docs. Together that is $0.30 per finished clip, with no generation spend. Confirm live rates in GET /v1/catalog, as both pages advise.

Before you publish

The result is a listing video whose footage matches the certified product and whose required line travels with it into every placement.

  • Confirm the age grade and the warning wording with your lab report and CPC, not with a blog post.
  • Check the warning is readable at phone size for the full clip, or at least while the toy is shown.
  • If you use generated motion anywhere, keep it to the packshot, never to children playing.
  • Keep the cue text in one file so every clip carries the same line.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume