Douyin / WeChat Channels Voice-Over Script
Produces a ready-to-shoot, ready-to-edit vertical short video script: Hook → Setup → Main Content → Highlight → Call-to-Action.
Workflow
- [ ] 1. Fill in missing information (ask at most 2 questions)
- [ ] 2. Define "one-sentence topic" + duration + single CTA
- [ ] 3. Write 3 hooks, choose 1
- [ ] 4. Write full voice-over script, calibrate duration by word count
- [ ] 5. Split storyboard
- [ ] 6. Produce subtitle draft
- [ ] 7. Self-check (script + checklist), fix until pass
- [ ] 8. Deliver in template
1. Fill in Missing Information
Only ask when something missing would cause errors; maximum 2 questions. Priority: Can the creator be on camera? / What reusable footage is available? (determines storyboard executability), The sole action you want the audience to take (follow/comment/visit/add to cart).
Use defaults when not specified: Platform = Douyin; Duration = 45 seconds; Real person talking head + phone recording + a few product/environment b-rolls; CTA = Comment.
2. Topic & Duration
- One video, one message; information points ≤ 3.
- Voice-over word count = Duration (seconds) × 4–5 words/second (empirical rule, normal speaking pace). 45 seconds ≈ 180–225 words, 60 seconds ≈ 240–300 words.
- Duration allocation: Hook 0–3s | Setup 10–15% | Main content 60–70% (one information point or visual change every 5–8s) | Highlight 5–10% | CTA last 3–5s.
3. Hook
Write 3 hooks, mark recommended. Each hook must have both visual action and one sentence:
- First sentence ≤ 15 characters, action or change within the first second. Do not start with "Hello everyone, I am..."
- The hook's promise must be fulfilled in the video, otherwise viewers will feel cheated and won't engage.
Default uses "Result first" (show result footage + one concluding sentence). 8 hook types and various video structures are detailed in references/hooks-and-structures.md. Read the relevant section when writing promotion/knowledge/store scripts.
4. Full Voice-Over Script
- Use "you" not "the user"; short sentences; filler words allowed; numbers in Arabic digits.
- Each information point = Opinion + Example/Demonstration + One sharable quote.
- Annotate each paragraph with expected duration in seconds and word count; total word count must fall within the range calculated in Step 2.
5. Storyboard
Use the table header from assets/storyboard-template.md. Rules: Change scene or shot type every 2–4 seconds; no single shot longer than 15 seconds. Every line's "Visual Description" must be clear enough for the camera operator to know what to film (subject + action + shot type).
6. Subtitle Draft
- Each line ≤ 14 characters, max 2 lines per screen, break by meaning.
- Max 1 keyword typographic overlay per screen.
- Subtitles placed in lower-mid screen, avoiding right interaction column and bottom text area.
- Also provide an SRT format for easy import into CapCut.
7. Self-Check (mandatory)
python3 scripts/check_copy.py --platform douyin --body-file <full voice-over script> --seconds <target duration>
Checks speaking pace (3.5–5 words/second), absolute/medical wording, contact info. Process each WARN individually; when Python unavailable, verify manually using the "Pre-delivery Checklist".
8. Delivery Template
## Video Info
Platform: … | Duration: …s | Voice-over Word Count: … | Speaking Pace: … words/s | Target Action: …
## Hook Options
1. [Visual] … [Voice-over] … (Recommended: <reason>)
2. …
3. …
## Full Voice-Over Script
[0–3s | Hook | … words] …
[3–8s | Setup | … words] …
…
## Storyboard
<Use assets/storyboard-template.md>
## Subtitle Draft (SRT)
1
00:00:00,000 --> 00:00:02,500
…
## Publishing Info
Title: … | Hashtags: #… #… #… (3–5) | Cover Text: …
## Filming Tips (≤3 items)
- …
- Needs user supplement: <[To be supplemented] items; write "None" if none>
Gotchas / Common Pitfalls
- Completion rate is only one signal: Douyin's official "Safety and Trust Center" states that its recommendation algorithm estimates multiple user behaviors (watching through, liking, commenting, sharing, following, etc.) and weighs them by value; the platform's core goal is "user long-term value." Therefore, don't cut videos to stripped-down low-information content just for completion rate, and don't use irrelevant suspense to trick viewers. Retain them in the first 3 seconds, then keep them with information density and promise fulfillment. Rumored thresholds like "3-second bounce rate above X% means stop promotion" have no official basis—do not include them in deliverables.
- AI content must be declared proactively: The "AI-Generated Synthetic Content Identification Measures" take effect on 2025-09-01; Douyin requires creators to actively add an AI label when posting AI-generated content. Suspected content may be tagged by the platform. When the script uses AI voice-over, digital humans, or AI visuals, remind the user in "Filming Tips" to check the declaration box.
- Promotions/Store visits with purchase links must be marked as "Ad": Article 9 of the "Internet Advertising Management Measures"—if promoting with a purchase link (including experience sharing or consumer review format), it must be conspicuously marked as "Ad."
- Absolute wording and efficacy claims also apply to voice-over and subtitles (most, first, lowest price on the internet; food/cosmetics cannot claim therapeutic or weight-loss effects). See references/ad-compliance-cn.md; read it first for promotion, store, or efficacy scripts.
- Prices/discounts must specify conditions and validity period (Article 8 of Advertising Law): "Get free ironing at the store by mentioning our code" must include expiration date and per-person limit.
- Background music: Use platform library or licensed music; portraits of others or footage of third-party stores appearing in the video require consent.
- Speaking pace conversion is empirical (4–5 words/second), not a platform rule; final pace depends on the creator's actual trial reading.
Pre-delivery Checklist
- Voice-over word count falls within "duration × 4–5" range
- First 3 seconds have both visual action and hook sentence; promise fulfilled later
- Storyboard lines are executable; shot change every 2–4 seconds
- Only one main CTA
- Subtitles each line ≤ 14 characters; SRT attached
- No absolute wording, no efficacy claims; discounts specify conditions and validity period
- If promotion includes a purchase link, add a reminder to mark "Ad"; AI-generated material has a reminder to declare
- Missing materials marked with [To be supplemented]
Reference Files (read on demand)
- references/hooks-and-structures.md: Read when selecting hooks, writing promotion/knowledge/store main structures, or writing CTA.
- references/example-laundry-45s.md: Read when writing a store promotion script for the first time, or to align with the complete delivery format.
- references/explainer-shortfilm.md: Read when writing knowledge/explainer shorts that need style keywords.
- assets/storyboard-template.md: Use for creating the storyboard.
- references/ad-compliance-cn.md: Read when involving promotions, pricing, efficacy, or data.
De-AI Self-Check (go through before delivery)
- Remove clichés like "first/second/finally/notably/empower/create" and replace with concrete facts, numbers, or scenarios.
- Vary sentence length; don't make every paragraph three parallel points or every sentence symmetrical.
- Keep at least one detail only a real human would say (personal experience, specific price, a mistake they've made).
- Delete or mark [To be verified] any unsubstantiated data or exaggerated adjectives.