Bluesky video length limit: 10 minutes, and how to trim to fit
Bluesky's app sets VIDEO_MAX_DURATION_MS to 10 minutes, and 1.132.0 removed the 10-minute gate. Trim longer clips with Sume video trim first.

The Bluesky app's constants file sets VIDEO_MAX_DURATION_MS to 10 minutes, so a video longer than that is over the limit. Release 1.132.0 (2026-09-03) removed the "10-minute video feature gates", which means the cap is now the plain constant, not a beta flag. Cut longer footage to under 600 seconds before posting.
Bluesky facts are from the social-app repository, read 2026-09-30. This post covers duration; size is in the 300 MB post.
What changed in the Bluesky app?
The release notes list 1.130.0 and 1.131.0 as updating the video lexicon and beta features for 10-minute uploads, then 1.132.0 removing the multipart-upload and 10-minute gates. The constants file also carries a 300 MB size cap, stated in megabytes, not mebibytes.
| Constant or release | Value or note |
|---|---|
VIDEO_MAX_DURATION_MS | 10 * 60 * 1000, 10 minutes |
VIDEO_MAX_SIZE_MB | 300 |
| 1.132.0, 2026-09-03 | Removes multipart upload and 10-minute video feature gates |
| 1.130.0 and 1.131.0 | Update video lexicon and beta features for 10-minute uploads |
How do I cut a long video under 10 minutes?
Sume video trim cuts a range out of one Sume-hosted clip into a new MP4. The docs give duration as 0.2 to 900 seconds, so a 600-second cut is well inside the range. The default precision is exact, a frame-accurate re-encode with libx264 and yuv420p. There is no open-internet fetch, so import the file first with POST /v1/media-imports.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Idempotency-Key: bsky-cut-001" \
-H "Content-Type: application/json" \
-d '{"video_url":"https://media.sume.com/<your-imported-clip>","start":0,"duration":599}'What if the source is longer than 15 minutes?
The trim docs cap the output at 900 seconds and the source at 1800, so each trim yields one piece up to 15 minutes. For a longer talk, cut it into several posts, or cut the highlights and join them with Timeline 1.0, which accepts audio.duration_seconds from 1 to 1800. Check the joined length against the 10-minute cap before you post it.
What should I check before posting?
Read the trim result's duration_seconds, confirm it is under 600, and confirm the file is under the size cap. If it is too big, output lets you conform to a smaller width, height and fps on the way out (exact precision only). Related: TikTok's 10-minute limit uses the same trim step.
Sources
Related posts
More in Developers
- CapCut captions API: black-outline and korean-ad styles
CapCut has no captions API in the pages we read. Sume's POST /v1/video-captions burns a white-on-black-outline look with style black-outline.
- Customize caption colors via API: not on punch or tiktok-green
Sume's design overrides change caption colours, weight, placement and motion per request, but punch and tiktok-green ignore them. Which styles accept design.
- caption_font_requires_hangul_style: why font returns 400
Sume's font field on video captions is Hangul-only: sending it with slam, punch or tiktok-green returns 400 caption_font_requires_hangul_style.
- caption_hangul_text_latin_style: the 400 and the fix
Sume returns 400 caption_hangul_text_latin_style when Korean copy is sent to slam, punch or tiktok-green. Name a Hangul style such as black-outline instead.
Written by Sume