AI video generator for YouTube: get 16:9 from a Sume Format

Sume's first-party example prompts are vertical. To get a 16:9 YouTube video from a Format, say so in instruction and check the width and height.

4 min readSume
All posts

To get a landscape YouTube video from a Sume Format, write the ratio into the run's instruction and then read the finished file's size from the receipt. Do not assume the Format's default. Sume's own example prompts for the catalog Formats ask for 9:16, and some Formats are vertical by definition.

What do we actually know about the default?

Two facts are documented. First, the docs say instruction is placed after the Format body, so it wins where the two do not agree. Second, the first-party example prompt for the close-camera UGC Format reads "Create a 9:16 close-camera UGC ad", and the card for sume-fruits-drama says it makes a vertical clip about 5 seconds long, so that one is not a YouTube candidate.

What the docs do not publish is a default ratio for each catalog Format. So treat the instruction as a request, not a guarantee, and verify the output.

What to rely on for ratio, from the Sume docs and catalog cards, read 2026-10-06.
QuestionAnswer from the docsAction
Does instruction override the Format?Yes, where they disagreeState 16:9 and the use, for example a YouTube video
Is there a ratio field on the run?No such field in the request tablePut it in instruction
Can I see the output size?artifacts[] carries width, height, duration_msAssert width > height
Which models do 16:9 natively?GET /v1/videos/models lists supported_aspect_ratiosCheck before pinning a model

Ask, then assert

Send the run with the ratio in plain words and a per-run cap, then read the receipt. The docs list width and height on each artifact, and they can be null, so the script below treats a missing size as a failure to investigate, not a pass. It needs SUME_API_KEY and a run id.

import json, os, sys, urllib.request

def receipt(run_id):
    req = urllib.request.Request(
        f"https://api.sume.com/v1/format-runs/{run_id}",
        headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"]})
    with urllib.request.urlopen(req) as r:
        return json.load(r)["data"]

def landscape(data):
    vids = [a for a in data["artifacts"] if a["type"] == "video"]
    return bool(vids) and all(
        a.get("width") and a.get("height") and a["width"] > a["height"]
        for a in vids)

if __name__ == "__main__":
    d = receipt(sys.argv[1])
    print(d["status"], "landscape" if landscape(d) else "CHECK SIZE")

What about YouTube's own rules?

YouTube's help page, read today, says realistic altered or synthetic content must be disclosed, and gives fantastical scenes such as a unicorn as an example that does not need a label. It also lists AI-generated music as something to disclose. A product ad made from your own packshot is yours to judge against that page; Sume does not apply a label for you.

If you want a specific model rather than the Format's choice, pin it through POST /v1/videos instead, after reading supported_aspect_ratios in the video catalog.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume