YOUTUBE TRANSCRIPT API

YouTube transcript API with video details in one call

Send any YouTube link and get the title, description, counts, channel and the full transcript with a timestamp on every line.

request.ts

import { Bridgly } from "@bridgly/sdk";
const client = new Bridgly({ apiKey: "bgly_YOUR_KEY" });
const res = await client.youtube.getVideo({
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
transcriptLanguage: "en"
});
if (res.type === "success") {
console.log(res.data);
}

npm install @bridgly/sdk

[ ENDPOINTS ]

The YouTube endpoint

YouTube has one endpoint on Bridgly, and it does two jobs. The first is video details: title, full description, duration, view count, like count when the uploader shows it, publish time, category, tags, thumbnails in every size, and the channel’s ID, name, handle and URL.

The second is the transcript. You get it twice in the same response: once as a single block of text that is ready to hand to a model, and once as segments with a start time and duration in milliseconds, for anything that needs to point back into the video.

The response also lists every caption track the video has, with its language and whether it was written by a person or auto-generated, so you can see what is available before asking for a specific language.

Videos

Details and transcript for one video, from its link or its ID.

POST

/youtube/get-video

Title, description, duration, views, likes, channel, caption tracks and the timed transcript1 credit per requestDocs →
Request body
urlstringrequired
The video to fetch. Accepts any YouTube video link — watch, youtu.be, Shorts, embed, or live — or a bare 11-character video ID.
includeTranscriptboolean · default true
Whether to also fetch the timed transcript in the same call. Defaults to true.
transcriptLanguagestring
Preferred transcript language as a BCP-47 code, e.g. "en" or "pt-BR". Defaults to the video's own default caption track.
Response

200 OK · application/json

{
"timeMs": 1840,
"creditsCost": 1,
"data": {
"id": "string",
"url": "string",
"title": "string",
"description": "string",
"durationSeconds": 0,
"viewCount": 0,
"likeCount": 0,
"publishedAt": "string",
"category": "string",
"keywords": [
"string"
],
"thumbnails": [
{
"url": "string",
"width": 0,
"height": 0
}
],
"channel": {
"id": "string",
"name": "string",
"url": "string",
"handle": "string"
},
"isLive": true,
"isPrivate": true,
"isUnlisted": true,
"isFamilySafe": true,
"captionTracks": [
{
"languageCode": "string",
"languageName": "string",
"isAutoGenerated": true
}
],
"transcript": {
"languageCode": "string",
"isAutoGenerated": true,
"text": "string",
"segments": [
{
"startMs": 0,
"durationMs": 0,
"text": "string"
}
]
}
}
}
[ WHY NOT THE OFFICIAL API? ]

Why not the official YouTube API?

The YouTube Data API v3 is free, but it is quota-limited, and it does not give you transcripts of videos you do not own: downloading a caption track requires the video owner’s authorization.

Transcripts of any public video

Send any public video link and get its transcript, as plain text and as timed segments. No owner authorization involved.

No daily quota

Projects start with 10,000 quota units a day on the official API. Bridgly charges per video, with no daily allowance to plan around.

No Google Cloud project

There is no Cloud project, API key restriction or OAuth consent screen to set up. One Bridgly key covers YouTube and every other platform.

[ HOW TO USE IT ]

Your first YouTube call

Terminal

curl -X POST "https://api.bridgly.app/youtube/get-video" \
-H "Authorization: Bearer $BRIDGLY_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"transcriptLanguage": "en"
}'
[ USE CASES ]

What people build with YouTube data

Summarize or question a video

Pass transcript.text to a model to get a summary, pull out action items, or answer a question about a two-hour talk without watching it.

Make video searchable

Index the timed segments so a search hit can link to the exact second something was said.

Turn talks into articles

Use the transcript and the description as source material for a write-up, show notes or a newsletter.

Give an agent a way to watch

Through MCP, a model can call this endpoint itself whenever a user pastes a YouTube link.

[ LIMITS ]

What the YouTube API does not do

  • One video per call. Channel video lists, playlists and video search are not available yet.
  • Comments are not returned.
  • A transcript is only returned when the video has a caption track, written or auto-generated. Audio is not transcribed.
  • Private videos are not returned. Age-restricted and members-only videos may come back without a transcript.
[ FAQ ]

YouTube API questions

What if a video has no captions?

You still get the video details. The transcript is only returned when the video has a caption track, and captionTracks will be empty when it has none.

Are auto-generated captions supported?

Yes. Both the caption track list and the returned transcript carry an isAutoGenerated flag, so you can tell speech-recognition captions from ones a person wrote.

Can I get the transcript in a specific language?

Yes, when the video has a caption track in that language. Send its code, such as "en" or "pt-BR", as transcriptLanguage. Without it you get the video’s default track.

Which link formats work?

Standard watch links, youtu.be short links, Shorts, embeds and live URLs are all accepted, as is a bare 11-character video ID.

Do I need a YouTube Data API key or quota?

No. You authenticate with your Bridgly API key only. There is no Google Cloud project to set up and no daily quota to manage on your side.

How much does a transcript cost?

One credit per video, with the video details included, however long the video is. What a credit costs in dollars depends on your pricing package, and goes as low as $1 per 1,000 credits at volume.

[ SAME KEY, OTHER PLATFORMS ]

Your API key and credits work on every platform. See all platforms.

[ ALSO SEARCHED ]

Common terms for YouTube API access

  • YouTube transcript API
  • YouTube captions API
  • YouTube video API
  • YouTube subtitles API
  • Get YouTube transcript programmatically
  • YouTube transcript to text API
  • YouTube Data API alternative
  • YouTube API without quota
  • YouTube video metadata API

Start pulling YouTube data

100 free credits, no card. Your first call takes a minute.

Start free with 100 credits →