ig_reels_avg_watch_time: cut a shorter Reel with Sume video trim
ig_reels_avg_watch_time is the average time spent playing a Reel. If it sits far below your length, trim a tighter cut with Sume video trim and compare.

ig_reels_avg_watch_time is defined by Meta as "the average amount of time spent playing the reel". If the average sits well under your runtime, the tail is mostly unwatched, and a shorter cut is a cheap experiment: Sume's video trim can produce a new MP4 for [start, end) at $0.02 per job.
The metric definition is from Meta's IG Media insights page, read 2026-10-02. Trim facts are from the video trim docs. Sume does not read Instagram insights, so you bring the number.
What does the metric tell me, and what does it hide?
Average watch time is one number per Reel. It blends people who left at second 2 with people who watched to the end, so a 30-second Reel averaging 9 seconds could mean either a steep drop or a bimodal audience. Meta's page lists a companion, ig_reels_video_view_total_time, which counts all time played including replays and is marked in development.
Use the ratio, average watch time divided by runtime, as a rough health check. It is not a Meta-defined metric, just arithmetic on two numbers you already have.
- Ratio near 1: viewers finish; length is probably fine.
- Ratio well under 0.5: the back half is carrying little.
- Replays can push the average up, so read it with the total-time metric.
How do I cut the shorter version?
Send the source's media.sume.com URL, a start, and exactly one of end or duration. Output must be at least 0.2 seconds and at most 900 seconds; the source can be up to 1800 seconds. An end past the source clamps and warns trim_clamped_to_source.
Default precision is exact, a frame-accurate libx264 re-encode. keyframe is a stream copy that is faster but can start up to a GOP early, so re-base against actual_start_seconds in the result. For a Reel you will publish, exact is the safer default.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: reel-a-tight-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/reel-a.mp4",
"start": 0,
"end": 14,
"audio": "keep"
}'How do I get the file back?
Trim defaults to mode: async and has no GET /v1/video-trim/:id. Poll GET /v1/jobs/:id/status, then read GET /v1/jobs/:id/result, which is kind: video_trim with a new video_url. The source is untouched, so your original stays available for the comparison.
If you would rather not poll, the docs describe a webhook mode; see Webhooks and Jobs and results.
How do I judge whether the shorter cut won?
Publish it as a separate Reel, not an edit of the old one, and compare the same metrics after similar exposure. One cut changes more than length: it changes the ending, so a better average watch time may simply come from a shorter denominator. Compare shares and saves alongside it.
Honest limits: Sume does not publish to Instagram for you, and a trimmed clip cannot repair a weak hook. For hook testing see reels_skip_rate and video inspect.
| Field | Value | Effect |
|---|---|---|
| precision | exact (default) or keyframe | Re-encode versus stream copy |
| end / duration | Exactly one | Duration 0.2 to 900 seconds |
| audio | keep (default) or drop | Drop for music-only edits |
| Price | $0.02 per job | Confirm live in GET /v1/catalog |
What are the common mistakes?
The first is cutting the ending that carries the call to action. A shorter Reel with no payoff can raise average watch time and lower everything you actually care about. The second is cutting mid-word: use exact precision and check the new file's first and last second before publishing.
The third is judging too early. Average watch time moves as distribution widens, so compare after a similar number of views rather than a similar number of hours. If you only have one account, alternate cut lengths over several posts instead of reading a single pair.
Sources
Related posts
More in Developers
- Is there an Instagram webhook when a Reel finishes processing?
Instagram's webhook field list has no Reel-finished event, so poll status_code. Sume job webhooks are signed; verify them with a secret that cannot be empty.
- Instagram Reels resumable upload (rupload) vs a public video_url
Instagram Reels can publish from a public video_url or a resumable rupload. Resumable is Facebook Login only; check your Sume media link is reachable first.
- Reels views vs crossposted_views vs facebook_views: which to report
Instagram Reels insights list views, crossposted_views and facebook_views separately. Which to report, and how to trace Sume-made variants.
- Clickable transcript from Sume STT word timestamps in Python
Turn a Sume speech-to-text result into HTML where each word seeks the audio player to its start time. Runnable Python, with the result envelope handled safely.
Written by Sume