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.

4 min readSume
All posts

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.

Bluesky social-app video limits, read 2026-09-30
Constant or releaseValue or note
VIDEO_MAX_DURATION_MS10 * 60 * 1000, 10 minutes
VIDEO_MAX_SIZE_MB300
1.132.0, 2026-09-03Removes multipart upload and 10-minute video feature gates
1.130.0 and 1.131.0Update 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

All Developers posts

Written by Sume