Video length limits vary far more than character limits do, from Facebook Reels at 90 seconds to X at 125 minutes for Premium subscribers. Two things matter beyond the duration: almost every platform has a file size cap that binds before the duration cap for good quality footage, and at least one platform (TikTok) does not have a single global limit at all.
Maximum video length by platform
| Platform | Format | Maximum length | File size cap |
|---|---|---|---|
| Reels | 90 seconds | Not documented in the Reels guide | |
| Story | 60 seconds | 100 MB | |
| Reel | 15 minutes | 300 MB | |
| Threads | Post video | 5 minutes | 1 GB |
| YouTube | Shorts | 3 minutes | Covered by the upload cap |
| YouTube | Standard upload | 15 minutes by default, 12 hours verified | 256 GB or 12 hours |
| X | Standard account | 20 minutes | 8 GB |
| X | Premium / verified | 125 minutes | 16 GB |
| Feed video | 30 minutes | 500 MB | |
| Video Pin | 15 minutes | 2 GB | |
| TikTok | API post | Returned per creator | Not documented |
Note: Figures here were verified against first-party developer documentation as of September 2026: Meta’s Instagram Platform media reference and Reels publishing guide, Meta’s Threads API docs, YouTube Help and the YouTube Data API docs, docs.x.com’s media upload guide, LinkedIn’s Videos API docs on Microsoft Learn, Pinterest’s product specifications, and TikTok’s Content Posting API. Platforms change these without notice.
Minimum lengths, which nobody talks about
Several platforms reject videos for being too short, and this fails silently more often than the maximum does because nobody expects it.
| Platform | Minimum |
|---|---|
| Instagram Reels | 3 seconds |
| Instagram Stories | 3 seconds |
| Facebook Reels | 3 seconds |
| 3 seconds | |
| 4 seconds |
A two-second loop that works beautifully as a GIF is below the floor on every one of these.
The file size cap usually binds first
A 15-minute Instagram Reel at any reasonable bitrate is well over the 300 MB limit. A 30-minute LinkedIn video is well over 500 MB. In both cases the duration limit is theoretical and the file size limit is what you actually hit.
The fix is bitrate, not length. Re-encoding at a lower bitrate keeps the video within the cap and costs less visible quality than most people assume, because these platforms re-encode everything on their side anyway.
The tightest limit in your set is the real limit
If one export goes to several platforms, the shortest maximum governs. For the common vertical set:
| Set | Effective ceiling |
|---|---|
| Reels + Shorts + TikTok | 3 minutes (YouTube Shorts) |
| Reels + Shorts + TikTok + Facebook Reels | 90 seconds (Facebook Reels) |
| Stories across Instagram and Facebook | 60 seconds |
Adding Facebook Reels to a vertical distribution list cuts the workable length by more than half, which is worth knowing before the edit rather than after.
The per-platform detail lives in how long a TikTok video can be, how long an Instagram Reel can be, how long a YouTube Short can be, and Instagram Story length. The video length guide is the same table in a tool, if you want to check a single platform quickly.
TikTok is the exception
TikTok does not publish one maximum. Its Content Posting API returns a max_video_post_duration_sec per creator, and the documented example value is 300 seconds. A tool that assumes a fixed TikTok limit will be wrong for some accounts in both directions. This is the reason a video that publishes for one person’s account is rejected for another’s.
What to do
- Decide the destination set before the edit, not after.
- Cut to the shortest maximum in that set, or plan a second cut.
- Check the file size, not just the duration. It is usually the binding constraint.
- Respect the 3-second floor.
- For TikTok, read the account’s own returned maximum rather than assuming one.
Publishing one video across platforms
BulkPublish checks each platform’s duration and file size rules when a video is attached, so a clip that is fine for Reels and too long for Facebook Reels is flagged in the composer rather than failing at 7 am on the platform with the tightest cap. For TikTok specifically it reads the per-creator maximum from TikTok rather than assuming one.
The workflow version of this is in posting to TikTok, Reels and Shorts at once.