Save tweet videos at the bitrate X actually stores, turn "GIFs" back into real GIFs, and rip Space replays to MP3. True bitrate. Real GIFs. No login.
Use this service only for content that you own or are authorized to access and process. By submitting, you agree to the Terms of Service.
Accepts: x.com/…/status/… · twitter.com/…/status/… · x.com/i/spaces/… · t.co/…
Each selected video is saved as its own file. Photos are not listed — they have no video track.
Please keep this tab open until it finishes.
X encodes each resolution at several bitrates and the player picks one silently. We show the real Mbps on every quality button and always fetch the top rung.
X converts every GIF into a silent MP4 on upload. We detect GIF tweets and give you the choice: the tiny MP4 loop, or a genuine .gif file restored by ffmpeg.
Paste an x.com/i/spaces/… link of an ended Space and we turn the replay into an MP3 — the recording X shows behind the "Play recording" button.
One tweet can carry up to four videos or GIFs. Each shows up with its own thumbnail — download one, a few, or all of them as separate files.
When a video is uploaded to X, it is re-encoded into a ladder of renditions — but unlike most platforms, X ladders by bitrate as much as by resolution. A typical tweet video exists at roughly 0.3, 0.8 and 2.2 Mbps, sometimes with two different bitrates at the same frame size. The player starts on a low rung and switches silently; on a phone screen you rarely notice, until you save the file and watch it on anything bigger.
That is why videos saved with screen recorders or player-scraping tools so often look soft: they inherit whatever rung the player happened to be streaming. The best file X stores for the tweet was never touched.
yt-dlp reads the whole ladder — every progressive MP4 variant plus the HLS renditions — and requests exactly the rung you ask for. This page shows the real bitrate next to each quality button and builds a selector that takes the best file at or below your chosen height:
-f "b[height<=720]/bv*[height<=720]+ba/b" --merge-output-format mp4
The result is the highest-bitrate MP4 X keeps for that resolution — not a re-compressed copy, not a screen capture, and never the data-saver rung.
Every GIF posted to X is converted into a silent, looping MP4 the moment it is uploaded — the original .gif file is discarded. That is a sensible bandwidth decision (MP4 is roughly 10× smaller), but it means "Save GIF" tools that hand you an .mp4 file are not being lazy: the GIF genuinely no longer exists on X's servers.
This page detects GIF tweets automatically — they are stored differently from videos (a single MP4 variant, no streaming ladder, no duration) — and gives you both endings to that story:
yt-dlp URL
The exact silent loop X stores — smallest file, best quality
--recode-video gif
A real .gif rebuilt by ffmpeg — drop it into any chat, doc or README
If you just want to rewatch it, take the MP4. If you need a file that behaves like a GIF — auto-plays and loops in places that do not render video — take the .GIF conversion and accept the larger size. Either way you are working from X's original file, not a screen capture of it.
X keeps a recording of a Space only when the host enables it — that is the replay you can play from the original tweet after the Space ends. X offers no download button for it, ever. This page accepts x.com/i/spaces/… links directly: paste one and we fetch the replay stream and convert it to a normal MP3 file (video Spaces are saved as MP4 instead).
The honest limits, stated up front: a Space that is still live cannot be captured here — recording ongoing audio is a different job (our Live Stream Recorder handles live broadcasts). A Space whose host disabled the recording has no replay to fetch, and no tool can conjure one. If the Space page shows a "Play recording" button, this page can turn it into an MP3.
/status/…Single tweets — the main event. Videos download at full bitrate, GIFs offer MP4 or real .GIF, multi-video tweets open the picker.
/i/spaces/…Ended Spaces with a replay convert to MP3. Live and upcoming Spaces are rejected with a clear message instead of a broken file.
t.co/… · twitter.com/…Official t.co short links are followed server-side to the real tweet, and old twitter.com URLs still resolve.
X hides sensitive media from anonymous access — a platform rule, not a tool limitation. We run with no account by design, so these are out of reach.
/i/broadcasts/…Live broadcasts are a recording job, not a download job — use our Live Stream Recorder for those.
/username · search & hashtagsProfiles and feeds are lists of thousands of tweets, not one video. Open the tweet you want and paste that link.
Prefer the terminal? These are the exact commands this page builds for you:
Takes the best rendition from X's bitrate ladder and delivers one MP4.
yt-dlp -f "b/bv*+ba" --merge-output-format mp4 "https://x.com/user/status/1234567890"
Fetches the silent MP4 loop and has ffmpeg rebuild it as an actual GIF.
yt-dlp --recode-video gif "https://x.com/user/status/1234567890"
A multi-video tweet expands into numbered entries — the same numbers this page shows.
yt-dlp --playlist-items 1,3 "https://x.com/user/status/1234567890"
Works for ended Spaces whose host kept the recording.
yt-dlp -x --audio-format mp3 "https://x.com/i/spaces/1AbCdEfGhIjKl"
Paste the tweet link from Share → Copy link. X stores every video as a bitrate ladder — the same clip encoded at several bitrates per resolution. Our yt-dlp backend reads that ladder and requests the highest-bitrate rendition of the resolution you pick, so you get the best file X keeps, not the data-saver rung the player was streaming.
What X calls a "GIF" is actually a silent, looping MP4 — the GIF you uploaded was converted on arrival. This page detects GIF tweets automatically and gives you both options: keep the tiny silent MP4, or have our server convert it back into a real .gif file you can drop into chats and docs anywhere.
Yes. A single tweet can carry up to four videos or GIFs. Paste the tweet link and each one appears with its own thumbnail — tick the ones you want (or keep them all selected) and each is saved as its own file.
Yes, if it has ended and the host kept the recording — the same replays that show a "Play recording" button on X. Paste the x.com/i/spaces/… link and we convert the replay to MP3 (video Spaces are saved as MP4). Live and upcoming Spaces cannot be captured; come back after they end.
X encodes each resolution at several bitrates and the player silently picks a rung based on your connection — you might be "watching 720p" at a third of the bitrate the 720p file can have. Tools that grab the currently-streaming file inherit that choice. This page shows the actual Mbps next to every quality button and always fetches the top rung.
X hides sensitive media from anonymous access — it requires a logged-in session, and this tool deliberately runs without one: no account, no cookies. Public tweets download normally. We tell you this up front instead of failing with a cryptic error.
Download only what you have the right to keep — your own posts, content you have permission to reuse, or material for fair-use commentary. Downloading does not transfer ownership; credit the creator when you repost. Respect the X Terms of Service.
Need advanced yt-dlp options? Try the yt-dlp online console →
Recording a live broadcast instead? Live Stream Recorder →
YTDLP Web is an independent tool and is not affiliated with, endorsed by, or sponsored by X Corp. or Twitter.