YouTube video transcript API
Get the transcript of a YouTube video by ID or link: the whole text and timed segments. One object a call; $0.0020 per call. Errors, timeouts and objects that do not exist are not charged.
id is in the link: youtube.com/watch?v=<id>. Or pass the whole link as url.No code: try the YouTube transcript extractor →Try it
Change a value and the request on the right follows.Sign in to run it; it runs on your own balance. New accounts can try this endpoint free, up to 50 calls.
Used to call POST /v1/youtube/videos/captions? It is this address now. What changed for old endpoints
curl -G "https://api.dataxapi.com/v1/youtube/videos/transcript/get" \ --data-urlencode "id=dQw4w9WgXcQ" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
{
"code": "ok",
"request_id": "45a3a507-98c9-484f-a823-690b541e8c9d",
"data": {
"item": {
"post_id": "pW1QdpFNg3a",
"lang": "en",
"text": "Hey everyone, today I am going through what I packed for weekend hiking. Short version: light, fits in one bag, hard to break. Let's go piece by piece.",
"segments": [
{
"start": 0.4,
"end": 4.24,
"text": "Hey everyone, today I am going through what I packed for weekend hiking."
},
{
"start": 2.08,
"end": 6.56,
"text": "Short version: light, fits in one bag, hard to break."
},
// … 61 more
]
}
},
"warnings": [],
"meta": {
"capability": "youtube.videos.transcript.get",
"result_status": "complete",
"fetched_at": "2026-10-12T03:34:28.000Z",
"cached": false,
"replayed": false,
"unavailable": {},
"billing": {
"amount": "0.002",
"currency": "USD",
"balance_after": "9.998"
}
}
}From a response recorded 2026-10-12 03:34 UTC. Names, text and IDs are examples, and so are the links: none is the recorded one (the page shows no one's personal data); the figures are as recorded. Long lists are cut. The request ID, cursor and balance are made up.
Size as sent: 6.9 KB in the standard view (931 B compact, 6.9 KB full).
curl -G "https://api.dataxapi.com/v1/youtube/videos/transcript/get" \ --data-urlencode "id=dQw4w9WgXcQ" \ -H "Authorization: Bearer $DATAXAPI_API_KEY"
from dataxapi import DataXAPI dx = DataXAPI() # reads DATAXAPI_API_KEY result = dx.youtube.videos.transcript.get(id="dQw4w9WgXcQ") print(result["data"]["item"])
import { DataXAPI } from "@dataxapi/sdk";
const dx = new DataXAPI(); // reads DATAXAPI_API_KEY
const result = await dx.youtube.videos.transcript.get({ id: "dQw4w9WgXcQ" });
console.log(result.data.item);dataxapi call youtube.videos.transcript.get id=dQw4w9WgXcQ
{
"mcpServers": {
"dataxapi": {
"type": "http",
"url": "https://api.dataxapi.com/mcp",
"headers": {
"Authorization": "Bearer ${DATAXAPI_API_KEY}"
}
}
}
}Add this to your MCP client, then ask your agent to call youtube.videos.transcript.get.
Parameters
id, urlVideo ID. Example: dQw4w9WgXcQ.
id, urlLink to the video: a watch, shorts, embed, live or youtu.be link. Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ. Full link: https://www.youtube.com/watch?v=dQw4w9WgXcQ. Short link: https://youtu.be/dQw4w9WgXcQ.
How much of each item to return. All three cost the same. Values: compact, standard (default), full.
Return only these fields. Each by its path, such as author.name.
Known limits
- One object per call: there is nothing to page.
Returned fields
data.item is one transcript object. Stable: fields are only ever added.
ID of the post it belongs to
Language code
The whole text
Long text: the compact view keeps the first 500 characters and says so in warnings.
Timed segments
Start, in seconds
End, in seconds
Show all 10 fields →
Text of the segment
Which numbers of this item are approximate or lower bounds; absent when all are exact
Path of the field, such as metrics.views
Approximate, or a lower boundapproximatelower_bound
Typical size of one item: compact 552 B, standard 6.6 KB, full 6.6 KB (measured on the response recorded 2026-10-12 03:34 UTC).
When you are charged
X-Max-Price to refuse anything above your own limit)Prices as read 2026-10-21 09:10 UTC, under price book 2, in effect since 2026-10-17 11:00 UTC; the Playground reads the price in force before a run.
If the object does not exist
The answer is 404 not_found and nothing is charged. reason says which: not_found (it does not exist) or private_or_deleted.
Errors
What this endpoint can answer with; codes all endpoints share are on the full list.
invalid_paramsA parameter is invalidRetry: After a fixNoinsufficient_balanceThe balance is too lowRetry: After a fixNonot_foundThe object does not exist, is private or was deletedRetry: NoNoupstream_failedThe data source failedRetry: YesNotimeoutThe data did not arrive in time; retry with the same idempotency keyRetry: YesNoQuestions
How much does the YouTube video transcript API cost?
$0.0020 per call. The most one call can cost is $0.0020.
When am I not charged?
Errors, timeouts and objects that do not exist are not charged.
What happens if the object does not exist?
The answer is 404 not_found and nothing is charged. reason says which: not_found (it does not exist) or private_or_deleted.
The same thing on other platforms
All 10 YouTube endpoints
Use it in your AI
Copy this prompt
Your API key is built in, so there is nothing to configure.
No account yet? Sign-up takes an email and no card, and a failed call is never charged.
Paste it into your agent
It reads the page the prompt points to and connects itself.
Now ask something
Use one of these, or your own words.
Prefer to set it up by hand?
dataxapi setupgives the agents on your machine (Claude Code, Codex, Cursor) the DataXAPI MCP server and the base skill. The key is read from DATAXAPI_API_KEY; none is written into a file.MCP server: https://api.dataxapi.com/mcp. The entry for your client is under MCP in the request examples of this page; then ask your agent to call youtube.videos.transcript.get.Other clients →Show the text
Use the DataXAPI endpoint youtube.videos.transcript.get (YouTube video transcript). Get the transcript of a YouTube video by ID or link: the whole text and timed segments. Call GET https://api.dataxapi.com/v1/youtube/videos/transcript/get with the header "Authorization: Bearer $DATAXAPI_API_KEY". Read the key from the environment variable DATAXAPI_API_KEY; never write it into code. Parameters: - id: Video ID. Example: dQw4w9WgXcQ. - url: Link to the video: a watch, shorts, embed, live or youtu.be link. Example: https://www.youtube.com/watch?v=dQw4w9WgXcQ. Full link: https://www.youtube.com/watch?v=dQw4w9WgXcQ. Short link: https://youtu.be/dQw4w9WgXcQ. - view: How much of each item to return. All three cost the same. Values: compact, standard (default), full. - fields: Return only these fields. Each by its path, such as author.name. Price: $0.0020 per call. Errors, timeouts and objects that do not exist are not charged. The answer is JSON: data.item holds transcript; meta.billing.amount is what this call was charged. Example: curl -G "https://api.dataxapi.com/v1/youtube/videos/transcript/get" \ --data-urlencode "id=dQw4w9WgXcQ" \ -H "Authorization: Bearer $DATAXAPI_API_KEY" Full reference in Markdown: https://dataxapi.com/apis/youtube/videos/transcript/get.md
Names and identifiers
- In Chinese
- YouTube 视频字幕 API
- Endpoint ID
youtube.videos.transcript.get- Endpoint
GET /v1/youtube/videos/transcript/get
Start with one key.
207 endpoints on 21 platforms, from $0.0003 a call. Errors and timeouts are not charged.