Non-skippable YouTube ads: cut a 75-second spot to 60 with Sume

Google Ads lists non-skippable in-stream at 60 seconds or shorter. Drop 15 seconds from the middle of a 75 second spot with Sume detach and Timeline: $0.11.

4 min readSume
All posts

Google Ads help lists non-skippable in-stream ads at 15 to 60 seconds depending on the subtype, and its text says 60 seconds or shorter. A 75 second spot has to lose 15 seconds. If the cut is in the middle, a plain trim will not do it; use audio detach ($0.01) and one Timeline render ($0.10) with two slots, $0.11 in total.

What the page says

Values from Google Ads help, read on 2026-10-08. The page gives other limits for other formats; only non-skippable and bumper are relevant here.

In-stream length limits, read 2026-10-08
FormatLength text
Non-skippable in-stream15 to 60 seconds by subtype; 60 seconds or shorter
Bumper5 to 6 seconds
Skippable in-streamNo maximum; under 3 minutes recommended

Plan the cut

Keep the first 30 seconds and the last 30 seconds, and drop seconds 30 to 45 of the 75 second spot. That is two slots of 30 seconds, a 60 second output. Video slot one starts on the timeline at 0 with source_in 0. Slot two starts at 30 with source_in 45. The voice follows the same plan: audio.parts takes up to 20 slices, each with a url, an optional source_in and a duration.

First detach the voice track, which gives a durable audio artifact. Then send the two-slot render.

curl -X POST https://api.sume.com/v1/timeline-1.0/render \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: spot-60-001" \
  -d '{"audio":{"parts":[{"url":"https://media.sume.com/artifacts/artf_demo/voice.wav","source_in":0,"duration":30},{"url":"https://media.sume.com/artifacts/artf_demo/voice.wav","source_in":45,"duration":30}],"duration_seconds":60},"video":[{"source_url":"https://media.sume.com/artifacts/artf_demo/spot.mp4","start":0,"duration":30,"source_in":0},{"source_url":"https://media.sume.com/artifacts/artf_demo/spot.mp4","start":30,"duration":30,"source_in":45,"transition":{"type":"fade","duration":0.25}}]}'

The arithmetic

Audio detach is $0.01 per job. Timeline is $0.10 per output minute, rounded up, so a 60 second output is one minute: $0.10. Together that is $0.01 + $0.10 = $0.11.

The edge matters. An output of 60.5 seconds is billed as two minutes, 2 x $0.10 = $0.20, and it also breaks Google's 60 second limit. Keep the slot durations summing to exactly 60. If the spot has a title card or logo end frame you cannot lose, shorten the middle cut instead of the ending, so the last frame stays intact.

  • Two slots of 30 seconds equal 60 seconds.
  • A 0.25 second fade between them softens the jump; transitions run up to 1 second.
  • Run /plan first: it is unbilled and shows whether the request compiles.

Check the join

Pull a few frames around the cut with video frames, for example at 29, 29.8, 30 and 30.5, and listen to the join. If the speech is cut in the middle of a word, move source_in for slot two to the start of the next sentence; video inspect with sentence segments gives you those times. Speech-to-text there is $0.01 per audio minute plus Modal compute, so reading a 75 second spot costs about $0.0125 before compute (75 / 60 x $0.01). If the join still sounds abrupt, lengthen the fade to 0.5 seconds, which is inside the 1 second transition limit, and check again with /plan before re-rendering. Keep the total at 60 seconds: a longer fade that eats into a slot does not change the length, but moving a slot boundary does.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume