YOUTUBE CAPTION GUIDE

Get YouTube captions in the original spoken language.

When a video has several language tracks, ask for captions matching its original spoken language. FetchGoblin returns the available captions, their language, and timestamps for your archive, search index, or workflow.

Last verified October 13, 2026.

Make one HTTP request.

Create a FetchGoblin API key, keep it in your server environment as FETCHGOBLIN_API_KEY, and send the video URL with original_audio=true. A verified account starts with 50 trial credits.

curl --get 'https://fetchgoblin.com/api/data/v1/youtube/video/transcript' \
  --header "x-api-key: $FETCHGOBLIN_API_KEY" \
  --data-urlencode 'url=https://www.youtube.com/watch?v=iogcY_4xGjo' \
  --data-urlencode 'original_audio=true'

A returned live transcript currently uses one credit. A result with unavailable original-language captions uses zero. Your balance must still cover a possible live request. Prepaid top-ups start at $5.

Choose original language or a specific language.

ParametersSelection
original_audio=trueCaptions matching the original spoken language identified by YouTube.
language=esThe available Spanish caption track. Omit original_audio or set it to false.
original_audio=true&language=esOriginal language takes precedence. This does not request Spanish.
Neither parameterThe endpoint selects an available track, preferring the original language when it can identify it. See the reference for fallback selection.

The API retrieves existing captions. It does not generate a speech transcription or translate a video. Original-language selection depends on YouTube identifying the original audio and a matching caption track.

Handle unavailable captions explicitly.

Even a video with ordinary captions can return null in original-language mode if its original audio cannot be identified reliably. Check the transcript before writing a row or sending text to another tool.

{
  "success": true,
  "transcript": null,
  "transcript_only_text": null,
  "language": null,
  "credits_charged": 0
}

Selected fields from an unavailable-caption result. Responses also include credit balance and request ID.

For a successful result, transcript contains caption segments with text, startMs, endMs, andstartTimeText. Use transcript_only_text when your next step only needs plain text. Record language,request_id, and credits_charged with the result.

What the live checks returned.

These results were checked on October 13, 2026 through the FetchGoblin gateway with an isolated test account and the production data provider. Caption availability can change.

Video and requestObserved resultCredits
MrBeast hotel-room video, original_audio=trueEnglish; 1,140 timestamped caption segments.1
Same video, original_audio=true and language=jaEnglish; the original-language option took precedence.1
Big Buck Bunny, original_audio=trueNull transcript and language.0

Add it to Postman or n8n.

Download the two-request Postman collection. Set the API key privately, replace the video URL, and run the original-language request.

In n8n, use an HTTP Request node with GET and the endpoint above. Add a Header Auth credential named x-api-key, set the URL and original_audio query parameters, then branch on whethertranscript is null. Skip downstream text processing for unavailable captions.

For repeated reads, the endpoint also supports cache_max_age. Supported cache hits use zero credits; fresh video data and cache availability depend on the request.

Open the complete endpoint reference