YouTube Studio takes 15 Shorts per upload: batch-render vertical clips

YouTube lets you pick up to 15 Short files at once, each up to 3 minutes, square or vertical. Submit the jobs in a Python loop with idempotency keys on Sume.

4 min readSume
All posts

YouTube's Shorts upload page says you can choose up to 15 short videos at a time from YouTube Studio, each up to 3 minutes and square or vertical. A Python loop that submits one Sume job per script, with a distinct idempotency key each, produces a batch that fits.

What YouTube's page says

From a computer: sign in to YouTube Studio, click Create, and pick short-video files that are up to 3 minutes with a square or vertical aspect ratio. You can choose up to 15 at a time, but you must click Edit draft to complete each video's details before publishing. The default privacy for creators aged 13 to 17 is private, and public for 18 and older.

The batch loop

Each job is an independent POST /v1/videos with its own prompt, aspect_ratio 9:16 and Idempotency-Key. A retry of the same key and body returns the same job, and a changed body under a reused key is a 409 conflict. The loop below submits three; extend the list to fifteen.

import json, os, urllib.request

PROMPTS = [
    "A ceramic mug steams on a windowsill, rain outside",
    "A cyclist crosses a bridge at sunrise",
    "A chef plates ramen under warm light",
]

def submit(i, prompt):
    body = json.dumps({"model": "seedance-2", "prompt": prompt,
                       "duration": 6, "resolution": "720p",
                       "aspect_ratio": "9:16"}).encode()
    req = urllib.request.Request(
        "https://api.sume.com/v1/videos", data=body,
        headers={"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
                 "Content-Type": "application/json",
                 "Idempotency-Key": f"shorts-batch-{i:02d}"})
    with urllib.request.urlopen(req) as r:
        return json.load(r)

for i, p in enumerate(PROMPTS):
    job = submit(i, p)
    print(i, job["id"], job["status"])

Cost and limits

Each job reserves its own price at list times 1.25, so 15 jobs reserve 15 prices at once. Make sure the workspace balance covers the batch, or later submits return 402 insufficient_credits. The rate limit returns 429, so back off if you hit it.

YouTube Shorts upload limits against Sume batch settings (read 2026-10-05)
ItemYouTube pageSume setting
Files per uploadUp to 1515 jobs, one key each
Length per fileUp to 3 minutes6 s in the example; seedance-2.5 accepts 4 to 30 s
Aspect ratioSquare or vertical9:16 (or 1:1 on models that list it)
Per-video detailsEdit draft requiredTitles and descriptions are yours

After the render

Poll each job until completed, download the unsigned_urls, and drop the files into YouTube Studio. YouTube's separate disclosure rules for realistic altered or synthetic content still apply per video, so complete that setting when you edit each draft.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume