Facebook Page story API: media from an earlier post is rejected
Meta's Stories API says a story's photo or video cannot have been used in a published post. Make the story variant a new file with a Sume job, not the old URL.

Meta's Page Stories API lists a limitation: a photo or video uploaded for a story cannot have been used in a previously published post. So do not point a story at the file you already posted. Produce a separate story cut or still, and upload that.
The rule is Meta's, read 2026-10-01; the Sume steps come from the Video trim and Video frames docs.
What exactly does Meta say?
Under Limitations, the page says a photo or video uploaded for a story can not have been used in a previously published post, and that a video story can not exceed 60 seconds. Meta's page does not describe how the check works, so treat a re-encoded copy as a new file but test it on your Page.
How do I make a story variant from a feed video?
Run POST /v1/video-trim on the clip. The docs say it returns a **new** MP4 artifact holding only [start, end), with a new artf_ id and never the source. That is a different file from your feed upload.
How do I get a story photo from a clip?
POST /v1/video-frames extracts stills at times you name, as jpeg (default) or png. The docs mark it unbilled, and it needs the clip to be a media.sume.com artifact first, imported with POST /v1/media-imports. Keep the result under Meta's 10 MB photo cap.
| Need | Sume endpoint | Result |
|---|---|---|
| Shorter story video | /v1/video-trim | New MP4 artifact |
| Story still from a clip | /v1/video-frames | Image artifacts, unbilled |
| New generated image | Image generation job | Fresh media.sume.com URL per result |
What should I check before publishing?
Keep a record of which file went to a feed post and which to a story, and never reuse an id across both. Story ad sizes are in Instagram and Facebook Stories ad specs.
Sources
Related posts
More in Developers
- edge_fades_exceed_output: fade in and out too long for the video
Timeline 1.0 refuses fades that are too long: each edge fade is 0 to 5 seconds and fade in plus fade out must not exceed the output length.
- x-fal-billable-units header: WebSocket billing vs Sume receipts
fal bills WebSocket sessions via x-fal-billable-units headers. Sume has no such header: cost is a per-job ledger row you read back by job or run.
- Fix lens distortion in video by API with lenscorrection
Sume's video filter allowlists ffmpeg's lenscorrection, so barrel distortion from a wide action-cam clip can be corrected by coefficients you choose and test.
- FLUX.2 JSON prompt: on Sume it is text in the prompt field
BFL says FLUX.2 accepts JSON-structured prompts. On Sume, prompt is a plain string, so JSON goes in as text; other fields are typed.
Written by Sume