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.
X (Twitter) Social mediaVideoAI

What it returns

29 fields from the published dataset schema. Export as JSON, CSV or Excel, or read the dataset through the Apify API.

  • type
  • tweetUrl
  • tweetId
  • videoIndex
  • videoSource
  • authorUsername
  • authorName
  • language
  • captionSource
  • captionLanguage
  • metadataSource
  • mediaSource
  • transcriptionMethod
  • transcriptAvailable
  • transcriptTweetId
  • quotedTweetId
  • retweetedTweetId
  • wordCount
  • mediaDurationSeconds
  • fullTranscript
  • modelUsed
  • errorCode
  • message
  • publishedAt
  • collectedAt
  • index
  • start
  • end
  • text

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

Fields other X (Twitter) catalogue Actors return that X Video Subtitle & Caption Transcript Converter does not
ActorFields it addsPrice / 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

Input settings for X Video Subtitle & Caption Transcript Converter
SettingTypeRequiredDefaultWhat 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
More input settings for X Video Subtitle & Caption Transcript Converter
SettingTypeRequiredDefaultWhat 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.

Cost of X Video Subtitle & Caption Transcript Converter results by Apify plan
Apify planPer 1,00010,000 results100,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.

Route diagram for X (Twitter) dataTwitter (X) Media Downloader: stops at 4 of the 10 fields shown; X Post, Reply & Profile Lookup by Link or ID: stops at 6 of the 10 fields shown; X (Twitter) Profile & Post Engagement Extractor: stops at 6 of the 10 fields shown; X Video Subtitle & Caption Transcript Converter: stops at 2 of the 10 fields shown; Other Store tools (7): stops at 8 of the 10 fields shown; X API v2: public, field coverage not compared.X (Twitter)post idauthorlikestextposted atrepostscreatedAtlikeCountretweetCountreplyCount1234+API

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.

Official documentation

Other Store tools for X (Twitter)

Reference only, from their public listings.

Other Store tools for X (Twitter)
ToolFieldsPrice / 1K
X (Twitter) Tweet Scraper120$0.15
Tweet Scraper17$0.25
Tweet Scraper V212$0.40
Twitter (X.com) Scraper Unlimited: No Limits12$0.40
Twitter (X) Follower Scraper29$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,…

3/7 core fields 27 output fields $0.99 per 1K

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…

3/7 core fields 9 output fields $0.99 per 1K

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…

3/7 core fields 29 output fields $0.99 per 1K

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…

3/7 core fields 18 output fields $0.99 per 1K

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…

3/7 core fields 21 output fields $0.99 per 1K

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…

3/7 core fields 21 output fields $0.99 per 1K

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…

11 output fields $0.99 per 1K

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…

28 output fields $0.99 per 1K

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,…

20 output fields $0.99 per 1K

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…

31 output fields $0.99 per 1K

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,…

14 output fields $0.99 per 1K

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…

22 output fields $0.50 per 1K

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

Actor updated 2026-11-09 Data synced 2026-11-12
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.

Open in Apify Store