YouTube Transcript API reference
The full spoken transcript of a public YouTube video, with timed segments. Takes a public URL, returns one object, 2 credits a call.
This named API keeps YouTube fields in YouTube's own vocabulary. For a higher-level product page, see YouTube Transcript API.
Endpoint
GET /v1/youtube/transcript
Authorization: Bearer sv_live_... `POST` is also accepted with the same parameters in the request body. Send the key in the `Authorization` header, never in the query string.
Parameters
| Name | Type | Required | Notes |
|---|---|---|---|
url | string | yes | Public YouTube URL matching this API's input. |
Sample Request
This is a copyable request shape. Replace the sample values with the public YouTube target or parameters your workflow uses.
curl -G 'https://api.sourcevine.io/v1/youtube/transcript' \
-H 'Authorization: Bearer sv_live_...' \
--data-urlencode 'url=https://www.youtube.com/watch?v=9wq3VHsL_bE' Sample Response
A response this API returned, against the target above. Your values depend on the resource you ask about and when you ask.
{
"data": {
"url": "https://www.youtube.com/watch?v=9wq3VHsL_bE",
"cached": false,
"videoId": "9wq3VHsL_bE",
"language": "en",
"segments": 3817,
"fetchedAt": "2026-09-02T11:05:43Z",
"wordCount": 19460,
"transcript": ">> Our universe is a very dynamic place that puts on. Spectacular cosmic displays every second. [MUSIC] With Roman's panoramic vision, we'll not only catch these events, but we'll see many at once. And use this to uncover the. Distribution of dark matter in our universe. Most of the sky remains to be explored. We're likely to not confirm current models, but to get to. >> Explore entirely new phenomena for the first time. >> I think when you build an observatory that has. Prof…",
"autoGenerated": true,
"cacheAgeSeconds": null,
"sourceTimestamp": null,
"transcriptSegments": [
{
"text": ">> Our universe is a very",
"start": 80.18,
"duration": 3.136
},
{
"text": "dynamic place that puts on.",
"start": 81.614,
"duration": 2.836
},
{
"text": "Spectacular cosmic displays",
"start": 83.383,
"duration": 4.304
}
]
},
"success": true,
"available": true
} Fields
| Field | Type | Notes |
|---|---|---|
videoId | string | The YouTube video id. |
language | string | null | Language code reported by the subtitle track. |
autoGenerated | boolean | null | Whether YouTube marks the track as generated. |
transcript | string | Joined text, with contact details scrubbed before return. |
transcriptSegments | array | Timed text cues with text, start and duration. |
wordCount | integer | Count calculated after scrubbing. |
fetchedAt | ISO datetime | When Sourcevine read the public page. |
sourceTimestamp | ISO datetime | null | The platform timestamp when it is available. |
cached | boolean | True when this answer repeats an identical request made moments earlier. |
cacheAgeSeconds | integer | Seconds since the reading was taken. |
Availability States
| Status | Charged | Client behavior |
|---|---|---|
available | yes for live reads | Use data. |
not_found | yes | Store the state and stop polling. |
private | yes | Store the state and stop polling. |
unsupported | no | Fix the URL or call the matching API. |
upstream_unavailable | no | Retry later with backoff. |
Unavailable resources return `success: true`, `available: false`, `availability`, and `data: null`. API or authentication failures return `success: false` with an `error` object.
Billing
A call costs 2 credits. A deleted, private or empty resource is charged like any lookup and says so. An unsupported URL or a read we could not complete is not charged. The `X-Credits-Charged` response header is the source of truth for what happened on that request.
Successful responses include `fetchedAt`, the time we read the platform.
What This API Does Not Return
- No contact or bio fields: Bios, email addresses, phone numbers, postal addresses and messenger handles are outside the response contract.
- No private data: Private accounts, restricted content and unavailable resources return typed availability instead of guessed data.
- No generated summary: This endpoint returns transcript text and timed segments. Summaries and translations should be separate operations.
Related
- YouTube API hub
- YouTube Transcript API product page
- Quickstart
- Credits and billing
- YouTube Video Stats API reference
- YouTube Channel API reference
- YouTube Channel Videos API reference
- YouTube Search API reference
Last updated 1 September 2026