How to make a 30 second advertisement with AI

Make a 30-second ad as one 30-second clip, or as shots cut over a voiceover to exactly 30 s. On Sume, seedance-2.5 and wan-3.0 make 30 s in one clip.

5 min readSume
All posts

To make a 30-second advertisement, write a script that fits comfortably inside 30 seconds, plan the shots that go under it, make the voiceover and the shots, then cut them together so the finished spot runs exactly 30 seconds. With AI on Sume, one generated clip can cover the whole spot on seedance-2.5 or wan-3.0, which accept up to 30 seconds, or several shots can be joined over the voiceover in a Timeline 1.0 render whose length you set to the second.

The Sume facts come from the Video generation, Timeline 1.0, and Generate avatar video docs and the Sume API reference, read on 2026-09-27; anything called current behavior is read from Sume's code. The per-model clip limits have their own post: AI video length limits by model.

What are the ways to make a 30-second ad with AI?

Pick a route by what the ad shows. Durations are whole seconds, and each model's supported_durations on GET /v1/videos/models lists what it accepts; apart from seedance-2.5 and wan-3.0, the models Sume lists stop at 15 seconds or less.

From Video generation, Timeline 1.0, and Generate avatar video, read 2026-09-27.
RouteHow it reaches 30 secondsSume call
One continuous shotduration: 30 on seedance-2.5 (4–30 s) or wan-3.0 (2–30 s)POST /v1/videos
Several shotsTwo 15-second clips, or more shorter ones, joined over one voiceover or music trackPOST /v1/videos, then POST /v1/timeline-1.0/render
A spokesperson on cameraOne avatar video from a script Sume estimates at about 30 seconds (it accepts 4–60); the avatar speaks English in current codePOST /v1/avatar-1.0/talking-video

How do I make the ad exactly 30 seconds long?

Some placements take only fixed lengths: Amazon, for example, lists 15, 30, 45, and 60 seconds for Prime Video ads in the US (Prime Video ad specs). A Timeline 1.0 render always runs exactly audio.duration_seconds, so set it to 30. The first slot starts at 0, and the slots must cover the spine to within 0.5 seconds. Every URL must be your workspace's media.sume.com file, such as an earlier Sume output.

Today a render's sound is the spine plus an optional soundtrack, not the clips' own audio. To keep a generated clip's sound, extract it with POST /v1/audio-detach and use it as the spine.

curl -X POST https://api.sume.com/v1/timeline-1.0/render \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: spot-30s-001" \
  -d '{
    "audio": {
      "url": "https://media.sume.com/artifacts/artf_demo/voiceover.wav",
      "duration_seconds": 30
    },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/shot-a.mp4", "start": 0, "duration": 15 },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/shot-b.mp4", "start": 15, "duration": 15,
        "transition": { "type": "fade", "duration": 0.5 } }
    ],
    "soundtrack": {
      "url": "https://media.sume.com/artifacts/artf_demo/music.mp3",
      "loop": true, "duck_db": 8, "fade_out_seconds": 2
    },
    "output": { "width": 1920, "height": 1080 }
  }'

How do I fit the voiceover into 30 seconds?

Voice the script first, because the voice sets the pace. POST /v1/tts-1.0/generate speaks a transcript; with timestamps.words: true, current code also returns the audio's duration_seconds and each word's start and end.

  • Too long or too short: cut or add words, or set generation_config.speed, a multiplier from 0.6 to 1.5.
  • One line needs a new take: audio.parts[] joins up to 20 audio slices gaplessly, with no new TTS, so you can re-voice one line and keep the rest.
  • Music only: audio.mode: "silence" with the track as soundtrack at gain_db: 0; a bed defaults to −16 dB. For a new track, the Music Router steers length from the prompt ("A 30-second track"), not from a duration field.

How do I make a 15-second version from the same shots?

Render again with audio.duration_seconds: 15, a 15-second voiceover, and the slots you want to keep. The shots are already Sume-hosted, so nothing is generated twice; only the new voiceover and the second render are billed. POST /v1/timeline-1.0/plan checks each document first: it is unbilled and returns the duration and billable minutes without creating a job.

What does a 30-second AI ad cost?

Each step is its own job, each plus a 5.5% agent fee by default:

  • Shots: video generation is reserved on submit at the provider's list price × 1.25; each model's pricing_skus on GET /v1/videos/models has its rate.
  • Voiceover: $0.0475 per 1,000 characters, spaces and punctuation included.
  • Music: $0.125 per audio generation, whatever its length.
  • Render: $0.10 per output minute on API pricing, so a 30-second or 15-second spot reserves one minute.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume