One output object for every episode: 1080x1920 at 30 fps in Timeline

Pin the same Timeline output block on every Shorts episode: 1080x1920 at 30 fps. Mixed-model clips then do not trigger the fps resample warning.

4 min readSume
All posts

Define one output object, such as {"width": 1080, "height": 1920, "fps": 30}, and put it in every Timeline body of a season. Sume's default is already 1080x1920, but if you omit output.fps the frame rate follows the longest video source, so two episodes built from different models can land at different rates.

That behavior is in the Timeline 1.0 docs (read 2026-10-06): the job reports output_fps_resamples_sources when the chosen rate differs from a source's. YouTube's Shorts series wants every episode to be portrait or square and 180 seconds at most; it does not set a frame rate.

What does the object control?

The figures are laid out below.

Timeline output fields (read 2026-10-06)
FieldAllowed valuesOmitted
output.width and output.heightEven integers 256 to 21601080x1920
output.fps24, 25, 30, or 60Matches the sources, 30 only if none has a rate
output.fade_in_seconds and fade_out_seconds0 to 5 each; sum no more than the output lengthNo fades

Why pin fps?

If a rate differs from a source's, the job repeats or drops a frame every few frames, which can look like judder on motion. Pinning 30 means every episode has the same cadence, and you see the output_fps_resamples_sources warning on the clips that need conforming, rather than discovering it in the season. Warnings are not failures, so a render still finishes.

How do I keep it consistent?

Keep the object in one place in your code and merge it into every body. Never send codec, crf, filtergraph, or similar keys; Timeline rejects provider and ffmpeg fields with a 400. Give each episode its own Idempotency-Key, for example s02-e05-v1, so a retried submit returns the original job.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume