Cut a video to 15 seconds for Reddit Engaged Video Views
Reddit began a 15-second Engaged Video Views beta in September. Cut any hosted clip to 15 seconds with Sume video-trim for a flat $0.02, exact or keyframe.

POST the clip to /v1/video-trim with a start and a duration of 15, and you get a 15-second cut for a flat $0.02 a job. Sume does not buy Reddit placements or publish to Reddit; it makes the file. The cut is the part you can automate.
The prompt for this is a platform change. A roundup of social updates reports that Reddit started a beta for 15-second Engaged Video Views on 2026-09-01 (Orthotropy, read 2026-10-06). If a measured view is tied to a 15-second window, the first 15 seconds of your video carry the weight, and a script that reliably produces them is worth having.
The call
Send video_url, which must be a media.sume.com artifact from your workspace, so import external files first. Give start in seconds and exactly one of end or duration. Send both and you get video_trim_range_conflict. Duration must be between 0.2 and 900 seconds, and the source can be up to 1,800 seconds (Sume docs: Video trim, read 2026-10-06). An Idempotency-Key is required.
import os, requests
H = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"],
"Idempotency-Key": "reddit-cut-clip42-start0-d15"}
body = {
"video_url": "https://media.sume.com/artifacts/artf_demo/launch.mp4",
"start": 0,
"duration": 15,
"precision": "exact",
"audio": "keep",
"mode": "sync",
}
r = requests.post("https://api.sume.com/v1/video-trim",
json=body, headers=H, timeout=60)
print(r.status_code)
print(r.json())Choosing the first 15 seconds
Start at zero only if the opening is your best moment. For a longer video, the better 15 seconds may begin at the hook, at the first line of speech or at the first product shot. Inspect the clip with a transcript to see where the first sentence begins, then trim from there. If the clip is shorter than your range, the job returns a trim_clamped_to_source warning instead of failing, so check the warnings before you assume you got 15 seconds.
Exact or keyframe
Precision exact is the default and cuts at the instant you ask for. Keyframe is faster and snaps to a keyframe, so the actual start can differ, and the result reports actual_start_seconds. For a 15-second window, exact is the safer choice: a start that slips by a couple of seconds changes what the first 15 seconds contain.
The default mode is async, and sync waits up to 30 seconds. A short cut usually finishes inside that, but be ready to poll the job when you get a 202.
| Field | Value for this job | Note |
|---|---|---|
| start | 0 or the hook | Seconds, at least 0 |
| duration | 15 | One of end or duration only |
| precision | exact | Keyframe may shift the start |
| Price | $0.02 per job | Flat |
Do not overclaim
A 15-second cut does not guarantee a view counts, and the program is a beta whose rules can change. Check Reddit's own documentation before you design around it. What the cut gives you is a clean, predictable file to test with.
Make it repeatable
For a library of clips, loop over them with one trim call each and a key built from the clip id, the start and the duration. A rerun then replays instead of paying twice. Keep the list of clips and starts in a file so a change in strategy, say starting at the hook rather than at zero, is one edit and one rerun.
Check each output's duration before you upload anywhere. A cut that was clamped to a short source will be under 15 seconds, and the warning on the job is how you find out.
Two more fields matter for a social cut. audio is keep by default and can be set to drop for a silent version, and with exact precision the kept audio is remuxed as AAC. The optional output block, width, height and fps, conforms the result and works only with exact precision: sizes are 256 to 2160, and fps is 24, 25, 30 or 60, and if you leave it out the output keeps the source values (Sume docs: Video trim, read 2026-10-06). The result also carries duration_seconds and actual_start_seconds, so log both next to the clip id; they are the proof that a file is really 15 seconds long and where it started.
Sources
Related posts
More in Agents
- Keyframe or exact video trim for pause cuts: read actual_start_seconds
Exact trim cuts where you say; keyframe trim is faster but snaps to a keyframe. For pause cuts that decides whether words get clipped. How to choose and check.
- Lower the spend cap for one scheduled Sume run: overrides only go down
A per-run generation_spend_cap_usd on a scheduled run is clamped to the schedule's own cap. You can lower it for one run but never raise it. How it works.
- Guardrails for an agent calling paid APIs: key, cap, and what to log
An agent calling a paid media API needs three habits: an idempotency key on each write, a spend cap per run, and logs that hold ids, never signed URLs or keys.
- Render a Short from an agent: hosted MCP tool order
Which Sume hosted MCP tools an agent calls, in order, to import, inspect, cut and render a vertical Short, with idempotency_key rules and what stays on REST.
Written by Sume