Poetry reading video from your own recording, captions and music
Turn a 60-second poem recording into a captioned vertical video: six image or clip slots, a ducked music bed, script-aligned captions. About $0.43 plus visuals.

A poet can turn a 60-second reading into a captioned vertical video on Sume for $0.425 plus the visuals: the recording is the Timeline audio spine, six 10-second slots carry images or clips, a music bed sits 12 dB under the voice, and the captions are aligned to your poem text. With three AI clips and three stills as visuals, the total is about $2.30 before the image jobs.
Your own voice is kept as recorded; Sume does not re-synthesize it. That matters for a reading, where the pauses are part of the poem.
What does a poetry reading video cost?
Timeline renders cost $0.10 per output minute rounded up, a caption job $0.20 for a video up to 60 seconds, and a music generation $0.125 (Sume docs, read 2026-10-12). Visuals are your choice: stills are image jobs, priced by model and quality in GET /v1/catalog, and clips on wan-3.0 at 480p are $0.0625 per second (catalog, read 2026-10-12).
| Item | Arithmetic | Cost |
|---|---|---|
| Timeline render | ceil(60 s / 60) = 1 minute x $0.10 | $0.10 |
| Music bed | 1 audio | $0.125 |
| Script-aligned captions | 1 job | $0.20 |
| 3 clips, wan-3.0 480p, 10 s each | 3 x 10 x $0.0625 | $1.875 |
| 3 stills | image jobs, see GET /v1/catalog | varies |
| Total without stills | 0.10 + 0.125 + 0.20 + 1.875 | $2.30 |
How do I assemble the reading?
Import the recording first (POST /v1/media-imports), because Timeline only reads media.sume.com URLs. Then render with the reading as audio.url and soundtrack for the bed. Setting soundtrack.duck_db makes the bed dip under the voice, and it needs a real spine, which your recording is. Stills are static holds (motion is ignored with a warning), so use clips where you want movement. Transitions are limited to 1 second.
import asyncio, os, httpx
async def main():
body = {
"audio": {"url": "https://media.sume.com/artifacts/YOUR_READING.mp3",
"duration_seconds": 60},
"video": [{"source_url": f"https://media.sume.com/artifacts/YOUR_SLOT_{i}.mp4",
"start": i * 10, "duration": 10,
**({"transition": {"type": "dissolve", "duration": 0.5}} if i else {})}
for i in range(6)],
"soundtrack": {"url": "https://media.sume.com/artifacts/YOUR_BED.mp3",
"gain_db": -18, "duck_db": 12, "fade_out_seconds": 3},
}
headers = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "poem-reading-001"}
async with httpx.AsyncClient(timeout=60) as c:
r = await c.post("https://api.sume.com/v1/timeline-1.0/render", json=body, headers=headers)
print(r.status_code, r.json())
asyncio.run(main())How do I caption it so the poem is spelled right?
Send the Timeline MP4 to POST /v1/video-captions with script_text set to the poem. Sume keeps speech-to-text word timings and aligns your text to them, so line breaks, names and invented words come out as written. If the alignment fails you get script_alignment_mismatch or script_alignment_failed, and the suggested next step is to simplify the script text or omit it. The default style is slam for Latin text; punch and tiktok-green are the other Latin options, and design.colors can change the tint on the spoken word for a quieter look.
When is this the wrong approach?
Poems are rhythm first, and a busy video can fight the voice.
- If the reading is over 60 seconds, the caption job is no longer covered by the $0.20 fixed estimate; check the live price first.
- If you only need a page with a transcript, skip the video and use POST /v1/video-inspect with transcribe, which is cheaper.
- Do not generate clips of a real person to stand in for the poet.
- Music from the router is generated; if the poem is about a specific song, you need rights to that song, not a lookalike.
Sources
Related posts
More in Use cases
- Pongal, Lohri and Makar Sankranti 2027: a greeting clip from photos
Lohri is Jan 14, Thai Pongal and Makar Sankranti are Jan 15, 2027. Make a 20-second harvest greeting from five photos, a bed and cues for $0.425.
- Presidents Day 2027 is Feb 15: a sale clip from five photos
Washington's Birthday falls on Monday, Feb 15, 2027. Build a 20-second weekend-sale clip from five photos, a music bed and caption cues for $0.425 on Sume.
- Ramadan 2027 begins around Feb 8: an iftar-special clip from photos
Ramadan 2027 is expected from the evening of Feb 7, pending moon sighting. Plan a 20-second iftar promo from five photos, a calm bed and cues for $0.425.
- Remembrance Day 2026: a 'Thank a Veteran' clip from staff recordings
Remembrance Day in Canada is Wednesday 11 November 2026. Trim three staff recordings, join them in Timeline and caption the result for $0.39 on Sume.
Written by Sume