Shorts series episode one: check four opening frames in two seconds

A Shorts series has a watch series button that leads into a series feed, so episode one is the entry. Check four frames, 0 to 2 seconds, with video inspect.

5 min readSume
All posts

Short answer

YouTube's series page says a watch series button leads viewers into a series feed, so episode one is where a new viewer starts. Check its first two seconds with four stills, at 0, 0.5, 1 and 2 seconds, using video inspect, which defaults to a synchronous call that returns stills with the probe.

Why episode one gets the extra check

The Shorts series help page describes a watch series button that leads into a series feed, and says serial series play oldest first while non-serial series show newest first (read 2026-10-05). YouTube's Sept 23, 2026 post describes sequential playback across web, mobile and TV (read 2026-10-05). In a serial series, the oldest episode is first, so for most viewers the first thing they see is the opening of episode one. If the frame at 0 is black or a title card with no subject, the series loses viewers before the story starts.

The four-frame check

The timestamps are explicit, so each still is the accurate frame at that instant.

Opening-frame check for episode one, read 2026-10-05
TimestampWhat to look for
0.0 sNot black, subject or hook already visible
0.5 sThe first caption or motion has started
1.0 sThe scene is clear without sound
2.0 sThe hook has landed

The call

POST /v1/video-inspect accepts frames with an at list of 1 to 24 instants and a max_edge from 64 to 2160, which defaults to 768. The call needs a media.sume.com source and an Idempotency-Key. By default it waits up to 30 seconds and answers 200 with the result, or 202 with a job to poll.

import json, os, urllib.request

key = os.environ.get("SUME_API_KEY", "")
if not key:
    raise SystemExit("set SUME_API_KEY")
body = {
    "video_url": "https://media.sume.com/artifacts/artf_demo/ep1.mp4",
    "frames": {"at": [0, 0.5, 1, 2], "max_edge": 540},
}
req = urllib.request.Request(
    "https://api.sume.com/v1/video-inspect",
    data=json.dumps(body).encode(),
    headers={"Authorization": "Bearer " + key,
             "Content-Type": "application/json",
             "Idempotency-Key": "ep1-open-check"},
)
print(json.load(urllib.request.urlopen(req)))

Reading the result

The resource contains a probe and a frames list of t, url, width and height, with stills as durable media.sume.com images. Open the four URLs side by side. If the first frame is black, trim a few tenths off the head with video trim or move the in-point on the timeline slot. The probe also reports has_audio, so you can tell a silent clip from a clip with sound before you judge the opening.

Run the same check on every episode, since a viewer who lands on episode five from elsewhere meets that opening first. For episode one, also look at the thumbnail frame you chose, because the series view uses a custom thumbnail.

If you are making the episode with Sume, the usual fixes are small. A black first frame comes from a clip with a fade-in baked into the source or from a timeline output fade, since output.fade_in_seconds can be set from 0 to 5 seconds. Set it to 0 for episode one if you want the first frame to be the hook. A title card burned into the first slot is another cause; move it to the second.

Repeat the four-frame check after any re-render, since a change to the first slot changes what the first frame is.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume