Swap the offer tail on 40 winning video ads for Cyber Monday: $12.07

Keep the first 12 s of 40 Black Friday winners, cut to a new end card in Timeline at $0.10 each, and burn the Cyber Monday code with $0.20 cues: $12.07 in all.

4 min readSume
All posts

When Black Friday ends on Nov 27 and Cyber Monday starts on Nov 30, 2026, you do not need new videos for the winners; you need a new last 3 seconds. On Sume, a Timeline render can keep the first 12 seconds of an existing ad and cut to a still end card, at $0.10 per render, and a caption job burns the new offer text for $0.20. For 40 ads that is 40 x $0.30 = $12.00, plus about $0.07 for one end-card image: $12.07 (prices read 2026-10-05).

The recipe

Timeline 1.0 takes a declared length and ordered video[] slots, and a slot can use source_in to start inside a clip and duration to stop early (Timeline docs). Stills are accepted as static holds, so one end-card image is a slot. Declare the total length with audio.mode set to "silence" for ads with no audio. Every URL must already be a media.sume.com artifact.

Make the end card once. A plain background image from gpt-image-2.5 at high quality is $0.0659 for text-to-image, and the offer text goes on afterwards with caption cues, so the code and dates are exact. Putting text inside a generated image invites spelling errors.

A batch builder

The script builds one Timeline body per ad and prints the bill. It runs as written; swap in your own URLs and send each body to POST /v1/timeline-1.0/render with an Idempotency-Key that includes the ad id and the offer name.

import json

CARD = "https://media.sume.com/artifacts/demo/cyber-monday-card.png"


def new_tail(ad_url, body_seconds=12.0, card_seconds=3.0):
    return {
        "audio": {"mode": "silence", "duration_seconds": body_seconds + card_seconds},
        "video": [
            {"source_url": ad_url, "source_in": 0, "start": 0,
             "duration": body_seconds},
            {"source_url": CARD, "start": body_seconds, "duration": card_seconds,
             "transition": {"type": "fade", "duration": 0.25}},
        ],
    }


ads = ["https://media.sume.com/artifacts/demo/ad%02d.mp4" % n for n in range(1, 41)]
bodies = [new_tail(u) for u in ads]
print(len(bodies), "renders =", round(len(bodies) * 0.10, 2), "USD")
print("with $0.20 cues:", round(len(bodies) * 0.30, 2), "USD")
print(json.dumps(bodies[0]["video"][1]))

What this costs and what it skips

Timeline bills $0.10 per output minute, rounded up, so a 15 s ad is $0.10. The caption job covers videos of 60 seconds or less (caption docs).

Offer-tail swap for 40 ads, Sume prices read 2026-10-05
LineUnit priceCountTotal
Timeline render, 15 s$0.1040$4.00
Caption cues for new offer$0.2040$8.00
End-card image, high quality$0.06591$0.0659
Total$12.0659

The recipe skips ads with audio. A Timeline spine must be a Sume-hosted audio file, so a voiced ad needs its audio extracted or re-made first. For cutting an ad down to shorter versions instead, see one master, three cutdowns for 6 cents; for the all-in cost of finishing 100 ads, see captions, trim, Timeline and music priced.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume