Cloudflare Stream clip API vs Sume video trim: start and end

Cloudflare Stream clips by posting a source UID with startTimeSeconds and endTimeSeconds. Sume video-trim takes start plus end or duration, returning a new MP4.

4 min readSume
All posts

Cloudflare Stream clips a video with one POST to its stream/clip endpoint: you send clippedFromVideoUID, startTimeSeconds and endTimeSeconds, and Stream makes a new video that is Queued until it turns Ready. Sume's video trim does the same job for a clip you already hold on media.sume.com: POST /v1/video-trim with video_url, start, and exactly one of end or duration, and the result is a new MP4 artifact.

Cloudflare's side comes from its Clip videos page, read 2026-10-02. Sume's side comes from the video trim docs. The two differ less in the cut than in what comes back: Cloudflare returns a new video inside your Stream library, Sume returns a file URL you pass to the next step.

What does the Cloudflare clip request look like?

The page's example posts clippedFromVideoUID, startTimeSeconds 10 and endTimeSeconds 15 to https://api.cloudflare.com/client/v4/accounts/<account id>/stream/clip. Optional fields on the same page: meta.name for the new name, watermark.uid, requireSignedURLs, and thumbnailTimestampPct (a 0 to 1 fraction, so 0.5 is the 50% mark). The page also says a clipped video does not inherit the source's scheduledDeletion date; set it after clipping.

How does the same cut look on Sume?

Sume video trim needs video_url on this workspace's media.sume.com host (import first with POST /v1/media-imports), a start of 0 or more, and **one** of end or duration. Sending both is video_trim_range_conflict; neither is video_trim_range_required. Idempotency-Key is required. The default mode is async; mode: "sync" waits up to 30 seconds.

When the job is result_ready, GET /v1/jobs/:id/result returns kind: video_trim with a new video_url, duration_seconds and actual_start_seconds. The source is untouched. The public rate is $0.02 per job.

curl -X POST https://api.sume.com/v1/video-trim \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: clip-10-15-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "start": 10,
    "end": 15
  }'

Which Cloudflare options have a Sume equivalent?

Start and end map directly. The extras do not live on trim: a still for a thumbnail is video frames at a time you name, and putting a still over a clip is timeline compose with operation: "overlay". Signed URLs and a deletion date are Stream library settings with no Sume counterpart on this endpoint.

Cloudflare options from its Clip videos page and Sume fields from the video trim docs, read 2026-10-02.
NeedCloudflare Stream clipSume video trim
SourceclippedFromVideoUIDvideo_url on media.sume.com
In pointstartTimeSecondsstart, seconds, 0 or more
Out pointendTimeSecondsend or duration (one of them); duration 0.2 to 900
ResultA new Stream videoA new MP4 artifact; fetch video_url from the job result
ThumbnailthumbnailTimestampPctSeparate call: /v1/video-frames

What should I check before cutting?

Sume refuses an end at or before start, or a range over 900 seconds (video_trim_range_empty). An end past the source clamps and the result carries a trim_clamped_to_source warning. The source can be up to 1,800 seconds. Run video inspect first if you do not know the length.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume