X Video Subtitle & Caption Transcript Converter
Convert public X (Twitter) videos into timestamped transcripts and downloadable SRT/VTT subtitle files, using native captions when available and AI speech-to-text otherwise.
Open in Apify Store$0.99 / 1K on Free
Short answer
X Video Subtitle & Caption Transcript Converter is an Apify Store Actor for X (Twitter) data that returns 29 published output fields, including tweetUrl, authorUsername, authorName, text. It lists $0.99 per 1,000 results on the Free plan (pay per event), $0.49 on the Business plan. It takes 15 input settings, none required. It covers 3 of the 7 core X (Twitter) fields this site tracks. Last updated Nov 9, 2026.
From the public Store listing and published build schema, synced 2026-11-12.What it returns
29 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.
typetweetUrltweetIdvideoIndexvideoSourceauthorUsernameauthorNamelanguagecaptionSourcecaptionLanguagemetadataSourcemediaSourcetranscriptionMethodtranscriptAvailabletranscriptTweetIdquotedTweetIdretweetedTweetIdwordCountmediaDurationSecondsfullTranscriptmodelUsederrorCodemessagepublishedAtcollectedAtindexstartendtext
Not in the schema among the core X (Twitter) fields: post_id, posted_at, likes, reposts. The field matrix shows which other tools return them.
How it differs from the other X (Twitter) Actors
Among the 12 catalogue Actors for X (Twitter) with a published schema, only this one returns videoIndex, transcriptionMethod, transcriptAvailable, wordCount, fullTranscript, modelUsed, publishedAt, start.
Pick another Actor if you need
| Actor | Fields it adds | Price / 1K |
|---|---|---|
| Twitter (X) Media Downloader | mediaUrl, mediaUrlOriginal, thumbnailUrl, posterImageUrl | $0.99 |
| X Post, Reply & Profile Lookup by Link or ID | createdAt, likeCount, retweetCount, replyCount | $0.99 |
| X (Twitter) Profile & Post Engagement Extractor | createdAt, likeCount, retweetCount, replyCount | $0.99 |
| X/Twitter Keyword & Hashtag Tweet Search | createdAt, replyCount, retweetCount, likeCount | $0.99 |
| X Keyword Search with Mention & Reply Operators | createdAt, replyCount, retweetCount, likeCount | $0.99 |
Input
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| postUrls | array | No | [] | Post links or bare post IDs that contain a video or GIF. Accepts x.com and twitter.com links, /i/status and /i/web/status links, /video/N links, and bare numeric IDs. Profile links or usernames are accepted too and are treated like profile inputs. Provide this or Profile links — at least one of the |
| profileUrls | array | No | [] | Optional. Transcribe recent video posts from these profiles. Paste x.com profile links, @handles or bare usernames. Works without Post links. |
| maxVideosPerProfile | integer | No | 10 | How many recent video posts to transcribe per profile input. Defaults to 10. |
| maxDurationSeconds | integer | No | 1200 | Videos longer than this are skipped for AI transcription and get a media_too_large status row. Built-in captions are still returned when available. Defaults to 1200 seconds (20 minutes). |
| maxDownloadMb | integer | No | 200 | Largest media download allowed for AI transcription. The actor picks the audio-only or lowest-bitrate rendition first, then stops with a media_too_large status row if the limit is exceeded. Defaults to 200 MB. |
| transcriptionMethod | string | No | auto | Auto tries the video's built-in captions first and only falls back to Whisper AI when none exist. Captions-only skips videos without captions. AI-only always uses Whisper speech-to-text. |
| whisperModel | string | No | base | Whisper model used for AI transcription. Larger models are more accurate but slower and need more memory (medium and large-v2 need a run memory of at least 4096 MB and 8192 MB respectively). Base is a good balance for most videos. If the selected model does not fit the run memory, the actor automati |
| language | string | No | – | Optional language code, for example en, es, fr or ur. Native captions prefer this language when several tracks exist; AI transcription uses it as a spoken-language hint. Leave empty to detect automatically. |
| outputFormat | string | No | segments | Segments gives timestamped lines, full text gives one transcript string, and both gives both plus SRT and WebVTT text and download links. SRT and WebVTT modes return the subtitle text and a signed download link. |
| includeTweetMetadata | boolean | No | true | Attach the full post and author metadata (text, counts, bio, followers, quote/repost details) to every row. |
Show the other 5 settings
| Setting | Type | Required | Default | What it does |
|---|---|---|---|---|
| includeQuotedVideo | boolean | No | true | When a quote post has no video of its own, transcribe the video of the quoted post. The row keeps the quote post's metadata and records quotedTweetId. |
| segmentGranularity | string | No | segment | Level of the timestamped segments. Segment keeps the raw caption/Whisper cues. Sentence groups real word timings into sentences (or splits cue text, sharing the cue's real time range). Word emits one entry per real word timestamp and is used only when X captions or Whisper provide per-word timings — |
| includeWordTimestamps | boolean | No | false | Add per-word start/end times to AI (Whisper) transcript segments. Automatically enabled when Segment granularity is Sentence or Word. Native captions only carry words when X included inline timing markers. |
| enableYtdlpFallback | boolean | No | false | When the direct HTTP media download or Whisper transcription fails, try yt-dlp (requires ffmpeg). Off by default so runs stay fast, deterministic and HTTP-only. |
| proxyConfiguration | object | No | – | Optional. Use an Apify proxy if you plan large runs or see frequent rate limits. |
Example input
Built from the input form's published example values and defaults.
{
"postUrls": [
"https://x.com/firesidealpha/status/2118737977824395524"
],
"profileUrls": [],
"maxVideosPerProfile": 10,
"maxDurationSeconds": 1200,
"maxDownloadMb": 200,
"transcriptionMethod": "captions",
"whisperModel": "base",
"outputFormat": "segments",
"includeTweetMetadata": true,
"includeQuotedVideo": true,
"segmentGranularity": "segment",
"includeWordTimestamps": false,
"enableYtdlpFallback": false
} Run it from code or an AI agent
The same run through the Apify API, with the example input. You need an Apify API token; the run is billed to your account at the Store price.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"postUrls": [
"https://x.com/firesidealpha/status/2118737977824395524"
],
"profileUrls": [],
"maxVideosPerProfile": 10,
"maxDurationSeconds": 1200,
"maxDownloadMb": 200,
"transcriptionMethod": "captions",
"whisperModel": "base",
"outputFormat": "segments",
"includeTweetMetadata": True,
"includeQuotedVideo": True,
"segmentGranularity": "segment",
"includeWordTimestamps": False,
"enableYtdlpFallback": False
}
run = client.actor("nimbryxo-studio/x-video-subtitle-and-caption-transcript-converter").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"postUrls": [
"https://x.com/firesidealpha/status/2118737977824395524"
],
"profileUrls": [],
"maxVideosPerProfile": 10,
"maxDurationSeconds": 1200,
"maxDownloadMb": 200,
"transcriptionMethod": "captions",
"whisperModel": "base",
"outputFormat": "segments",
"includeTweetMetadata": true,
"includeQuotedVideo": true,
"segmentGranularity": "segment",
"includeWordTimestamps": false,
"enableYtdlpFallback": false
};
const run = await client.actor("nimbryxo-studio/x-video-subtitle-and-caption-transcript-converter").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~x-video-subtitle-and-caption-transcript-converter/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"postUrls":["https://x.com/firesidealpha/status/2118737977824395524"],"profileUrls":[],"maxVideosPerProfile":10,"maxDurationSeconds":1200,"maxDownloadMb":200,"transcriptionMethod":"captions","whisperModel":"base","outputFormat":"segments","includeTweetMetadata":true,"includeQuotedVideo":true,"segmentGranularity":"segment","includeWordTimestamps":false,"enableYtdlpFallback":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/x-video-subtitle-and-caption-transcript-converter",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
What a run costs
The result rate falls on higher Apify plans. Each figure is the published per-result rate times the number of results.
| Apify plan | Per 1,000 | 10,000 results | 100,000 results |
|---|---|---|---|
| Free plan | $0.99 | $9.90 | $99 |
| Starter plan | $0.82 | $8.20 | $82 |
| Scale plan | $0.66 | $6.60 | $66 |
| Business plan | $0.49 | $4.90 | $49 |
- Every run also has a start event, charged per GB of memory (minimum one): $0.10 on Free, $0.03 on Business. At its default memory of 4 GB a run starts at $0.40 on Free. Fewer, larger runs keep this small.
- The Free plan includes $5 of monthly usage (Apify pricing, checked 2026-11-11); at the Free rate that covers at most about 5,050 results, less start events and platform usage.
- Worked example: 10,000 results in one run on the Free plan cost $10.30 ($9.90 for results + $0.40 start), plus Apify platform usage (compute), billed separately by Apify.
- Pay per event. Platform usage (compute) is billed by Apify on top of the event prices. Compare other tools in the cost estimator.
Where it fits among X (Twitter) routes
It ranks 4 of 12 catalogue Actors for X (Twitter) on the published formula (fields, price, reliability, freshness). Its line is highlighted on the map.
- 1 Twitter (X) Media Downloader 27 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 2 X Post, Reply & Profile Lookup by Link or ID 9 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 3 X (Twitter) Profile & Post Engagement Extractor 29 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - 4 X Video Subtitle & Caption Transcript Converter 29 output fields, pay per event 3 of 7 core fields
$0.99 / 1K - + 7 other Store tools, combined Reference only 5 of 7 core fields
from $0.15 / 1K - API X API v2 Public API fields not compared
Stops are fields. A ring means the field is in that route's published output schema; no ring means the line passes without it. Bold labels are the core fields for this website, the rest are fields that differ between routes. A white capsule means every data line stops there. The red line is the official API; its field coverage is not compared. A crossed red line means there is no open official API.
Official route: X API v2
Public API. X API v2 uses prepaid pay-per-usage credits. Published standard read rates include $0.005 per Post resource and $0.010 per User resource. Pay-per-use launched on February 6, 2026; legacy Basic and Pro plans migrated to pay-per-use.
Charged per resource returned: $0.005 per Post, $0.010 per User. Owned Reads on qualifying own-account endpoints are $0.001 per resource. A 3 million Post-read monthly cap applies to self-serve pay-per-use.
Other Store tools for X (Twitter)
Reference only, from their public listings.
| Tool | Fields | Price / 1K |
|---|---|---|
| X (Twitter) Tweet Scraper | 120 | $0.15 |
| Tweet Scraper | 17 | $0.25 |
| Tweet Scraper V2 | 12 | $0.40 |
| Twitter (X.com) Scraper Unlimited: No Limits | 12 | $0.40 |
| Twitter (X) Follower Scraper | 29 | $0.15 |
What people use it for
- Transcribe public videos
- Extract native captions
- Export subtitle files
Other catalogue Actors for X (Twitter)
Twitter (X) Media Downloader
Download videos, photos, GIFs, audio and poster images from public Twitter/X posts - no login, no cookies. Works with post links or usernames,…
X Post, Reply & Profile Lookup by Link or ID
Resolve X post links or IDs into text, author, media, polls, quoted/parent posts, engagement metrics and replies, or resolve a handle into that…
X (Twitter) Profile & Post Engagement Extractor
Get any public X profile - bio, followers, verification, avatar, banner - plus latest, top and media posts with full engagement metrics. No login…
X/Twitter Keyword & Hashtag Tweet Search
Search X (Twitter) by keyword, phrase or hashtag and get tweet text, author, engagement metrics, media and language. Every row says which keyword…
X Keyword Search with Mention & Reply Operators
Search X (Twitter) by keyword with filters for date, language, engagement, media, verification, mentioned handle, author, reply target, and…
X Community Activity & Member Finder
Collect public X Community posts, about info, rules and members with no login required. Get the community profile, member count, ranked posts with…
Similar Actors
TikTok Video Subtitle & Transcript Extractor
Pull every subtitle track off a TikTok video - auto speech recognition plus any machine-translated languages - as timestamped segments and a…
Snapchat Spotlight Video Link & Caption Downloader
Give this actor one or more Snapchat Spotlight links and get back a direct video link, thumbnail, caption, creator info and engagement counts per…
YouTube Video, Playlist & Channel Downloader with Metadata
Download YouTube videos from direct links, playlists, channels, or search phrases at your chosen quality, with a public file link plus title,…
YouTube Caption & Whisper AI Transcript Extractor
Get timestamped transcripts from YouTube videos in your preferred language, with optional AI transcription for videos that have no captions at…
Facebook Timeline Posts & Reel Transcript Extractor
Pull recent posts and Reels from a public Facebook Page or Profile, or fetch one post by its link, with text, reaction breakdown, comments, media,…
Instagram Transcript Scraper - Reels & Video
Instagram video to text: paste many reel, post or IGTV links and get each transcript with creator, caption and likes. Reads Instagram captions or…
Questions people ask
How much does X Video Subtitle & Caption Transcript Converter cost?
The published result rate depends on your Apify plan: $0.99 per 1,000 on Free, $0.82 per 1,000 on Starter, $0.66 per 1,000 on Scale, $0.49 per 1,000 on Business. So 10,000 results cost about $9.90 on the Free plan and $4.90 on Business, plus a start fee of $0.10 per run per GB of memory on Free. Platform usage is billed separately.
What data does X Video Subtitle & Caption Transcript Converter return?
Its published output schema lists 29 fields: type, tweetUrl, tweetId, videoIndex, videoSource, authorUsername, authorName, language, captionSource, captionLanguage, metadataSource, mediaSource, and 17 more. A listed field is not guaranteed to be filled in every row.
What input does X Video Subtitle & Caption Transcript Converter need?
No input is strictly required; the defaults run as is. Common settings: postUrls, profileUrls, maxVideosPerProfile, maxDurationSeconds, maxDownloadMb, transcriptionMethod.
What are the alternatives to X Video Subtitle & Caption Transcript Converter for X (Twitter)?
12 catalogue Actors cover X (Twitter). Close alternatives: Twitter (X) Media Downloader; X Post, Reply & Profile Lookup by Link or ID; X (Twitter) Profile & Post Engagement Extractor. The X (Twitter) page compares all of them field by field.
How do I run X Video Subtitle & Caption Transcript Converter from Python or the API?
Use the Apify API client: in Python, ApifyClient(token).actor("nimbryxo-studio/x-video-subtitle-and-caption-transcript-converter").call(run_input=...), then read the run's default dataset (run.default_dataset_id); in JavaScript the same call is client.actor("nimbryxo-studio/x-video-subtitle-and-caption-transcript-converter").call(input). Without a client, POST the input JSON to https://api.apify.com/v2/actors/nimbryxo-studio~x-video-subtitle-and-caption-transcript-converter/run-sync-get-dataset-items with your API token. Ready-to-paste code with the example input is on this page.
Sources
- X Video Subtitle & Caption Transcript Converter on Apify Store
- Published build with input and output schema (JSON)
- X API v2 documentation
Cite this page
Scraper Finder. "X Video Subtitle & Caption Transcript Converter." https://scraperfinder.com/catalogue/x-video-subtitle-and-caption-transcript-converter/ (data checked 2026-11-12).
Run X Video Subtitle & Caption Transcript Converter
$0.99 per 1,000 results. Paste the example input above, set your X (Twitter) query, then export the dataset. Still choosing? Compare every X (Twitter) route.