# YouTube Transcript, Captions & Chapters

> YouTube Transcript, Captions & Chapters is a paid API for AI agents from youtube.use.x402atlas.com, paid per call via x402, $0.02/call, live (last probed 2026-10-23, last successful call 2026-10-06).

Agents call it through Zero, which pays per call: no API key and no wallet of your own. New accounts start with $5.

Fetches the full transcript, timestamped caption segments, chapter markers, and available caption tracks for any YouTube video by ID or URL.

## Facts

- Endpoint: GET https://youtube.use.x402atlas.com/transcript?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: healthy
- Last checked: 2026-10-23
- Last successful call: 2026-10-06
- Success rate: 67% of calls made through Zero
- Rating: 4.8 / 5 from 2 reviews
- Activations on Zero: 3
- Tags: x402
- Canonical page: https://www.zero.xyz/c/youtube-transcript-captions-chapters-19f9ac9d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M0tGYgUrT-2iQT-C_OVaW

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability youtube-transcript-captions-chapters-19f9ac9d
```

Example prompt: Can you grab the full transcript of this YouTube video — https://www.youtube.com/watch?v=dQw4w9WgXcQ — including the timestamped segments and chapter markers?

## When to prefer this

Choose this endpoint when you need to extract spoken content from a YouTube video as text, need timestamped segments for quote attribution or search, want to enumerate available caption languages before fetching in a specific language, or need chapter markers to navigate long-form video content. It requires no API key and costs a flat $0.02 USDC per call, making it ideal for lightweight, one-off transcript fetches without YouTube Data API quota concerns.

## Known failure modes

- Video ID not found or invalid — returns error if the 11-character ID or URL cannot be resolved
- No captions available — some videos have no caption tracks at all
- Private or age-restricted videos — transcript may be inaccessible
- Network or upstream YouTube API timeout — transient errors possible
- Malformed URL input — if the URL cannot be parsed to extract a valid video ID

## How this service works

Full transcript of any YouTube video by video id or URL: captions/subtitles as clean plain text plus timestamped segments, the video's chapter markers, and every caption track it offers so an agent can pick a language and re-fetch. YouTube transcript, video to text, captions extraction, subtitle download, closed captions, speech to text, multilingual, asr and authored tracks. No API key.

## Output

Returns the full video transcript as a plain-text block, an array of timestamped caption segments (each with start_ms, optional end_ms, and display-formatted start time), an array of chapter markers with titles and time offsets, the language code of the served track, the normalized 11-character video ID, the query timestamp, and a list of all available caption tracks (including whether each is auto-generated or authored, its language code, and whether it was selected).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "v"
     ],
     "properties": {
      "v": {
       "type": "string",
       "maxLength": 500,
       "description": "YouTube video id (11 characters) or a full YouTube video URL"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "video_id",
      "queried_at",
      "text",
      "segments",
      "chapters",
      "available_transcripts"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "Present only on the sample response (a call with no v): a hint that this is a canned example. The paid request ran; no upstream call was made."
      },
      "text": {
       "type": "string",
       "description": "Whole transcript as one plain-text block"
      },
      "chapters": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "title": {
          "type": "string"
         },
         "end_ms": {
          "type": "integer"
         },
         "start_ms": {
          "type": "integer"
         },
         "start_time_text": {
          "type": "string"
         }
        }
       },
       "description": "Chapter markers; empty for videos without chapters"
      },
      "segments": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "start_ms",
         "text"
        ],
        "properties": {
         "text": {
          "type": "string"
         },
         "end_ms": {
          "type": "integer",
          "description": "Line end offset in milliseconds; absent on tracks that carry only starts"
         },
         "start_ms": {
          "type": "integer",
          "description": "Line start offset in milliseconds"
         },
         "start_time_text": {
          "type": "string",
          "description": "Line start as displayed, e.g. 0:43"
         }
        }
       }
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "text": "Good morning. How are you? (Audience) Good. It's been great, hasn't it?",
  "chapters": [
   {
    "title": "Introduction",
    "end_ms": 42000,
    "start_ms": 0,
    "start_time_text": "0:00"
   },
   {
    "title": "Three themes",
    "end_ms": 115000,
    "start_ms": 42000,
    "start_time_text": "0:42"
   }
  ],
  "segments": [
   {
    "text": "Good morning. How are you?",
    "end_ms": 29678,
    "start_ms": 27103,
    "start_time_text": "0:27"
   },
   {
    "text": "(Audience) Good.",
    "end_ms": 31105,
    "start_ms": 29702,
    "start_time_text": "0:29"
   }
  ],
  "video_id": "iG9CE55wbtY",
  "queried_at": "2026-07-24T12:00:00Z",
  "language_code": "en",
  "available_transcripts": [
   {
    "selected": true,
    "language_code": "en"
   },
   {
    "type": "asr",
    "language_code": "en"
   },
   {
    "language_code": "fr"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/youtube-transcript-captions-chapters-19f9ac9d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from youtube.use.x402atlas.com](https://www.zero.xyz/host/youtube.use.x402atlas.com/llms.txt)
