# Radar YouTube Transcript Bulk Extractor

> Radar YouTube Transcript Bulk Extractor is a paid API for AI agents from 2-29-135-242.sslip.io, paid per call via x402, $0.02/call, status unknown (last checked 2026-11-03).

Extracts transcripts from multiple YouTube videos, playlists, or channels in bulk, with options for language preference, translation, and output format

## Facts

- Endpoint: POST https://2-29-135-242.sslip.io/x402/youtube-transcript-bulk-extractor?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-03
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/radar-youtube-transcript-bulk-extractor-349fcbd8
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9s0-jLgUHDmU4MHcqTV3D

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 radar-youtube-transcript-bulk-extractor-349fcbd8 -d '<json body>'
```

Example prompt: Pull transcripts from these 3 YouTube videos — https://www.youtube.com/watch?v=abc123, https://www.youtube.com/watch?v=def456, https://www.youtube.com/watch?v=ghi789 — give me full output format in English, preferring manual captions, and fall back to any language if English isn't available.

## When to prefer this

Use this endpoint when you need transcripts from multiple YouTube videos, playlists, or channels in a single call with fine-grained control over language preference, caption type (manual vs auto-generated), output format, and optional translation. Prefer this over single-video transcript tools when processing channel archives or playlists at scale. The pay-per-result model (USDC on Base via x402) means you only pay when transcripts are successfully returned.

## Known failure modes

- Video has no captions available and fallbackToAnyLanguage is false — video is skipped
- Requested language not available and no fallback configured — empty result for that video
- Invalid or inaccessible YouTube URL — error or skipped item
- maxItems reached before all source videos are processed — partial results returned
- Private or age-restricted video — inaccessible, skipped
- Translation requested for unsupported language — YouTube translation error

## How this service works

Data APIs (leads, jobs, YouTube, Reddit, Trends, SEC, tenders...). POST JSON, pay per call in USDC on Base via x402. Charged only when results are returned.

## Output

Returns a JSON object with a count and an array of transcript items, each containing the video's transcript in the requested format (plain text, timed segments, merged sentences, or timestamped text), sourced from the first available preferred language or translated as specified.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "maxItems": {
   "type": "integer",
   "default": 20,
   "example": 20,
   "maximum": 100,
   "minimum": 1,
   "description": "Hard limit on how many transcripts the run saves (and you pay for)."
  },
  "languages": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "en"
   ],
   "description": "Language codes in order of preference, e.g. en, de, es. The first available one is used."
  },
  "startUrls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "https://www.youtube.com/@TED"
   ],
   "description": "One per line: a video URL or ID, a playlist URL, or a channel URL / @handle. Playlists and channels are expanded into their videos."
  },
  "translateTo": {
   "type": "string",
   "description": "Language code to translate every transcript into using YouTube's translation, e.g. en. Leave empty to keep the original language."
  },
  "outputFormat": {
   "enum": [
    "full",
    "text",
    "segments",
    "sentences",
    "timestamped"
   ],
   "type": "string",
   "example": "full",
   "description": "full = text + segments + sentences. text = plain text only. segments = timed caption fragments. sentences = fragments merged into sentences. timestamped = readable text with [m:ss] marks."
  },
  "maxVideosPerSource": {
   "type": "integer",
   "example": 10,
   "description": "How many of the newest videos to take from each playlist or channel."
  },
  "preferManualCaptions": {
   "type": "boolean",
   "example": true,
   "description": "Use captions written by the creator when they exist, and auto-generated ones otherwise."
  },
  "fallbackToAnyLanguage": {
   "type": "boolean",
   "example": true,
   "description": "If none of the preferred languages exists, take the first available transcript instead of skipping the video."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "...": "one result object"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/radar-youtube-transcript-bulk-extractor-349fcbd8/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 2-29-135-242.sslip.io](https://www.zero.xyz/host/2-29-135-242.sslip.io/llms.txt)
