YouTube Shorts 2x speed: check your script pace with video-inspect
Viewers can now double Shorts playback speed. Measure the words per minute of your Sume clip from its transcript so the 2x version stays understandable.

What does 2x playback mean for a Short I already made?
YouTube says viewers can now double the playback speed of a Short, as part of Shorts player updates that started rolling out on June 25, 2026. Your voice, captions and cuts all run at twice the speed, so a script that sounds relaxed at normal speed can be hard to follow at 2x.
You cannot control whether a viewer turns it on. You can measure how fast your clip talks, and decide whether the pace and caption timing survive being doubled.
The arithmetic of doubling
Doubling the speed halves the running time and doubles the words per minute a viewer hears. These are plain arithmetic on example inputs, not YouTube figures and not a recommended range.
| Pace as made (words per minute) | Heard at 2x | A 45-second Short plays in |
|---|---|---|
| 120 | 240 | 22.5 seconds |
| 150 | 300 | 22.5 seconds |
| 180 | 360 | 22.5 seconds |
Measure the pace from the transcript
Sume's video inspect route can transcribe a clip you have imported. With transcribe: true it returns word-level timings, seconds from the start of the video. The public rate is $0.01 per audio minute, and the docs say to confirm it in the catalog. Set frames to false so you do not ask for stills you will not use.
The script below divides the number of timed words by the span from the first to the last word. Punctuation tokens can slightly inflate the count, so read the result as an estimate. The default mode waits up to 30 seconds; if you get a 202, poll GET /v1/video-inspect/:id instead.
import asyncio, os, httpx
URL = "https://media.sume.com/artifacts/artf_demo/short.mp4"
HEADERS = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "pace-check-001"}
async def main():
async with httpx.AsyncClient(base_url="https://api.sume.com",
headers=HEADERS, timeout=60) as c:
r = await c.post("/v1/video-inspect", json={
"video_url": URL, "frames": False,
"transcribe": True, "duration_seconds": 60})
r.raise_for_status()
if r.status_code != 200:
print("queued; poll GET /v1/video-inspect/" + r.json()["request_id"])
return
words = [w for w in r.json()["video_inspect"]["transcript"]["words"]
if w.get("word", "").strip() and "start" in w and "end" in w]
span = words[-1]["end"] - words[0]["start"]
wpm = len(words) / span * 60
print(f"{wpm:.0f} wpm now, about {wpm * 2:.0f} at 2x")
asyncio.run(main())Make captions that survive a faster clip
Captions that linger are easy to read at normal speed and still readable at 2x, because they stay up for half the time but are short. Captions that pack many words into one card are not. In video captions, a style is a set of design tokens, and design.phrasing lets you change max_words, max_chars and pause_seconds for one request. The docs say numbers outside their documented range come back as a 400 at request time, so a bad value fails before anything renders or bills.
To compare two looks without transcribing twice, pass source_caption_id instead of video_url. Pair each caption variant with the pace you measured and keep the faster-reading one.
- Measure the pace first, then pick caption phrasing.
- Use shorter phrases when the pace is already brisk.
- Rerun the estimate whenever the script changes.
What to change if the number is high
Cut words rather than rushing the read. If you generate the voice in Sume, shorten the script and rerun. If you burn captions with video captions, the design.phrasing fields (max_words, max_chars, pause_seconds) control how much text shows at once, so you can keep each line short enough to read when the clip runs twice as fast.
Re-measure after every script change. The estimate costs a cent per audio minute, so there is no reason to guess.
- Measure the exact file you will upload.
- Keep one idea per caption line.
- Put the most important word of the hook inside the first second, because a 2x viewer has half as long to see it.
Sources
Related posts
More in Media tools
- YouTube Shorts Clear screen mode: check your burned-in text
Clear screen hides icons and text from the Shorts playback view. How to pull stills from a Sume clip and check which words stay in the picture.
- YouTube Shorts tap to mute: sound-off captions from cues
A tap now mutes a Short. If your Sume clip has music only or a silent video, burn authored cues with video-captions so the message still reads.
- YouTube wants JPG or PNG; Recraft V4 on Sume returns WebP only
YouTube's thumbnail page names JPG or PNG. Recraft V4 on Sume lists only WebP, so convert it with Pillow and stay under the 2 MB mobile cap.
- YouTube video blurry after upload? Wait for HD, then check the file
YouTube Help says HD and 4K take longer to process and Studio shows the estimate. Check the Sume file's size with video-inspect before you blame processing.
Written by Sume