Bluesky Video Limits (2026): 10 Minutes, 300 MB, 720p
A Bluesky video can be up to 10 minutes long and up to 300 MB, both raised on August 25, 2026. The app takes MP4, MPEG, WebM, MOV and GIF, and stores every one of them as MP4. And whatever you send, Bluesky re-encodes it into exactly two streams — 360p and 720p — so 720 pixels on the short edge is the most any viewer saw in 299 videos I measured on September 2, 2026. That last part isn't in Bluesky's announcement, and it's the number that should actually change how you export.
The pages ranking for this query are stale in a very specific way. PostFast's Bluesky video page says "Up to 3 minutes (180 seconds)" and "100MB", stamped "Last verified: 2026-05-16". SocialKit's says "up to 3 minutes as of June 2026" and "commonly cited around 100 MB per upload". Both were right when they were written and both are now wrong by a factor of three. Both also tell you to export at 1920 × 1080 — which is fine advice about your master file and misleading about the result, because Bluesky never served a stream that big in anything I measured.
So I measured it: 299 real videos pulled off the network on September 2, 2026, each one timed from its own HLS playlist rather than from what its post claimed, and the announcement read out of the API rather than off a news write-up.
What Are Bluesky's Video Limits?
Ten minutes, 300 MB, and a 720p delivery ceiling that isn't published anywhere. Every row here comes from a primary source — Bluesky's app source, the AT Protocol lexicon, or a Bluesky post — rather than from another spec page:
| Limit | Value | Where it comes from |
|---|---|---|
| Max length | 10 minutes | VIDEO_MAX_DURATION_MS = 10 * 60 * 1000 in social-app constants |
| Max file size | 300 MB (decimal) | VIDEO_MAX_SIZE_MB = 300; the lexicon blob is maxSize: 300000000 |
| Accepted uploads | mp4, mpeg, webm, quicktime, gif | SUPPORTED_MIME_TYPES in the same file |
| Stored format | video/mp4 only | app.bsky.embed.video accepts ["video/mp4"] |
| Delivered quality | 360p + 720p, H.264 + AAC | measured across 299 videos, below |
| Alt text | 2,000 characters (app-side) | MAX_ALT_TEXT = 2000; the lexicon sets no limit of its own |
| Caption tracks | 20 in the protocol, 1 in the app | lexicon maxLength: 20; MAX_NUM_CAPTIONS = 1 in the composer |
| Daily allowance | 25 videos / 10 GB | Bluesky's video launch post, September 11, 2024 |
| Prerequisite | verified email | same post: "You must verify your email before you can upload a video" |
Two footnotes on that table. The 300 MB is ISO megabytes, and the source comment says so in as many words — "Maximum size of a video in megabytes, not mebibytes. Backend uses ISO megabytes" — so the ceiling is 300,000,000 bytes, about 286 MiB as your file manager counts. And the bottom two rows are the shakiest in the piece: both come from the 2024 launch post, which follows its own daily figure with "We may tweak this limit," and neither has been restated since. The authoritative live answer is app.bsky.video.getUploadLimits, which hands the signed-in account canUpload, remainingDailyVideos and remainingDailyBytes.
How Long Can a Bluesky Video Be?
Ten minutes, since August 25, 2026. TechCrunch and the rest of the news cycle dated it the 26th; the announcement itself is a post, timestamped 17:54 UTC the day before, and you can pull it straight out of the API:
Big video update! You can now post videos up to 10 minutes long, and they'll upload 2–3x faster. That's on top of the recent increase in maximum file size to 300MB. …
— @bsky.app, August 25, 2026
Over the following two days Bluesky quote-posted eight favourite long videos. I measured those eight plus the two videos hanging off the announcement thread itself, by fetching each one's HLS playlist and adding up the segment durations — the exact length of the file, not a rounded claim:
| Video | Measured length |
|---|---|
| "Sludgecam" by @neorsd.org | 9:58.5 |
| A 10-minute piece by @amybrown.xyz, quoted in the thread | 9:55.0 |
| "Tour of Western Railway BART Exhibit" by @bart.gov | 7:18.3 |
| "Electric Scooter Yule Log" by @cpsc.gov | 6:44.8 |
The other six landed between 4:02 and 5:10, including the announcement's own pick from @shing.bsky.social at 4:23.3. Nine minutes and 58.5 seconds is a very deliberate number, and nothing in the ten crosses 600 seconds — which is what an enforced ceiling looks like from outside, and a decent check that the cap is live rather than staged.
(One of the six is titled "Four Minutes and Nineteen Seconds of College Football Highlights" and measures 4:19.0 — when a video tells you its own length and the playlist agrees to the frame, the method is fine.)
How Long Are Bluesky Videos in Practice?
Half of them are under 24 seconds. Here's the part no spec page has. I took the accounts appearing in Bluesky's Discover feed, pulled up to the 10 most recent video posts from each through getAuthorFeed with filter=posts_with_video, and measured every clip the same way as above: 299 videos from 35 accounts, weighted equally per account and skewed recent (184 of them posted since August 1), with the oldest going back to September 2024. For each one I also read the raw post record, which carries the uploaded file's byte count in its blob reference.
| What I measured (n = 299) | Result |
|---|---|
| Median length | 23.3 s |
| 90th percentile length | 67.4 s |
| Longest in the sample | 181.5 s |
| 60 seconds or under | 254 of 299 (84.9%) |
| Two minutes or under | 293 of 299 (98.0%) |
| Median uploaded file size | 6.1 MB |
| Largest uploaded file | 65.3 MB |
| Files over 100 MB (the old cap) | 0 |
| Videos carrying alt text | 60 of 299 (20.1%) |
| Videos carrying a caption track | 0 of 299 |
(Discover is an algorithmic feed, so that's 35 accounts Bluesky already likes, not a random draw of the network. The shape is the finding — a distribution that dies before a minute — not the exact 23.3.)
Two of those rows matter more than the rest. For this kind of posting the size limit was never the binding constraint: the largest file in the sample was 65.3 MB, two-thirds of the old 100 MB cap and under a quarter of the new one, and only four videos cleared 33 MB at all. And almost nobody is using the new headroom: of the 127 videos posted on or after August 25, exactly one runs longer than the old three-minute cap, and it beats it by a second and a half. The median for that group is 30.4 seconds. A week after the ceiling tripled, the videos I sampled were still a 30-second medium. If you were waiting for permission to post something long, you have it, and you'd have very little company.
The zero in the captions row is the one that bothers me. The protocol has supported up to 20 WebVTT tracks per video since launch, the composer has a subtitle picker, and across 299 videos not one had a caption attached. Alt text at 20% is thin too — the same corner-cutting that leaves profiles reading badly to strangers, except this one locks people out of the post entirely.
Does Bluesky Compress or Crop Your Video?
It compresses hard. It doesn't crop at all. And the compression has a ceiling nobody documents: 720 pixels on the short edge. Of 299 videos, 297 were delivered at exactly 720 on the short edge — 720 × 1280 portrait, 1280 × 720 landscape, 720 × 720 square — and none went above it. (The two exceptions came back with 720 on the long edge instead: one sub-720 source, one post whose declared aspect ratio was transposed.)
Every video also came back as exactly the same shape of playlist. Two renditions, no more, no less:
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=1007178,AVERAGE-BANDWIDTH=964757,
CODECS="avc1.4d401e,mp4a.40.2",RESOLUTION=360x640
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=3508080,AVERAGE-BANDWIDTH=3282898,
CODECS="avc1.4d401f,mp4a.40.2",RESOLUTION=720x1280
That mp4a.40.2 answers a question people ask a lot: yes, Bluesky video has audio — AAC, muxed into each rendition rather than served as a separate track.
The 720p rung is a ceiling rather than a fixed rate. Across the 196 videos where I read the average bitrate, the median was 3.21 Mbps, the 90th percentile 3.37 and the maximum 3.84 — but a third of them (65 of 196) came in under 3.0 Mbps and the 10th percentile is 1.23. The top is a target; the bottom is whatever the source gave it.
Which produces the result I had to re-run twice. Compare the bytes Bluesky serves against the bytes the poster uploaded, and in 160 of those 196 cases the delivered stream is bigger than the original file — median ratio 1.12. Phone clips are usually already under 3 Mbps, so squeezing your export before uploading spares your viewers nothing; it just hands the encoder a worse source to re-encode at its own rate. Send it clean, 720p, and let the transcode do its job.
The two new numbers also land suspiciously close together. Ten minutes at that median 3.21 Mbps is about 241 MB of delivered video, a little under the 300 MB cap. I can't tell you that's how the cap was chosen — the 300 MB governs the file you send, not the stream Bluesky sends back — but the two limits are the same size of thing.
On cropping: the delivered aspect ratio matched the aspectRatio declared on the post in 266 of 272 cases where the post declared one, and all six mismatches were exact width/height transpositions, i.e. rotation metadata the uploading client got wrong. Your video is not being trimmed. What gets constrained is the preview in the feed — a tall video shows in a bounded frame and opens to its full shape on tap. That distinction matters for the same reason banner dimensions do: the safe area you compose for isn't the file you upload.
What Is the Best Video Format for Bluesky?
H.264 MP4, AAC audio, 720p on the short edge, exported clean rather than compressed small. Everything above that is spent on the transcoder rather than on your viewer. The app will accept video/mp4, video/mpeg, video/webm, video/quicktime and image/gif, but all 299 records I read stored mimeType: video/mp4 — whatever you pick gets converted before it lands in your post, so picking MP4 yourself removes one conversion that can fail.
A GIF is the interesting case in that list. image/gif is in the app's supported types, and 8 of my 299 records carried presentation: "gif" — the lexicon hint that says "play this like a GIF." A GIF you upload isn't stored as a GIF at all; it becomes an MP4 with a flag on it.
Why Did My Bluesky Video Fail to Process?
Because it never finished transcoding, which means it was never posted — the error is about the upload, not about the clip being hidden. Work the causes in order of how likely they are:
- Over the caps. More than 10 minutes, or more than 300,000,000 bytes.
- Unverified email. Bluesky's launch post is explicit that email verification gates video upload, and the check is server-side, so the app can let you attach a clip you're not allowed to publish.
- Daily allowance exhausted. The published figure is 25 videos / 10 GB per day, with the caveat that it may change;
getUploadLimitsreturnscanUpload: falsewith a message when you're out. - The transcode simply failed. It surfaces as a failed job status rather than as a broken post — re-export as plain H.264 MP4 (no exotic pixel formats, no 10-bit HDR, audio as AAC) and try again.
If the video posted but won't play for other people, that's a different problem and usually a client-side one: the playlist is public and unauthenticated, so a failure there is a network or app issue rather than a permissions one.
Should You Post Video to Grow on Bluesky?
It's a decent format on a text-first network, and it is not a distribution shortcut. In the Discover sweep I ran the same afternoon, 48 of 595 posts carried native video, against 409 carrying images — so video is a small minority of what people actually see, and posting one doesn't buy you an audience that isn't already there.
That's the harder problem, and a great clip posted to nobody is still posted to nobody. Building the audience that watches it is the gap Agent Sky fills — I sell the thing, so take the pitch with that in mind: $9 a month, free to start. You describe the niche you want in plain words instead of hunting profiles one at a time, and it follows accounts inside Bluesky's published rate limits rather than in a burst, confirming a follow-back really happened before it unfollows anyone. When I last re-ran our own numbers on August 26, 2026, the median Agent Sky account had gained +326 followers over the trailing 30 days (median across the 20 accounts with a full 30-day history).
Then the craft part is small and cheap: 720p, alt text, and 300 characters of context around it — which is its own discipline.
Ten minutes is a real change, and eight days in, one video in my sample had used more than three of them. The measurement I'd actually act on is the other one: whatever you shot it on, everyone watching it is watching 720p.
Quick FAQ
What is the Bluesky video limit?
Ten minutes and 300 MB per video, as of August 25, 2026, when Bluesky posted "You can now post videos up to 10 minutes long, and they'll upload 2–3x faster. That's on top of the recent increase in maximum file size to 300MB." The app's own source agrees: VIDEO_MAX_DURATION_MS is 10 * 60 * 1000 and VIDEO_MAX_SIZE_MB is 300, and the video blob in the post lexicon has maxSize: 300000000 with the note "May be up to 300mb, formerly limited to 100mb." That 300 is decimal megabytes, not mebibytes. Pages still quoting three minutes and 100 MB are describing the limits as they were before that week.
Does Bluesky compress or crop your video? It compresses, and it does not crop. All 299 videos I measured on September 2, 2026 came back as exactly two renditions, and 297 of them were capped at exactly 720 pixels on the short edge — upload 4K and viewers still get 720p. (The two exceptions were capped at 720 on their long edge instead: one sub-720 source, one post whose declared aspect ratio was transposed.) Cropping is the opposite story: the delivered aspect ratio matched the ratio declared on the post in 266 of 272 cases, so the file itself is left alone. It is the feed preview that gets trimmed to fit, not your video.
What is the best video format for Bluesky?
An H.264 MP4 with AAC audio, at most 720p on the short edge, and don't pre-compress it. The app accepts video/mp4, video/mpeg, video/webm, video/quicktime and image/gif, but all 299 records I read stored mimeType: video/mp4 — anything else is converted before it lands in your post. Exporting above 720p only buys the transcoder a better source, never your viewer a better picture, and squeezing the file first is counterproductive: Bluesky re-encodes at up to ~3.2 Mbps regardless, and in 160 of 196 cases the stream it served was larger than the file the poster uploaded.
Why did my Bluesky video fail to process?
The usual causes are order-of-magnitude ones, in this order: the clip is over 10 minutes, or over 300 MB, or the account's email is not verified, or the daily allowance is gone — Bluesky's 2024 launch post put that at "25 videos / 10 GB of video per day," immediately adding "We may tweak this limit." The live check is app.bsky.video.getUploadLimits, which returns canUpload, remainingDailyVideos and remainingDailyBytes for the signed-in account. Transcodes also fail on their own, and the failure surfaces as a job status rather than a post, so the clip never publishes at all. Re-export as a plain H.264 MP4 and try again.