Turn product photos into a silent video with Timeline static holds

Timeline 1.0 treats a still as a static hold, so product photos become a silent video with fades. Shopify lists MP4 up to 10 minutes; here is the request.

4 min readSume
All posts

Timeline 1.0 accepts a still as a video[].source_url and holds it for the duration you set, so a set of product photos on media.sume.com becomes one silent MP4 with audio.mode set to silence. Shopify's product media page lists MP4 among accepted product video formats.

How does Timeline treat a photo?

The Timeline docs say stills are static holds: a motion field is accepted and ignored, with a motion_ignored warning that is not a failure. fit chooses cover (default), contain, stretch or blur, which decides what happens when a photo's ratio differs from the output.

What are the timing rules?

The first slot must start at 0, later starts must increase, and each duration is at least 0.2 seconds. Coverage may trail the audio length by at most 0.5 seconds. Transitions go on slots after the first, last up to 1 second and at most half the shorter neighbour.

Timeline fields for a photo sequence (read 2026-09-30); see the Timeline docs
FieldRule
audio.modesilence declares a length with no audio file
video[0].startMust be 0
video[].durationAt least 0.2 s
transition.typefade, wipeleft, wiperight, slideup, slidedown or dissolve
video[] slots1 to 200

What does the request look like?

Three photos, three seconds each, a 0.25 second fade between them. Import each photo to media.sume.com first with POST /v1/media-imports.

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: photos-001" \
  -d '{
    "audio": { "mode": "silence", "duration_seconds": 9 },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/front.jpg",
        "start": 0, "duration": 3 },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/side.jpg",
        "start": 3, "duration": 3,
        "transition": { "type": "fade", "duration": 0.25 } },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/back.jpg",
        "start": 6, "duration": 3,
        "transition": { "type": "fade", "duration": 0.25 } }
    ]
  }'

What does it cost and what does it not do?

A render is priced at $0.10 per output minute, rounded up (confirm live in GET /v1/catalog), and the reserve is ceil(audio.duration_seconds / 60) minutes, so nine seconds reserves one. There is no motion on a still, so this is a slideshow, not an animated product shot; for movement, generate a clip with POST /v1/videos. Shopify's page read on 2026-09-30 also caps hosted video at 1 GB, so check the file size.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume