X Video Transcription

Drop an X post URL and get the video's full transcript plus an AI summary — synchronously over the API or MCP, or queued from a content reservoir. Whisper-powered, cached, Pro and higher.

Some of the best source material on X is locked inside video — demos, conference clips, hot takes recorded on a phone. X has no captions API, so that content is invisible to your notes, reservoirs, and drafting workflows. X Video Transcription unlocks it: give BlackOps an X post URL and it pulls the post's native video, transcribes the audio with Whisper, and returns the full transcript with an AI summary and key insights.

Transcription is available on Pro and higher. Each fresh transcription costs 50 credits; repeat lookups of the same post hit a shared cache and are free.

How it works

  1. Resolve the post. BlackOps looks up the post through the X API and finds its attached native video. Posts without a video fail fast with a clear message — quote-tweeted videos, link previews, and animated GIFs don't count.
  2. Transcribe. The video's audio is extracted and sent to Whisper. There are no captions to fall back on, so every transcription is a real speech-to-text run. Videos over 20 minutes are rejected to keep cost and processing time bounded.
  3. Summarize. The transcript gets the same AI treatment as YouTube ingests: a 2-3 paragraph summary plus 3-7 key insights, generated once and cached with the transcript.

Transcripts of the same post are cached globally by post ID, so a video only ever pays the Whisper cost once — across your sites, MCP calls, and reservoir jobs. Pass refresh: true to force a re-transcription.

From chat

The transcribe_x_video MCP tool takes an x.com or twitter.com status URL and returns { title, author, post_text, transcript_text, summary, key_insights, duration_seconds, cached } synchronously. Ask your assistant to "transcribe this video" with a link, then turn the result into a note, a post draft, or a reservoir item (post_reservoir_ingest) in the same conversation.

The REST equivalent is POST /api/v2/x/transcribe with { "url": "https://x.com/user/status/123..." }.

From content reservoirs

Reservoir items whose URL is an X post get the same Extract Transcript button YouTube items have. Extraction runs as a background job with live progress; when it completes, the item's content is replaced with the transcript, the post's thumbnail and metadata are attached, and the summary + key insights land on the item — ready for content generation. Adding an item with extract_transcript: true queues the job automatically.

If a vault auto-write target is configured (under the site's transcription settings), completed transcripts are also written to your Obsidian vault as a structured note with the post text, summary, insights, and full transcript.

Limits and errors

  • Pro and higher — the x_transcription tier feature gates every surface; lower tiers get a 403 with an upgrade pointer.
  • 50 credits per fresh transcription — cache hits are free.
  • 20-minute video cap — longer videos return VIDEO_TOO_LONG.
  • 10 extractions per hour per site on the reservoir path.
  • Native videos onlyNO_VIDEO for posts without one; deleted posts return TWEET_UNAVAILABLE, protected accounts TWEET_RESTRICTED.
  • Audio required — silent videos (screen recordings without narration) return NO_AUDIO; there's no speech to transcribe.

Related

Want this page as machine-readable markdown? GET /docs/features/x-video-transcription.md