Free Tool

X Video Specs Checker

Drop a video and find out whether X will take it, before you sit through the upload. Container, codec, aspect ratio and duration, all checked in your browser.

Why X rejects videos

Almost always the codec. X accepts H.264 and rejects H.265 at upload, and modern phone cameras record H.265 by default. This tool reads the codec out of the file header locally, checks duration and size against the X API limits (20 minutes and 8 GB, or 125 minutes and 16 GB on Premium), and tells you what to re-encode. Nothing is uploaded.

Drop a video file here

MP4 or MOV. The file stays on your machine. There is no upload request in this page.

Duration and size are checked against the X API upload limits, which apply to posts made through schedulers and the API. The X app may apply different limits, and Direct Message video is capped at 140 seconds and 512 MB (10 minutes and 1 GB on Premium).

X video requirements

PropertyRequirement
ContainerMP4. MOV is accepted by the web uploader.
Video codecH.264 only. H.265 (HEVC) is rejected at upload.
Audio codecAAC. AC-3 and E-AC-3 are not accepted.
DurationThrough the API: 20 minutes on a standard account, 125 minutes on Premium. Direct Messages: 140 seconds, or 10 minutes on Premium.
Aspect ratioBetween 1:3 and 3:1. 16:9, 1:1, 4:5 and 9:16 display cleanly in the timeline.
File sizeThrough the API: 8 GB on a standard account, 16 GB on Premium. Direct Messages: 512 MB, or 1 GB on Premium.
Pixel formatyuv420p. 4:2:2 and 4:4:4 sources should be converted.

Duration and size limits are from the X API changelog entry of September 1 2026 and apply to video uploaded through the API, which is how schedulers and API tools post. The X app may apply different limits. Pixel format is listed for reference and is not checked by the tool.

Your file does not leave this device

There is no upload endpoint behind this page. Everything happens in the tab you are looking at, and you can confirm it: open the network panel in your browser dev tools, drop a file, and watch for a request that never comes.

The header is read in chunks

Blob.slice gives the tool a few kilobytes at a time. It walks the top level MP4 boxes to find moov without ever reading the video data.

The codec comes from the fourcc

Inside moov, the sample entry code is avc1 or avc3 for H.264, hvc1 or hev1 for H.265, mp4a for AAC. Four bytes decide the verdict.

Dimensions come from the browser

A hidden video element loaded from an object URL reports videoWidth, videoHeight and duration. The URL is revoked as soon as the metadata is read.

Schedule the video once it passes

OpenTweet uploads your media, schedules the post for the time you actually want it out, and can do the whole thing from a REST call or an AI agent through MCP. No sitting in the uploader at 9pm.

7-day free trial, then $19.99/mo. Cancel anytime.

X Video Specs FAQ

Why does my video fail to upload to X with no error?

The usual cause is H.265, also called HEVC. X rejects it at upload and accepts H.264 only. Modern iPhones and many Android cameras record H.265 by default, so the file plays fine everywhere else and dies at the X uploader.

How long can a video be on X?

Since X's September 1 2026 API update, video uploaded through the API can run up to 20 minutes and 8 GB on a standard account, and up to 125 minutes and 16 GB on a Premium account. That is the path schedulers and API tools use. The X app may apply different limits, and video in Direct Messages is still capped at 140 seconds and 512 MB, or 10 minutes and 1 GB on Premium.

Is my video uploaded to your server?

No. The file is read in your browser with the File and Blob APIs. The codec comes from parsing the MP4 box structure locally and the dimensions come from a hidden video element. No network request carries the file.

How can a web page detect the video codec without uploading the file?

An MP4 is a tree of boxes. The tool walks the top level boxes to find moov, then reads the four character sample entry code inside it: avc1 or avc3 for H.264, hvc1 or hev1 for H.265, mp4a for AAC audio. Only a few kilobytes of the file need to be read.

How do I convert H.265 to H.264 for X?

With ffmpeg: ffmpeg -i input.mov -c:v libx264 -profile:v high -pix_fmt yuv420p -c:a aac -b:a 128k output.mp4. On an iPhone you can also switch Settings, Camera, Formats to Most Compatible so future recordings are H.264 from the start.

What aspect ratios does X accept?

Anything between 1:3 and 3:1. In practice 16:9 for landscape, 1:1 for square and 9:16 or 4:5 for vertical are the ratios that display without cropping in the timeline.