Snow-day closure video: a silent clip with caption cues

Post a weather-closure notice as video: render two stills silent in Timeline 1.0, then burn the hours with caption cues. The silent clip needs cues, not speech.

5 min readSume
All posts

To post a snow-day closure as a video, render two still cards (the closure, the reopening time) as a silent Timeline 1.0 clip, then send that clip to POST /v1/video-captions with cues. A silent clip has no speech, so a caption job without cues fails with caption_no_speech; authored cues with text, start and end burn the words you chose instead. Per the docs, the render is $0.10 per output minute and a caption job is $0.20, so the finishing steps for a 12-second notice come to $0.30 before you make the two cards.

Winter closures are written in a hurry, at 6 a.m., by the person who also has to shovel. The goal here is a repeatable recipe that takes minutes, not a design project.

Why does a silent clip need cues?

The captions page is explicit: speech-to-captions works only when the clip has audible speech. On a silent clip the job fails with caption_no_speech and the suggested next action is use_overlay_captions. That is not a policy block, it just means there is nothing to transcribe.

Cues are the fix. Each cue is a short text with a start and an end in seconds, and Sume burns them without speech-to-text. For a closure notice this is better than speech anyway: the exact wording, hours and phone number stay exactly as you typed them.

How do I render the silent clip?

Make two stills with any image model in the catalog, for example a plain card that says the shop is closed and a second one with the reopening time. Import them so they are Sume-hosted media, then build a Timeline 1.0 document with audio.mode set to silence, audio.duration_seconds of 12, and two video[] slots. Stills are static holds, so a 6-second slot per card is enough.

Run POST /v1/timeline-1.0/plan first. It is unbilled, returns billable_minutes and estimated_cost_usd_micros, and does not create a job. Then send the render with an Idempotency-Key so a retry on a bad connection does not make a second clip.

What does the caption call look like?

Use the finished clip's media.sume.com URL as video_url, and give each cue a window. The request below burns three lines over 12 seconds.

curl -X POST https://api.sume.com/v1/video-captions \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: snow-day-cues-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/snow-day.mp4",
    "style": "punch",
    "cues": [
      { "text": "CLOSED TODAY", "start": 0, "end": 4 },
      { "text": "Weather closure", "start": 4, "end": 8 },
      { "text": "Back tomorrow 9 AM", "start": 8, "end": 12 }
    ]
  }'

What does it cost, and what is flat?

Both finishing steps are fixed-price in the docs, so the arithmetic is simple. Confirm live rates in GET /v1/catalog before you budget.

Finishing a 12-second silent notice, rates from Sume docs read 2026-10-12
StepRate in docsThis notice
Timeline 1.0 render$0.10 per output minute, rounded up$0.10
Caption job (clips up to 60 s)$0.20 per accepted job$0.20
Total finishing$0.30

What should the cues say?

Keep each cue to one fact: closed, why, when you reopen. Put the phone number or booking link in the post text rather than in a 3-second cue that people cannot copy. If the weather changes, you do not edit the clip: you change the second cue's text and run the caption call again on the same silent video, which costs $0.20, not a new render.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume