Bakery order-cutoff video: reuse the baker's phone voice as the spine
Turn a 40-second phone clip of a baker into a holiday order-cutoff video: audio detach for $0.01, b-roll slots, a ducked bed, one render. About $0.24 on Sume.

To make a holiday order-cutoff video from a baker's phone clip, detach the voice with POST /v1/audio-detach ($0.01), use the wav as the Timeline audio.url, lay your own b-roll in video[] over it, and add a Lyria bed with duck_db. With a one-minute render and one bed that is $0.235.
Small food businesses already have the best script they will ever get: the owner saying, in their own words, when the last day to order is. What they lack is picture. This keeps the real voice and swaps the unflattering phone footage for the shots of the loaves.
Because detach is a flat one-cent job, it is cheap to try two takes: detach the first answer and the second, listen, and keep the one that sounds like the baker on a good day. The original video is never changed, so the unflattering footage stays in your library and costs nothing to keep.
Detach the voice
Detach takes video_url (a media.sume.com artifact or asset), format (wav default, or mp3 at 128 kbps), an optional range of {start, end} seconds, channels (source or mono) and sample_rate. Use the range to take only the 40 seconds that matter. The result is audio_url, a new artifact, plus duration_seconds. A source with no audio track fails with detach_source_has_no_audio; check probe.has_audio with video inspect first if you are unsure.
Caps: the source is at most 1800 seconds and the output at most 900, so a long phone recording needs a range.
| Step | Endpoint | Sume price |
|---|---|---|
| Detach voice, range 4 to 44 s | POST /v1/audio-detach | $0.01 |
| Music bed | POST /v1/music-router/generate | $0.125 |
| Render, 40 s spine, one output minute | POST /v1/timeline-1.0/render | $0.10 |
| Total | $0.235 |
Build over the voice
On the Timeline, audio.url is the spine and audio.duration_seconds is the output length, so set it to the detached length, 40. Each video[] slot then covers a span of the voice: the oven at 0, the loaves at 8, the box being tied at 20, the cutoff date still at 32. Stills are static holds, so the date card can be an image; give it the last slots and a short fade.
The bed goes in soundtrack with duck_db between 0 and 20, which lowers it under the voice, and it works here because the spine is a real recording rather than silence. Use fade_out_seconds up to 10 so the music ends after the last word.
The phone clip's own video is not needed at all; you can include a few seconds of it as the first slot if you want the baker's face for the opening line, with a hard cut afterwards.
Detach, then render
For a bakery with five product lines, the same recipe gives five short videos for $0.235 each, or $1.175. The only per-video input that has to be recorded is the voice, and a phone is enough for that.
import os
import time
import uuid
import requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
API = "https://api.sume.com/v1"
d = requests.post(f"{API}/audio-detach", timeout=60,
headers={**H, "Idempotency-Key": f"bake-{uuid.uuid4()}"},
json={"video_url": os.environ["PHONE_CLIP_URL"],
"range": {"start": 4, "end": 44}, "format": "wav"}).json()
job = d["request_id"]
while True:
st = requests.get(f"{API}/jobs/{job}/status", headers=H).json().get("status")
if st == "result_ready":
break
if st in ("failed", "canceled"):
raise SystemExit(f"detach {st}")
time.sleep(3)
voice = requests.get(f"{API}/jobs/{job}/result", headers=H).json()["audio_url"]
print(voice)
Render and check
The code stops at the voice URL on purpose: the render call is the same one you used in the other Timeline posts, with audio.url set to that value, audio.duration_seconds set to 40 and slots such as {source_url, start: 8, duration: 12}. Poll GET /v1/jobs/:id/status until it is ready and read GET /v1/jobs/:id/result. The loop stops on a failed or canceled job; confirm the exact status strings in GET /v1/jobs/:id/status before you run it unattended.
Say only what the baker said. If the voice gives a cutoff date, the date card must show the same date, and any shipping promise belongs to the shop, not to a caption you added later. For a different use of a detached track as an extra audio part, see the cold open recipe, and for the ducking numbers see the holiday spot with a music bed.
Sources
Related posts
More in Use cases
- Barbershop before-and-after clip: Kling 3 first frame and last frame
Send the before photo as first_frame and the after photo as last_frame to kling-3 on Sume: a 6-second silent clip is $0.84; what to check before posting.
- 200 birthday greeting avatar videos: cost and a Python loop
Send each customer a personal 10-second avatar greeting. At standard quality 200 clips cost $368. The Python loop uses one Idempotency-Key per row.
- Birthday party invitation video: a 5-second Wan 3.0 clip from a photo
Animate a birthday photo into a 5-second vertical invitation clip with Wan 3.0 on Sume: 480p, 720p and 1080p prices, the request body and what to add after.
- Real-estate listing video in three aspect ratios: $0.30 on Sume
Biteable Pro lists a 10-minute video cap at $29 a month. A 45-second listing tour as 9:16, 16:9 and 1:1 renders on Sume costs $0.10 each.
Written by Sume