POST
/
twitter
/
video
/
transcript
Twitter Video Transcript
curl --request POST \
  --url https://mavi-backend.memories.ai/serve/api/v2/twitter/video/transcript \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "video_url": "https://x.com/NBCOlympics/status/1989901761650323606",
  "channel": "apify"
}
'
{
  "code": "0000",
  "msg": "success",
  "data": [
    {
      "tweetId": "1989901761650323606",
      "transcript_text": ">> 159.97 SO HE GOES. INTO THE LEAD AND THIS PLAY. LEAD AND THIS PLAY. >> HIS REACTION. >> HIS REACTION. >> YES. >> YES. >> FIRST PLACE ARE.",
      "json_text": [],
      "webvtt_text": "WEBVTT\n\n00:00:00.000 --> 00:00:05.696\n>> 159.97 SO HE GOES. INTO THE \nLEAD AND THIS PLAY.\n\n00:00:05.707 --> 00:00:07.974\nLEAD AND THIS PLAY. \n>> HIS REACTION.\n\n00:00:07.975 --> 00:00:08.208\n>> HIS REACTION. \n>> YES.\n\n00:00:08.242 --> 00:00:18.218\n>> YES. \n>> FIRST PLACE ARE.\n"
    }
  ],
  "failed": false,
  "success": true
}
This endpoint allows you to retrieve transcript for a Twitter video.

Code Example

import requests

BASE_URL = "https://mavi-backend.memories.ai/serve/api/v2"
API_KEY = "sk-8483027fe3abfe535f6ae01a9979b4f7"
HEADERS = {
    "Authorization": f"{API_KEY}"
}

def twitter_video_transcript(video_url: str, channel: str):
    url = f"{BASE_URL}/twitter/video/transcript"
    data = {"video_url": video_url, "channel": channel}
    resp = requests.post(url, headers=HEADERS, json=data)
    return resp.json()

# Usage example
result = twitter_video_transcript("https://x.com/NBCOlympics/status/1989901761650323606", "apify")
print(result)

Request Body

FieldTypeRequiredDescription
video_urlstringYesThe Twitter video URL
channelstringYesThe channel name. Supported values: apify, rapid, memories.ai

Response

Returns the video transcript in multiple formats (plain text and WEBVTT).
{
  "code": "0000",
  "msg": "success",
  "data": [
    {
      "tweetId": "1989901761650323606",
      "transcript_text": ">> 159.97 SO HE GOES. INTO THE LEAD AND THIS PLAY. LEAD AND THIS PLAY. >> HIS REACTION. >> HIS REACTION. >> YES. >> YES. >> FIRST PLACE ARE.",
      "json_text": [],
      "webvtt_text": "WEBVTT\n\n00:00:00.000 --> 00:00:05.696\n>> 159.97 SO HE GOES. INTO THE \nLEAD AND THIS PLAY.\n\n00:00:05.707 --> 00:00:07.974\nLEAD AND THIS PLAY. \n>> HIS REACTION.\n\n00:00:07.975 --> 00:00:08.208\n>> HIS REACTION. \n>> YES.\n\n00:00:08.242 --> 00:00:18.218\n>> YES. \n>> FIRST PLACE ARE.\n"
    }
  ],
  "failed": false,
  "success": true
}

Response Parameters

ParameterTypeDescription
codestringResponse code indicating the result status
msgstringResponse message describing the operation result
dataarray[object]Array containing transcript data objects
data[].tweetIdstringTwitter/X tweet ID
data[].transcript_textstringPlain text transcript without timing information
data[].json_textarrayJSON format transcript (may be empty array)
data[].webvtt_textstringTranscript in WEBVTT format with timing information
successbooleanIndicates whether the operation was successful
failedbooleanIndicates whether the operation failed

Authorizations

Authorization
string
header
required

Body

application/json
video_url
string
required

The Twitter video URL

Example:

"https://x.com/NBCOlympics/status/1989901761650323606"

channel
enum<string>
required

The channel name. Supported values: apify, rapid, memories.ai

Available options:
apify,
rapid,
memories.ai
Example:

"apify"

Response

200 - application/json

Video transcript in multiple formats (plain text and WEBVTT)

code
string

Response code indicating the result status

Example:

"0000"

msg
string

Response message describing the operation result

Example:

"success"

data
object[]

Array containing transcript data objects

success
boolean

Indicates whether the operation was successful

Example:

true

failed
boolean

Indicates whether the operation failed

Example:

false