X (Twitter) Video to Text
Turn the video in an X (Twitter) post into text — paste the post link and get its captions as clean prose, timestamped lines, or a downloadable SRT/VTT file.
Input
Works with x.com and twitter.com post links (including /video/1 and ?s= links), or a bare post ID.
Which caption track to read, if the video has more than one. Leave blank to use whichever is available, preferring a human-written track over an auto-generated one.
Output
The video's details will appear here.
More ways to use this tool
REST API
curl -X POST https://api.iotools.cloud/v1/tool/x-to-text \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"postUrl": "https://x.com/poteto/status/2102050467505430555",
"format": "paragraphs"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `x-to-text` tool (X (Twitter) Video to Text) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.
| Cost per API/MCP call | From 9 credits |
|---|---|
| Free-plan API/MCP cap^ | 135 credits/month |
| Need more credits? | View pricing |
^ The most you can spend on this tool over API/MCP per month on the free plan. Buying a credit pack removes this cap, same as Builder.
Also available with
Guides
Use this responsibly. This tool only surfaces captions X has already published for a video — it doesn't verify what they say, and we take no responsibility for a transcript's accuracy or for what you do with it. The video and its captions still belong to whoever posted them; using the output is your call to make against copyright law and X's own Terms of Service, the same as if you'd transcribed the video yourself by hand.
What this tool does
Paste the link to an X (Twitter) post with a video, get the video's captions back as text. It reads the caption track X already has for the video — the same one behind the CC button in X's player — and turns it into readable prose, timestamped lines, or a downloadable SRT/WebVTT file. No sign-in, no extension, no audio processed.
Works with x.com/<user>/status/... and twitter.com/... links, links ending
in /video/1 or carrying ?s=20, x.com/i/status/... links, the
fxtwitter/vxtwitter/fixupx mirrors, or a bare post ID. If the post
quotes another post's video, the tool reads that one.
Caption coverage
X only auto-captions some videos — mostly longer, recent uploads with clear speech. Plenty of videos, especially short clips, music videos and older uploads, have no caption track at all. When a video has none, you'll get a clear "no captions" message instead of a made-up transcript — this reads an existing caption track rather than listening to the audio.
Choosing an output format
- Readable paragraphs — the default. Caption fragments get stitched into real sentences and grouped into paragraphs.
- Plain text — one continuous block, no line breaks.
- Timestamped lines — every line prefixed with
[12:34], for finding the exact moment something was said. - SRT and WebVTT — real subtitle files with start/end timecodes, ready for a video editor or a re-upload.
- JSON — every cue as
{ startMs, endMs, durationMs, text }, for feeding the transcript to another script.
Using it as an X video transcript API
Every format above is one HTTP call away — see More ways to use this tool
below for a ready-made curl. POST a postUrl and a format, get JSON back.
Agents can call the same tool over MCP. transcript is always a string,
whatever format you asked for; post carries the canonical x.com URL.
details is a real JSON object — { title, author, durationSeconds, trackLabel, languageName, languageCode, isAutomatic, cueCount, availableCodes }, always every key. Same shape as YouTube to Text and TikTok
to Text, so code written against one reads the others unchanged.
What it can't do
- Videos with no captions — see above.
- GIFs. They have no audio, so there's nothing to caption.
- Deleted posts, protected accounts, or withheld posts. X won't serve them to an anonymous request.
- Posts with several videos. Only the first video is read.
Common questions
How do I get the transcript of a video on X? Copy the post's link (Share → Copy link), paste it at the top of this page and press the button.
Why does it say this video has no captions? Because X never generated any for it. This tool reads existing captions; it doesn't transcribe audio.
Can I download the captions as a subtitle file? Yes — pick SRT or WebVTT and use the download button on the result.
Does it work with twitter.com links? Yes. Old twitter.com links and new
x.com links point at the same post.
Related tools
- YouTube to Text — the same idea for YouTube.
- TikTok to Text — the same idea for TikTok.
- Text Summarizer — condense the transcript once you have it.