Drop your export. Find out exactly why YouTube, Shorts, TikTok, Reels or X will reject, letterbox or crush it — before you spend an hour uploading it.
🔒 Runs entirely in your browser — your video is never uploaded| Platform | Aspect | Resolution | Max length | Max size |
|---|---|---|---|---|
| YouTube Shorts | 9:16 | 1080×1920 | 3 min | 256 GB |
| YouTube (landscape) | 16:9 | 1920×1080 | 12 hr | 256 GB |
| TikTok | 9:16 | 1080×1920 | 10 min | 4 GB app / 1 GB web |
| Instagram Reels | 9:16 | 1080×1920 | 15 min | 4 GB |
| X / Twitter | any | 1920×1080 | 2:20 | 512 MB |
Nine times out of ten it is the codec, not the file. A .mov straight out of
Final Cut or Premiere is often Apple ProRes or DNxHD — perfectly valid video
that no social platform ingests. The uploader accepts the file, chews on it, and
then fails silently or sits at 0% forever. Re-export as H.264 in an MP4.
upload-lint reads the codec fourcc straight out of the file's stsd box and tells you which one you have.
You exported landscape. Vertical feeds are 9:16 (1080×1920); a 1920×1080 landscape file gets pillarboxed into a strip about a third of the screen height, which crushes watch time. This is the single most common avoidable mistake and it is invisible until the video is already live.
Check whether it has an audio track at all. Exporting a timeline with the audio track disabled, or using a "video only" preset, produces a file that plays fine locally (you hear nothing and assume the room is quiet) and gets suppressed once posted — silent clips are heavily deprioritised in every short-form feed.
An MP4 stores its index — the moov atom — either at the front or the back.
If it is at the back, a player or uploader must read the entire file before it knows
anything about it. That is why some exports stall at 99% or time out in a browser
uploader. Most encoders call the fix "faststart" or "optimise for web".
30 or 60 fps for short-form. 25/50 fps is the PAL standard and uploads fine, but feeds tuned for 30/60 will re-time it. Above 60 fps the platform re-encodes and the result is usually worse than if you had exported 60 in the first place. Mixing frame rates across a series is the one that really hurts — the cuts judder.
1280×720 minimum, 16:9, and under 2 MB. JPG or PNG — the uploader rejects WebP, which is now the default export in several design tools. Drop your thumbnail in above alongside the video and it gets checked too.
No. There is no server to upload to. The checker reads the file's headers with
File.slice() in your own browser — a few kilobytes out of a multi-gigabyte
export never leave your machine. You can put your laptop in airplane mode after the page
loads and it still works.