Domain: video

Content rules

Rules for Step 2 (tool_synthesia_prepare_request) — how to distribute content across slides, write voiceover scripts, and format every variable type correctly.


slide_0_script_intro

Every video begins with slide_0_script_intro — a spoken intro of 1–3 seconds. Generated from the video title and/or the first key idea. No generic "Welcome!" unless stated in the source text.

Choose one pattern from the library and fill it with topic keywords:

#Pattern
1Direct topic: "[Topic], clearly." / "About [Topic]."
2Transition cue: "Next, [Topic]." / "Moving on to [Topic]."
3Benefit first: "How to [Outcome] with [Topic]."
4Problem cue: "If you face [Problem], focus on [Topic]."
5Scenario opener: "Imagine [Situation]."
6Quick definition: "[Topic] means [Simple definition]."
7Contrast: "Not [Myth], but [Truth] about [Topic]."
8Checklist cue: "Three points about [Topic]."
9Question hook: "What matters most in [Topic]?"
10Micro promise: "In a moment, you will know [Result]."
11Audience targeting: "For anyone dealing with [Context], here is [Topic]."
12Action cue: "Start with [First step] for [Topic]."
13Calm warning: "A common mistake in [Topic] is [Mistake]."
14Reframe: "[Topic] is less about [X] and more about [Y]."
15Time pressure: "When time matters, [Topic] matters."
16Conversational: "Let's discuss [Topic]." / "In this video, we will cover [Topic]." / "Today, we focus on [Topic]."

Content distribution

  • Distribute content so each slide covers one aspect — no repetition between slides.
  • Slide scripts must reflect only what is on that slide. Never mix slide content.
  • If video_length = short: combined word count across all script fields = 100–150 words. Keep text variables brief; rely on narration.

Variable type rules

VariableRule
slide_#_scriptConversational narration. \n\n to separate thoughts and control pacing. Basic punctuation only — no *, #, or markdown. Use "double quotes" for emphasis.
slide_#_script_part_1 / _part_2Same as script, but split mid-sentence to enable a zoom change. The split must not change overall meaning.
slide_0_script_intro1–3 seconds. One sentence from the intro pattern library above.
slide_#_textblockUnordered list or free text with \n line breaks. ONE emoji type per list (allowed: ➡️ 🔹 ⚠️ ▫️). Max 150 chars total.
slide_#_textblock_for_listingNumbered or plain list with \n. Each item 20–40 chars. Max 150 chars total. Can use 1. item \n 2. item or plain lines.
slide_#_text / _text_max_NSingle-line statement only. No line breaks, no lists, no titles.
slide_#_item_NShort parallel point. No manual numbering — template adds it.
slide_#_title / _*_titleMax 30 chars (or _max_N if smaller).
Q slides (no script)Key question or framing statement. Max 30 chars.

No HTML or Markdown anywhere. Exceptions, inside script variables only:

  • <break time="1s" /> — pause between ideas
  • <sub alias="Term">Term</sub> — special pronunciation of key terms

Variable completeness rules

  • Script variables must never be empty. A slide with a missing script will fail validation.
  • Text variables should not be empty — use a single space " " if truly nothing fits.
  • Variables named slide_3_* belong to slide 3. Never mix content between slide numbers.
  • Numbered list slides (codes 28) are already numbered in the template. All item slots must be filled with consistent, parallel content. Do not pad a 4-item list with 3 bullets and one example.
  • _max_N in a variable name = strict character limit. _title = strict max 30 chars.

Address forms by language

Use consistently throughout all scripts and text variables in a video:

LanguageForm
Englishyou
GermanSie
Frenchvous
Spanish
Italiantu
Dutchjij/je
Polishty

Output format (Step 2)

templateData is an array of strings — each entry is "variable_name: value". The validator converts this to a dict before the API call.

"""
{
  "test": false,
  "templateData": [
    "course_title: ...",
    "video_title: ...",
    "avatar_id: ...",
    "background_image: ...",
    "slide_0_script_intro: ...",
    "slide_1_title: ...",
    "slide_1_script: ...",
    "slide_2_item_1: ...",
    "slide_2_item_2: ..."
  ],
  "visibility": "public",
  "templateId": "...",
  "title": "1.1.2 Video Title (Template Name)"
}
"""

Field rules:

  • title = "<sections_position> <video_title> (<template_title>)"
  • test = value of test_mode input
  • visibility = always "public"
  • templateId = UUID from Step 1 output
  • All template variables including avatar_id and background_image go inside templateData

Image generation

Vertical / horizontal (stock photo)

Used for slide_#_image_vertical and slide_#_image_horizontal variables.

  • Professional stock-photo style, soft daylight, blue tones in clothing and objects
  • No text or labels in the image
  • No dramatic facial expressions
  • For screens: one specific, cinematically plausible camera angle — focus on the human interaction, not the screen content

Conceptual diagram (flat vector)

Used for the conceptual_diagram variable in I-slide templates. Always horizontal.

  • Flat vector illustration, no strokes or borders, soft pastel and blue tones
  • Must be concept-specific — never generic icons or abstract shapes
  • Brand colors: #223F52 #0A5BEA #EDEBF2 #FFFFFF #D6EAFE
  • Brand font: Aeonik, Helvetica, sans-serif
  • Neutral daylight color temperature, no sepia filter
  • Arranged for horizontal (3:2) layout with generous margins