Skip to main content
POST
Get transcript for any supported video
Extract accurate metadata and transcripts from any supported online video — YouTube, TikTok, Facebook, X/Twitter, Vimeo, Dailymotion, Loom, and more — through a single endpoint.
This is now the single transcript endpoint for every supported platform, including YouTube. The endpoint auto-detects the platform from video_url and routes internally. (The old /youtube/transcript endpoint has been merged into /transcript.)
For Instagram videos, use the /transcribe endpoint instead (speech-to-text).

Billing

Billing depends on the URL:
  • YouTube (full transcript or metadata_only: true) → 1× residential_request (the fetch routes through the residential proxy).
  • Non-YouTube → 1× standard_request (some platforms internally require residential and are billed as residential_request accordingly).
The charge applies whether or not a transcript is returned, mirroring the proxy hop that was paid for. Set include_usage: true to receive a usage block in the response.

Overview

This endpoint automatically extracts rich video metadata and transcripts from online videos with high accuracy.

Supported Platforms

VidNavigator can retrieve transcripts from a wide variety of sources. Below is the list of platforms currently supported by this endpoint:
  • YouTube (uses residential proxy infrastructure for reliable access)
  • X / Twitter (just copy the tweet video link)
  • Facebook (public videos only)
  • TikTok
  • Dailymotion
  • Loom
  • Vimeo
For Instagram videos, use the /transcribe endpoint instead, which runs speech-to-text.

Use Cases

Content Analysis

Extract transcripts for AI analysis, sentiment analysis, or content categorization

Search & Discovery

Enable text-based search across video content libraries

Accessibility

Generate captions and transcripts for accessibility compliance

Content Creation

Create summaries, articles, or repurpose video content

Request Parameters

Example Usage

Transcript as Plain Text (transcript_text=true)

Use transcript_text=true to return the transcript as a single plain-text string instead of an array of { text, start, end } segments:

Getting Metadata Only

If you only need video metadata without the transcript (faster and still counts as usage):
For YouTube, metadata_only: true still routes through the residential proxy and is billed as a residential_request.

Getting Usage Disclosure (include_usage=true)

Set include_usage: true to receive a usage block describing exactly what was charged:

Limitations

  • https://fb.watch/<video_id> format is not supported, use the https://www.facebook.com/watch/?v=<video_id> format instead.

Troubleshooting

  • Invalid URL: Ensure the video URL is complete and valid. This endpoint supports direct links from YouTube, X (a tweet), Vimeo, TikTok, etc.
  • Transcript Not Found: Please ensure that the video has subtitles available (either manually added or auto-generated). If no subtitles are present, the transcript cannot be extracted. Consider using fallback_to_metadata: true to get metadata even when transcript is unavailable.
  • Language Not Supported: Sometimes the selected subtitles language is not available. In which case, you will get a clear message stating that. Verify that the chosen language is available for the video. We recommend not using the language input if you are unsure.
  • For Instagram videos: This endpoint does not transcribe Instagram. Please use the /transcribe endpoint instead.
If issues persist or need more help, please reach out to us at support@vidnavigator.com.

Success Response (200 OK)

Returns a video_info object and a transcript object.

Response with transcript_text: true

When you set transcript_text: true, the transcript is returned as a single string:

Response with metadata_only: true

When you set metadata_only: true, only the video metadata is returned:

Authorizations

X-API-Key
string
header
required

API key authentication. Include your VidNavigator API key in the X-API-Key header.

Body

application/json
video_url
string<uri>
required

URL of the video to retrieve transcript for

Example:

"https://twitter.com/user/status/123456789"

language
string

ISO2 language code (optional)

Required string length: 2
Example:

"en"

metadata_only
boolean
default:false

When true, returns only video metadata without transcript. Usage is still recorded.

fallback_to_metadata
boolean
default:false

When true, returns video metadata with an empty transcript if transcript is unavailable (200). Ignored if metadata_only is true.

transcript_text
boolean
default:false

When true, returns the transcript as a single plain-text string instead of an array of segments.

include_usage
boolean
default:false

When true, the response includes a usage block listing every meter charged during this request, the total credits deducted, and the user's remaining balance.

Response

Transcript retrieved successfully

status
enum<string>
Available options:
success
data
object
usage
object

Per-call usage disclosure. Returned only when the caller passes include_usage=true in the request body. Lists every meter that fired during this request and the credits actually deducted. Multiple charges of the same meter inside one request are consolidated into a single entry (their quantities and credits are summed). When a charge was waived through a cache-hit sponsorship (e.g. NGO), it carries waived: true + credits_saved, and a top-level waived.credits_saved summary appears.

For endpoints that involve LLM analysis (/extract/video, /extract/file, /analyze/video, /analyze/file, /youtube/search), the consolidated analysis_request charge entry carries a nested tokens object reporting the LLM input/output token tally for the request.