Video Transcription API

March 16, 2026

Video Transcription API

Submit a video or audio file and receive a word-level transcript with speaker identification. The API supports videos from major platforms and locally uploaded video/audio files, along with language settings.

Supported Video Sources

The API accepts URLs from the following platforms: YouTube, Vimeo, Dailymotion, Kick, Twitch, TikTok, Facebook, Zoom, Rumble and more.

You can also upload local video or audio files. Local upload requires a Standard plan or above. See the Upload API for details.

Workflow

  1. Submit a transcription task from a video URL
  2. Poll the results until status is SUCCEEDED

Submit Transcription Task

Submit a new transcription task from a video or audio URL.

POST https://wayinvideo-api.wayin.ai/api/v2/transcripts

Request Body

ParameterTypeRequiredDefaultDescription
video_urlstringYesThe source video/audio URL or uploaded file identifier
source_langstringNonullSource language of the video (see Supported Languages). When null, the system auto-detects the original language.
target_langstringNonullTarget language for the transcript (see Supported Languages). When null, no translation is applied. If target_lang differs from the video's original language, the transcript will be automatically translated into the target language.

Example Request

curl -X POST https://wayinvideo-api.wayin.ai/api/v2/transcripts \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2" \
  -d '{
    "video_url": "https://www.youtube.com/watch?v=example",
    "target_lang": "en"
  }'

Response

{
  "data": {
    "id": "trans_proj_001",
    "name": "sample project name",
    "status": "CREATED"
  }
}
FieldTypeDescription
idstringTask identifier (used to retrieve results)
namestringTask name
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED

Get Transcription Results

Retrieve the transcript with word-level timestamps and speaker labels. Poll until status is SUCCEEDED.

GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/{id}

Path Parameters

ParameterTypeRequiredDescription
idstringYesThe task ID returned by the submit endpoint

Example Request

curl -X GET https://wayinvideo-api.wayin.ai/api/v2/transcripts/results/trans_proj_001 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-wayinvideo-api-version: v2"

Response

{
  "data": {
    "status": "SUCCEEDED",
    "cost_usage": 27.0,
    "transcript": [
      {
        "text": "Welcome to today's presentation",
        "language": null,
        "start": 200,
        "end": 4500,
        "speaker": "Speaker 1"
      },
      {
        "text": "Thanks for coming",
        "language": null,
        "start": 5000,
        "end": 8200,
        "speaker": "Speaker 2"
      }
    ]
  }
}

Response Fields

FieldTypeDescription
statusstringCREATED, QUEUED, ONGOING, SUCCEEDED, FAILED
error_messagestringError reason (only present when status is FAILED)
cost_usagenumberAPI units consumed for this request
transcriptarrayList of transcript segments (see below)

Transcript Segment

FieldTypeDescription
textstringTranscribed text
languagestring | nullDetected language code, or null if not detected
startintegerStart time in milliseconds
endintegerEnd time in milliseconds
speakerstringSpeaker label (e.g. "Speaker 1")