# YouTube Transcript & Channel Video Scraper

> YouTube Transcript & Channel Video Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.1/call, status unknown (last checked 2026-10-02).

Extracts transcripts and metadata from YouTube videos or channel video libraries, with optional date filtering and language selection

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/youtube-transcript?utm_source=zero.xyz
- Price: $0.1/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/youtube-transcript-channel-video-scraper-38cfb74e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_UYcHxNNYnycaFnOBEZ91d

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-channel-video-scraper-38cfb74e -d '<json body>'
```

Example prompt: Can you grab the full transcript of this YouTube video https://www.youtube.com/watch?v=dQw4w9WgXcQ in English, and include a single joined text string alongside the timed segments?

## When to prefer this

Choose this endpoint when you need to extract spoken content or captions from YouTube videos at scale, either from specific video URLs or from an entire channel's library with date filtering. It is especially useful for research, content analysis, keyword monitoring, or building searchable archives of video content. Prefer this over general web scrapers when the target is specifically YouTube transcript/caption data.

## Known failure modes

- Video has no captions or auto-generated captions are disabled — no transcript returned
- Private or age-restricted video — access denied
- Invalid or malformed YouTube URL or channel URL
- Language code not available — falls back to another language or returns empty
- Channel has no videos in the specified date range
- maxItems or max_videos limits result in partial data
- API returns empty result set (not charged)

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of results and an array of items, each containing the video URL, title, video ID, channel ID, channel name, description, channel username, channel thumbnail, and transcript content (as timed segments and optionally as a joined text string).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "end_date": {
   "type": "string",
   "description": "Inclusive date filter for channel videos, in YYYY-MM-DD format."
  },
  "language": {
   "type": "string",
   "default": "en",
   "description": "Preferred caption language code, such as en, es, or fr. Falls back to another available language."
  },
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Stop after this many successful video transcripts. Zero means no total cap."
  },
  "max_videos": {
   "type": "integer",
   "default": 10,
   "maximum": 200,
   "minimum": 1,
   "description": "Maximum channel videos to examine, including videos without captions."
  },
  "start_date": {
   "type": "string",
   "description": "Inclusive date filter for channel videos, in YYYY-MM-DD format."
  },
  "video_urls": {
   "type": "array",
   "default": [],
   "description": "Several public video URLs or IDs; leave empty when using a channel."
  },
  "channel_url": {
   "type": "string",
   "description": "Public channel handle, channel ID, custom URL, or user URL."
  },
  "youtube_url": {
   "type": "string",
   "description": "One public video, Short, live replay, or short link."
  },
  "include_transcript_text": {
   "type": "boolean",
   "default": false,
   "description": "Include a single joined text string alongside timed segments."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "url": null,
    "title": null,
    "videoId": null,
    "channelId": null,
    "channelName": null,
    "description": null,
    "channelUsername": null,
    "channelThumbnail": null
   }
  ],
  "product": "youtube-transcript"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/youtube-transcript-channel-video-scraper-38cfb74e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
