You can transcribe YouTube, Vimeo, DailyMotion and private media files (.mp4 and .mp3). More formats will be introduced soon.
Transcripts provide accurate, time-stamped text versions of your video content with optional AI formatting for enhanced readability.

Get transcript

Path variables

videoId
string
required
The video ID for the file.

Request parameters

type
string
required
The media type of the video.Options: youtube, vimeo, dailymotion, or private
languageCode
string
required
The language code of the input audio in ISO-639-1 format.Examples: en, en-US, fr, es
aiFormatted
boolean
required
If true, the transcript will be formatted by the AI.
This is applicable for auto-generated transcripts from video platforms like YouTube. It is not applicable for private videos.

Response

{
    "transcript_video_id": "92195d82-bff5-4b3b-bc7b-9ae684fa34ba",
    "video_id": "65_PmYipnpk",
    "type": "youtube",
    "language_code": "en",
    "video_title": "Steve Jobs - Courage",
    "video_duration": 214,
    "transcript": {
    "transcript_segments": [
{
    "id": "95cffeb9-52ed-4e6c-a3af-7bcf6b3bd96a",
    "start": "0:00:01",
    "segment": "Apple is a company that has doesn't have the most resources of everybody in the world and the way we've succeeded is by",
    "start_time": 1.34,
    "end_time": 15.24,
    "segment_length": 119
},
{
    "id": "ec56262e-7216-4919-a952-271ee445e34b",
    "start": "0:00:13",
    "segment": "choosing what horses to ride really carefully technically we try to look for these technical vectors that that have a",
    "start_time": 12.99,
    "end_time": 23.34,
    "segment_length": 117
},
{
    "id": "12e6c87a-bb03-47e4-afeb-1a85c03b7e22",
    "start": "0:00:20",
    "segment": "...",
    "start_time": 19.89,
    "end_time": 31.949,
    "segment_length": 110
}
    ]
}
}
start
string
Human-readable timestamp in HH:MM:SS format
start_time
number
Start time of the segment in seconds
end_time
number
End time of the segment in seconds
segment_length
number
Length of the transcript segment text in characters

Error responses

200
OK
The transcript has been successfully retrieved.
204
NO_CONTENT
The video has not been transcribed yet.
400
BAD_REQUEST
The request is invalid.
401
UNAUTHORIZED
The request is unauthorized.
500
INTERNAL_SERVER_ERROR
The server has encountered an error.
If the video has not been transcribed yet, the response will be 204 with no content. Calling the Stream endpoint is required.

Stream transcript

Request body

video_id
string
required
The unique identifier for the video
type
string
required
The media type of the video. Options: youtube, vimeo, dailymotion, or private
language_code
string
required
The language code of the input audio in ISO-639-1 format, like en or fr
ai_formatted
boolean
required
If true, the transcript will be formatted by the AI. This is applicable for auto-generated transcripts from video platforms like YouTube. It is not applicable for private videos.
use_sse
boolean
required
Whether to use Server-Sent Events for streaming
regenerate
boolean
required
Whether to regenerate the transcript if it already exists
{
    "video_id": "65_PmYipnpk",
    "type": "youtube",
    "language_code": "en",
    "ai_formatted": false,
    "use_sse": true,
    "regenerate": false
}

Response Types

The streaming endpoint returns different types of messages:

Download Progress Messages

Download Progress
{
    "type": "download_progress",
    "info": {
        "progress": 0.5,
        "speed": "1.5x",
        "eta": "1m 30s"
    }
}
Download progress shows real-time information about video file processing, including speed and estimated time to completion.

Error Messages

{
    "type": "error",
    "info": {
    "type": "[ERROR-FILE-DOWNLOAD]",
    "message": "This video can not be downloaded."
}
}

Transcript Segment Messages

Transcript Segment
{
    "type": "segment",
    "info": {
        "id": "b44f3bba-91ee-4c47-b2c4-c5a132c9e730",
        "start_time": 1.959,
        "end_time": 15.36,
        "text": "apple is a company that has doesn't have the most resources of everybody in the world and um the way we've succeeded is",
        "text_length": 119,
        "timestamp": "0:00:02",
        "asr": true,
        "language_code": "en",
        "progress": 0.2
    }
}
asr
boolean
Indicates whether this segment was generated using Automatic Speech Recognition
text_length
number
The character length of the transcript text
progress
number
Current progress of the transcription process (0.0 to 1.0)

Semaphore Messages

{
    "type": "semaphore",
    "info": {
    "status": "[DONE]"
}
}

Transcript Info Messages

Transcript Info
{
    "type": "transcript_info",
    "info": {
        "transcript_video_id": "95cffeb9-52ed-4e6c-a3af-7bcf6b3bd96a",
        "video_id": "65_PmYipnpk",
        "type": "youtube",
        "video_title": "Steve Jobs - Courage",
        "video_duration": 214,
        "language_code": "en",
        "asr": true
    }
}
video_duration
number
Duration of the video in seconds
transcript_video_id
string
Unique identifier for this specific transcript

Progress Messages

Progress Update
{
    "type": "transcript_progress",
    "info": {
        "progress": 0.5,
        "language_code": "en",
        "asr": true
    }
}
Progress messages provide real-time updates on transcription completion percentage and processing status.