Which MP4 to pick from an X post
X publishes the same video in several MP4 renditions. They often share a resolution and differ in bitrate, which is why the highest row of the list is not always the one you want.
Paste a post link and you get the video's renditions as X lists them, highest resolution first. That order is a starting point, not a verdict: resolution is only the frame size, and two files at the same frame size can differ enormously in how much data backs each second of picture.
What the resolver reads
X does not require a login for this. The resolver asks X's public syndication endpoint (cdn.syndication.twimg.com/tweet-result) for the post, using the same signed token scheme the embedded timeline uses. The response carries the post's text, its author, and a videos array with every MP4 rendition X keeps for it.
Only videos and GIFs are kept. On X, an animated GIF is delivered as an MP4 file, so a GIF post downloads as a video with no sound — which is exactly what the platform stored. Posts where the only video is a live broadcast, or where X returns no muxed MP4 at all, answer no_video.
How the labels are built
- If the file's URL names a frame size (
…/1280x720/…), the label is that size. - If it does not, the label is the bitrate rounded to kbps.
- If neither is present, the row is simply
MP4. - Rows are sorted by width, widest first — not by bitrate.
That last point matters. X's renditions are not a smooth ladder: a post can carry a 1280-pixel file at a low bitrate and a 720-pixel file at a much higher one. The wider file is larger on screen; the smaller one can look better in motion, because more bits are spent on each pixel.
A worked comparison
| Row | Frame | What it is good for |
|---|---|---|
| 1280×720 at a low bitrate | Wide frame, thin data per pixel | Screens where you need the full frame and can accept soft motion. |
| 720×720 at a high bitrate | Square frame, heavy data per pixel | Cleaner motion and cleaner detail, but a smaller picture. |
| 480×270 (the mobile cut) | Small frame | The only rendition some older posts carry; accept the size or skip it. |
A practical rule: pick the widest row unless it looks visibly mushy compared to the next one down. When in doubt, download two and compare the file sizes — a file that is twice as heavy at half the frame size is spending its bits on motion and detail.
Why the download is a navigation, not a progress bar
The video files live on video.twimg.com, which does not send CORS headers for this kind of request. The page therefore cannot read the bytes with a script, so the download button opens the CDN link directly and your browser saves the file. The upside is that nothing of the video passes through this site; the downside is that there is no percentage counter.
What cannot be downloaded
Protected accounts, deleted posts and age-restricted posts return an error, because X itself hides them from anonymous readers. The resolver never signs in and never bypasses that. video.twimg.com URLs cannot be pasted on their own either — the resolver starts from a post link, since only the post payload names the renditions.
The short version
- Rows are sorted by frame width, not by quality.
- Two renditions can share a resolution and differ in bitrate; the heavier file usually looks better.
- GIF posts arrive as MP4 files, because that is what X stored.
- Public posts only — protected and deleted posts stay hidden.
- Nothing is stored or re-encoded; the file comes straight from X's CDN.
Questions
Why does the highest row not look the best?
Because the list is sorted by frame width, and a wider frame is not necessarily a heavier file. If a smaller row carries more bits per pixel, it can look cleaner in motion. Compare the file sizes before assuming the top row wins.
Can I download a video from a protected X account?
No. X does not expose protected posts to anonymous readers, and this tool does not sign in or bypass that. Public posts are the only ones that resolve.
Why is there no progress bar for X downloads?
`video.twimg.com` sends no CORS headers, so the page cannot read the video bytes. The button navigates to the CDN link and your browser downloads the file itself.