Custom Shorts thumbnail needs YPP and a computer: export a frame
YouTube's help page says Shorts custom thumbnails upload in Studio on a computer. Export a frame with Sume's video frames route, and check size caps first.
Short answer
Custom thumbnails for Shorts are uploaded in YouTube Studio on a computer, and a YouTube blog post says creators in the YouTube Partner Program can use them (both read 2026-10-05). You can produce the image with video frames: ask for one frame at the instant you want, as jpeg or png, and upload that file.
What YouTube says
The thumbnail help page says a custom Shorts thumbnail is set through Studio on a computer, recommends 9:16 at 2160x3840 with a minimum height of 640, accepts JPG and PNG, and lists a 50 MB limit on desktop and 10 MB on mobile. It also says verification is required. The blog post on the update says YPP creators can upload custom Shorts thumbnails, that desktop offers three suggested frames, that on a phone you pick any frame, and that the feature is expanding over time.
Read together, the two pages say the same thing from different angles: you can choose a frame on a phone, and a custom image goes up through Studio on a computer.
The spec against a Sume frame
Video frames returns the accurate frame at the source size when you leave out max_edge, and clamps the long edge between 16 and 2160 when you set it. A 1080x1920 render therefore gives a 1080x1920 frame, which clears the 640 minimum height but is below the recommended 2160x3840. The clamp only limits size, so it cannot add pixels the video does not have.
| Item | YouTube | Sume video frames |
|---|---|---|
| Aspect ratio | 9:16 recommended | Same as the source, 9:16 for a default render |
| Recommended size | 2160x3840 | Source size, or a long edge from 16 to 2160 |
| Minimum height | 640 px | 1920 px for a 1080x1920 source |
| Formats | JPG, PNG | jpeg (default) or png |
| Size cap | 50 MB desktop, 10 MB mobile | Check the file after export |
| Frames per call | Not stated | Up to 24 timestamps |
Export three candidates
Ask for three instants and pick one. The source must be a media.sume.com artifact, and the route accepts sources up to 300 seconds. It always answers with 202, so poll the job.
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/short.mp4",
"at": [1.0, 7.5, 14.0], "format": "png"}
req = urllib.request.Request(
"https://api.sume.com/v1/video-frames",
data=json.dumps(body).encode(),
headers={"Authorization": "Bearer " + key,
"Content-Type": "application/json",
"Idempotency-Key": "thumb-short-001"},
)
print(json.load(urllib.request.urlopen(req))["request_id"])Check before upload
A full-size PNG of a busy frame can be several megabytes, which is fine on desktop and may not be on mobile. If the file is near the cap, ask for jpeg. Leave the title text out of the frame unless it stays readable at small sizes; stills of a clean subject tend to survive downscaling better than stills with captions burned in.
Pick the frame with intent. The three suggested frames Studio offers on desktop are a starting point, and any frame is available on a phone, so an API export is for the case where you want a specific instant: the product at its clearest, a face mid-expression, the last frame before a cut. Use a precise timestamp, not the fast seek mode that video inspect offers for quick looks, since fast mode can land up to one keyframe interval early.
If the first frame of the Short is also a good thumbnail, ask for at = [0]. Otherwise ask for two or three instants after the hook so the thumbnail does not just repeat the opening.
Sources
Related posts
More in Use cases
- Renewal reminder videos: 500 avatar clips, cost and batch plan
A 20-second renewal reminder from one Sume avatar for 500 accounts: price on standard, plus and max, queue and idempotency tips, and what to avoid saying.
- Cut a quote clip from a long video: transcript, then video_trim
Find the sentence in a Sume transcript, then cut it with video_trim. A Python script, with timing padding, $0.02 per trim, and the 900-second output cap.
- Day-to-night and season-change video transitions with Omni on Sume
Make a day-to-night or summer-to-winter transition: same scene as first and last frame, Omni fills the time between. 8 s is $1.00 at 720p on Sume.
- Docs page to tutorial video: Wan 3.0 B-roll and your own code cards
Turn a developer docs page into a short tutorial: Wan 3.0 for B-roll, your own code image beside it with Timeline compose, so the snippet is never regenerated.
Written by Sume