Make a for-rent listing video from 8 photos with one Timeline call

A 32-second rental walkthrough from eight listing photos, a music bed and one Sume Timeline render at $0.10 per output minute. Preview with the free plan call.

5 min readSume
All posts

To make a rental listing video from photos, upload eight pictures, give each a four-second slot in a Sume Timeline 1.0 render, add a music bed, and export a 32-second vertical clip. The render is billed at $0.10 per output minute, rounded up, so the video costs $0.10 plus $0.125 if you generate the music with Sume. There is no editor to open and no per-seat fee.

Photos you already have are the right input. A listing video made from your own shots shows the actual unit, which is what a renter needs to see; do not generate rooms that do not exist.

Which eight photos, in what order?

Street or building, entry, living room, kitchen, bedroom, bathroom, a view or a shared amenity, then the building again. Use the video as a second asset next to the photo gallery, not a replacement for it. Shoot landscape, but set the output to 9:16 with a fit choice that suits the crop.

What does the render look like?

The spine is audio.mode: "silence" for 32 seconds, which means no narration. Each photo is a slot with a start and a four-second duration, and the music sits in soundtrack. All URLs must be media.sume.com, so import external photos first (Media inputs).

import os, requests

photos = [f"https://media.sume.com/PHOTO_{i}.jpg" for i in range(1, 9)]
video = [
    {"source_url": u, "start": i * 4, "duration": 4, "fit": "cover"}
    for i, u in enumerate(photos)
]
body = {
    "audio": {"mode": "silence", "duration_seconds": 32},
    "video": video,
    "soundtrack": {"url": "https://media.sume.com/MUSIC.mp3", "fade_out_seconds": 2},
    "output": {"width": 1080, "height": 1920},
}
r = requests.post(
    "https://api.sume.com/v1/timeline-1.0/plan",
    headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"},
    json=body,
    timeout=60,
)
print(r.status_code, r.json())

What does it cost?

The /plan call above is unbilled: it compiles the same request as a render and returns the duration, billable minutes and an estimate. When it looks right, post the same body to /v1/timeline-1.0/render with an Idempotency-Key.

One 32-second listing video, rates read 2026-10-04
ItemRateAmount
Timeline render, 32 s$0.10 per output minute, rounded up$0.10
Music bed, one generation (optional)$0.125 per audio$0.125
Total$0.225

What do I leave out?

Leave out rent, availability and the fee schedule. They change, and a video cannot be edited without a new render. Put them in the listing text next to the video. Check the first and last frames and confirm each slot shows the room it is supposed to.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume