YouTube Shorts originality checklist: run it before you upload
A pre-upload checklist from YouTube's monetization pages, plus a Python preflight that checks length and orientation from a Sume video inspect probe.

Before you upload a Short after October 1, check five things: what you added, whether the series varies, whether the music is cleared, whether realistic synthetic content is disclosed, and whether the file meets the format limits. YouTube's pages give examples rather than a scoring rule, so the checklist asks questions you can answer with yes or no (read 2026-10-03). Only the last item can be automated.
Search Engine Journal reports the October 1 recommendation change favors original Shorts and gave no start date or dashboard (read 2026-10-03). So the checklist is a habit, not a way to predict ranking.
The checklist
The first four are judgments. The last is a measurement, which a script can do.
| Check | Question | Source page |
|---|---|---|
| Added value | Does the Short have commentary, a storyline or a focus the source lacks? | Channel monetization policies |
| Variation | Is this Short different from the last few in more than a name? | Channel monetization policies |
| Music | Is it one cleared track, and do you accept the revenue split? | Shorts monetization policies |
| Disclosure | Is realistic altered or synthetic content labelled? | Disclosing altered or synthetic content |
| Format | Vertical and no longer than 3 minutes? | Upload YouTube Shorts |
The measurable part
Video inspect returns a probe with duration_seconds, width, height, fps and has_audio. Passing frames: false skips the stills so the call is a probe only. The default sync mode waits up to 30 seconds and the source must be on media.sume.com and at most 1,800 seconds. The check below reads a probe and reports problems. It accepts a dict so you can test it without a network call.
The limits in it come from YouTube's help for Shorts: vertical and up to 3 minutes (read 2026-10-03). Square or horizontal files may still upload, but they are not what that page describes, so the script warns instead of failing.
def preflight(probe, max_seconds=180):
problems, warnings = [], []
if probe["duration_seconds"] > max_seconds:
problems.append(f"{probe['duration_seconds']}s is over {max_seconds}s")
if probe["width"] >= probe["height"]:
warnings.append("not vertical")
if not probe.get("has_audio", True):
warnings.append("no audio track")
return problems, warnings
probe = {"duration_seconds": 47.2, "width": 1080, "height": 1920,
"fps": 30, "has_audio": True}
print(preflight(probe))Using it in a batch
Sume does not guarantee reach, and no tool can tell you how YouTube will rank a Short. The checklist keeps you honest about the part you control.
- Run the probe for every file in a series and sort the problems first.
- Keep the answers to the four judgment items in a note next to each file.
- Re-run after any edit; trimming can change the duration.
- Do not treat a clean preflight as approval; it only checks the file.
Why only part of it can be automated
Originality, variation and disclosure depend on context a script cannot see. A probe tells you the file is 47 seconds and vertical. It does not tell you whether the Short has a point of view. Anyone selling a one-click originality score is selling a guess, since YouTube publishes no scoring rule.
That is also why the checklist keeps the first four items as questions. Answer them in a note per file. If an answer is 'I do not know', that is the signal to look again.
Using video inspect without paying for extras
A probe-only call (frames: false) is enough for the preflight. The transcript option is billed at $0.01 per audio minute and is not needed here (docs, read 2026-10-03). If you also want to audit narration, run it separately on the final cut.
For files that are not yet on media.sume.com, import them first; off-host URLs are rejected at admit. For a long batch, submit with a distinct Idempotency-Key per file, so a retry does not create duplicate jobs.
Add your own rules
The preflight returns two lists, problems and warnings, so you can add rules without changing its shape. Examples: a minimum duration to avoid accidental stubs, a check that the frame rate is not odd, a check that a Short with audio is not near-silent. Keep each rule tied to something you decided, not something you assume YouTube checks.
Store the output next to the file name in your batch log. When a Short underperforms, you can rule out the simple file issues first and look at the content.
Sources
- YouTube Help: YouTube channel monetization policies (read 2026-10-03)
- YouTube Help: YouTube Shorts monetization policies (read 2026-10-03)
- YouTube Help: Disclosing use of altered or synthetic content (read 2026-10-03)
- YouTube Help: Upload YouTube Shorts (read 2026-10-03)
- Video inspect (Sume docs)
- Search Engine Journal: YouTube to cut reach of reposted clips (read 2026-10-03)
Related posts
More in Developers
- Can an AI-made Short be Creative Commons on YouTube?
YouTube's status.license takes youtube or creativeCommon, but a Content ID claim blocks CC BY. What to check before you set it on an AI-made Short.
- YouTube tags limit: 500 characters, commas and quotes count
snippet.tags[] has a 500-character cap, and commas plus quotes around multi-word tags count toward it. A Python tag builder that stays under the cap.
- videos.insert embeddable and publicStatsViewable for a Shorts batch
status.embeddable and status.publicStatsViewable are settable on videos.insert. Set both explicitly in a Shorts batch body and check them with a small script.
- videos.insert OAuth scope: youtube.upload or force-ssl?
videos.insert accepts four OAuth scopes; videos.getRating gained youtube.readonly on Sept 1, 2026. Which to request for a Shorts pipeline and what Sume holds.
Written by Sume