Choking hazard warning in a holiday toy ad: match the product label
CPSC says internet ads for toys that need a choking-hazard label must use the same warning (16 CFR 1500.20). Burn the label text as a cue and assert it matches.

If a toy or children's product needs a choking-hazard warning label, the CPSC says any advertising for it, including catalogs and internet ads, must use the same warning label. A holiday toy clip that omits the warning, or paraphrases it, is the mistake to design out. The simplest fix is to treat the label text as one string that the package and the clip both read from.
What the CPSC page says (read 2026-10-05)
The page is short and covers labeling and advertising. It does not tell you which products need the label (age grading and small-parts testing decide that) and it does not specify type size or on-screen duration for video. Do not infer those. Read the regulation text and ask your compliance contact.
This post is about not leaving the warning out of a clip, and is not legal advice.
| Topic | What the page says |
|---|---|
| Products affected | Toys and children's products containing small parts, balloons, small balls or marbles must warn consumers not to buy for children under a certain age |
| Advertising | Ads for toys subject to the choking hazard labeling requirement must use the same warning label |
| Where | Catalogs and internet advertising |
| Citations | 16 CFR 1500.19 (labeling) and 16 CFR 1500.20 (advertising) |
One string, asserted
Store the warning text in the product record that also drives the packaging file. The video build reads it, burns it as a cue and asserts equality with the label. Video captions accepts cues with text, start and end and burns them with no speech-to-text, at $0.20 per clip up to 60 seconds.
The script below builds the body. Send it to POST /v1/video-captions with an Idempotency-Key.
import json
LABEL = "WARNING: CHOKING HAZARD - Small parts. Not for children under 3 yrs." # copy from the package
cue_text = "WARNING: CHOKING HAZARD - Small parts. Not for children under 3 yrs."
assert cue_text == LABEL, "ad warning must match the product label"
body = {"video_url": "https://example.com/toy.mp4",
"cues": [{"text": cue_text, "start": 0.0, "end": 12.0}]}
print(json.dumps(body))Real footage, readable card
The warning is a different thing from the product demo. Real demo footage is the better choice for toys, as covered in the toy product video post. After the burn, pull stills at several times with video frames and read the warning in each one. The test is whether a parent watching on a phone can read it, and a still at the phone's width tells you that.
Limits
The sample label text is a placeholder, not required wording. Use the exact text from your product's compliant label. Other regulators (and platform ad rules) have their own toy-advertising requirements, and none are covered here. If the product has several age grades across variants, make one clip per variant so each carries its own label, rather than one clip with the wrong warning. Add the label text to your review checklist, next to the price and the end date, so it is checked every time a clip is re-burned.
Sources
Related posts
More in Use cases
- Christmas shipping cutoff videos: put the last order date in input
A last-order-date promo is wrong the day the date moves. Keep the cutoff in each bulk item's input, derive it from one config, and re-run only what changed.
- Coffee ad in one take, pour to sip: Seedance 2.5 prompt and price
A 20-second one-take coffee ad on Seedance 2.5: pour, steam, hand, sip. Prompt wording, why one take suits liquids, and the Sume price at 720p and 1080p.
- Country and acoustic folk music for a brand ad: a warm brief
Brief an instrumental country-folk bed for a brand ad on Sume: guitars, pace, and a warm ending. A take is $0.125; a 30-second ad renders at $0.10.
- Course syllabus to a 30 s trailer: Wan 3.0 with one beat per week
A six-week syllabus becomes a 30 s Wan 3.0 trailer on Sume: one beat per week, references from course art, and a Timeline join if you want per-week control.
Written by Sume