YouTube Shorts series: queue episodes as one Format bulk run

Queue 1 to 100 episodes of a Shorts series in one Sume Format bulk run, set a concurrency of 1 to 16, and branch on counts.failed, not on completed.

4 min readSume
All posts

Treat the episodes of a Shorts series as the items of one Sume Format bulk run: POST /v1/formats/{handle}/{slug}/bulk-runs takes 1 to 100 items in order, runs them under a concurrency window of 1 to 16, and you poll one queue for progress. The bulk run produces the episodes; uploading them and grouping them into seasons happens in YouTube.

9to5Google reports that YouTube is introducing a Shorts series feature that lets creators organize Shorts into seasons and episodes, rolling out from 2026-09-23. Queue facts below are from Sume's Bulk runs page, read 2026-09-30.

What goes in the queue request?

Two fields matter. concurrency is a required integer from 1 to 16: how many child Format runs stay in flight at once. items is a required array of 1 to 100 entries, in order, and each entry has the same body as a single run. Each item must name at least one of instruction, input, previous_run_id or attachments. A bad item fails the create with 400 invalid_request and a details.index, before any queue exists, so nothing is dispatched.

const key = process.env.SUME_API_KEY;
if (!key) throw new Error("Set SUME_API_KEY");
const episodes = [1, 2, 3].map((n) => ({
  instruction: "Episode " + n + " of the series: write and produce a 30 second Short.",
}));
const res = await fetch("https://api.sume.com/v1/formats/acme/shorts-series/bulk-runs", {
  method: "POST",
  headers: {
    Authorization: "Bearer " + key,
    "Content-Type": "application/json",
    "Idempotency-Key": "series-s1-" + Date.now(),
  },
  body: JSON.stringify({ concurrency: 2, items: episodes }),
});
console.log(res.status, await res.json());

How do episodes stay consistent with each other?

An item may carry previous_run_id, which continues an earlier run of the same Format as another turn of the same conversation. That is useful when episode 4 should build on a run you already have. The docs describe previous_run_id as pointing at an earlier run and say nothing about referencing another item in the same queue, so for items queued together put the shared context (series bible, tone, characters) in each item's instruction, and use previous_run_id for runs that already exist.

How do I know the batch finished?

Queue behavior from the Sume docs, read 2026-09-30: https://docs.sume.com/formats/bulk-runs
QuestionAnswer in the docs
Items per queue1 to 100, in order
Concurrency windowInteger 1 to 16
Queue-level webhookNone. The queue object has no webhook
Per-item webhookcommunication.webhook_url on each item
Status completedEvery item is terminal, not "all succeeded"
Retry safetyFresh Idempotency-Key per batch; a spent key returns 202 with the old queue

What should I do after the queue finishes?

Poll status_url and branch on counts.failed. Read each child run for its output, then review the episodes yourself before posting. If you plan to upload many AI-made Shorts, read YouTube inauthentic content and AI video batches first, and see batch-producing episodes by length for sizing.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume