# AgentUtility YouTube Transcript Fetcher

> AgentUtility YouTube Transcript Fetcher is a paid API for AI agents from x402.agentutility.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-13).

Fetches the full transcript of any YouTube video, returning plain text plus per-segment timestamps (start, duration, text) with optional language selection.

## Facts

- Endpoint: POST https://x402.agentutility.ai/youtube-transcript
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agentutility-youtube-transcript-fetcher-4b2dbf26
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_eEHkgx4Zj_iCP6CmKZ_p-

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 agentutility-youtube-transcript-fetcher-4b2dbf26 -d '<json body>'
```

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

## When to prefer this

Choose this endpoint when you need to extract the spoken content of a YouTube video as text, including timestamped segments, without managing your own YouTube Data API credentials or caption-parsing logic. It is ideal for summarization pipelines, quote extraction, subtitle generation, or any workflow where video audio content needs to be processed as text. Prefer it over rolling your own solution since it handles both auto-generated and manual captions server-side via Supadata, requires no caller API key, and is priced per-call at $0.01 USDC via x402.

## Known failure modes

- 404 returned when the video has no captions or transcript available
- Invalid or non-existent video ID returns an error
- Private or age-restricted videos may not return transcripts
- Unsupported language code results in fallback or error
- Network timeout if YouTube is slow to respond

## How this service works

Fetch the transcript of any YouTube video. Pulls auto-generated or manual captions and returns full text plus per-segment {start, duration, text}, with an optional language pick. Backed by Supadata's transcript pipeline server-side — no caller key required; returns a clear 404 when a video has no transcript. Use it as a YouTube closed-caption fetcher or video subtitles puller.

## Output

Returns the full transcript as a plain-text string, plus an array of segments each containing start time (seconds), duration (seconds), and text. Returns a clear 404 if the video has no available transcript. Supports both auto-generated and manually created captions.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "required": [
      "video_id_or_url"
     ],
     "properties": {
      "language": {
       "type": "string",
       "description": "Preferred caption language code (e.g. 'en', 'es', 'ja'). Default: pick the first available."
      },
      "video_id_or_url": {
       "type": "string",
       "description": "YouTube video ID (11-char) or full URL (youtube.com/watch?v=…, youtu.be/…, /embed/…, /shorts/…)."
      },
      "include_chapters": {
       "type": "boolean",
       "description": "Parse chapter timestamps from the video description. Default false."
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "text": {
       "type": "string"
      },
      "title": {
       "type": "null"
      },
      "source": {
       "type": "string"
      },
      "channel": {
       "type": "null"
      },
      "chapters": {
       "type": "null"
      },
      "language": {
       "type": "string"
      },
      "segments": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "text": {
          "type": "string"
         },
         "start": {
          "type": "number"
         },
         "duration": {
          "type": "number"
         }
        }
       }
      },
      "video_id": {
       "type": "string"
      },
      "channel_id": {
       "type": "null"
      },
      "char_count": {
       "type": "integer"
      },
      "segment_count": {
       "type": "integer"
      },
      "duration_seconds": {
       "type": "null"
      },
      "is_auto_generated": {
       "type": "null"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "text": "We're no strangers to love. You know the rules and so do I.",
  "title": null,
  "source": "supadata",
  "channel": null,
  "chapters": null,
  "language": "en",
  "segments": [
   {
    "text": "We're no strangers to love",
    "start": 0,
    "duration": 4.5
   },
   {
    "text": "You know the rules and so do I",
    "start": 4.5,
    "duration": 4
   }
  ],
  "video_id": "dQw4w9WgXcQ",
  "channel_id": null,
  "char_count": 60,
  "segment_count": 2,
  "duration_seconds": null,
  "is_auto_generated": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agentutility-youtube-transcript-fetcher-4b2dbf26/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.agentutility.ai](https://www.zero.xyz/host/x402.agentutility.ai/llms.txt)
