TikTok bans some AI content even if labeled: lint prompts first
TikTok prohibits AI that shows fake authoritative sources, crisis events, endorsements or under-18 likeness. A small Python check to run before a Sume render.

TikTok does not allow AI-generated content that shows fake authoritative sources or crisis events, falsely shows public figures being bullied, endorsing or endorsed, or uses the likeness of anyone under 18 or of an adult private figure without permission. A label does not fix any of these, so check the prompt before you pay for the render.
The list on TikTok's page
TikTok's support page says some AI content can still cause harm even when properly labeled, and lists what it does not allow. The first group is content showing fake authoritative sources or crisis events, or falsely showing public figures in certain contexts, including being bullied, making an endorsement or being endorsed. The second is the likeness of young people under the age of 18, and the likeness of adult private figures used without their permission.
The page adds that TikTok acts on content that violates its Community Guidelines regardless of whether AI was used, including its policies on impersonation, misinformation and hate speech.
| Category on TikTok's page | What to avoid in a prompt |
|---|---|
| Fake authoritative sources or crisis events | Newsroom or official-statement scenes, disasters that did not happen |
| Public figures falsely shown in certain contexts | A named public figure bullied, endorsing or endorsed |
| Likeness of people under 18 | Children and teenagers as the subject |
| Private adult likeness without permission | A real person's face from a reference image you lack consent for |
Why check before the render, not after
Sume reserves the cost of a video job from your balance when you submit it, at the provider list price times 1.25. A prompt that violates a platform rule is an avoidable spend, because the clip may be unusable for that platform. A text check costs nothing and runs in milliseconds.
A keyword check is not moderation. It cannot understand context, and it will miss a prompt that avoids the obvious words. What it does well is catch the careless case: a template that someone filled in with a headline or a name without thinking.
A small linter you can run in CI
The script below reads prompts from a file, one per line, and prints any that contain words from the four categories. It exits with status 1 if anything matched, so a pipeline can stop before it submits. Extend the word lists with the terms your team actually uses.
import re, sys
RULES = {
"authority or crisis": r"breaking news|news anchor|press conference|official statement|earthquake|explosion",
"endorsement": r"endorses|endorsement|recommends this|sponsored by",
"under 18": r"\b(child|children|kid|kids|teen|teenager|toddler|baby|schoolboy|schoolgirl)\b",
"real person": r"\b(president|senator|celebrity|ceo of)\b",
}
bad = 0
for n, line in enumerate(open(sys.argv[1]), 1):
for name, pattern in RULES.items():
if re.search(pattern, line, re.I):
print(f"line {n}: {name}: {line.strip()}")
bad += 1
sys.exit(1 if bad else 0)What to do with a flagged prompt
Do not reword around the rule. If the idea needs a child, a real person or a newsroom, it needs a different treatment: an illustrated character, a clearly fictional setting, or real footage with real consent. For reference images, only use ones you have the right to use.
Then label what remains. The TikTok switch is covered in the AI-generated content switch post, and the under-18 rule is covered in the AI child character post.
Limits of this check
TikTok's page is a summary, and its Community Guidelines are the full text. The linter only enforces the shape of that summary. Review high-stakes ads with a person.
Sources
Related posts
More in Developers
- TikTok Direct Post init: 6 requests a minute per token, queue clips
TikTok limits each user access_token to 6 init requests per minute on Direct Post. Queue finished Sume clips and release them at that pace.
- TikTok publish_id status: poll it after the Sume job webhook fires
The TikTok Direct Post page I read returns a publish_id to check status and mentions no webhook. Let Sume's webhook trigger the post, then poll TikTok.
- TikTok upload_url is valid for one hour: finish the Sume job first
TikTok says the Direct Post upload_url is valid for one hour after issuance. Wait for the Sume job to complete before you initialize so the upload fits.
- Time a 360p Omni draft vs 720p: separate queue wait from run time
Google says the 360p draft is up to 60% faster. Measure it on Sume with a Python script that splits pending time from in_progress time.
Written by Sume