# YouTube Transcript Scraper

> YouTube Transcript Scraper is a paid API for AI agents from agent-data.centorprat.workers.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-30).

Fetches full transcripts with timestamps, segments, and metadata (title, channel, views, duration) for YouTube videos by URL, channel, or search query — no API key required.

## Facts

- Endpoint: POST https://agent-data.centorprat.workers.dev/tools/youtube-transcript-scraper?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/youtube-transcript-scraper-44c90007
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_B8a4RoeR6EIOFEy_0Mur5

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-scraper-44c90007 -d '<json body>'
```

Example prompt: Can you get me the full transcript with timestamps from this YouTube video — https://www.youtube.com/watch?v=dQw4w9WgXcQ — in English, and include the individual caption segments too?

## When to prefer this

Choose this endpoint when you need YouTube video transcripts without setting up a YouTube Data API key or OAuth credentials. It handles all common YouTube URL formats (watch, youtu.be, Shorts, live) and supports multi-language preferences, translation, and channel/search-based batch retrieval up to 3 videos per call. Prefer it over manual caption downloads or YouTube's own API when speed and simplicity matter and no auth setup is possible.

## Known failure modes

- Video has no captions or subtitles available — returns an error or empty transcript
- Requested language not available and fallback also fails
- YouTube blocks scraping for the video — lookup fails but is not charged
- Translation requested but YouTube refuses — returns original transcript with translationUnavailable: true
- Invalid or malformed video URL/ID — lookup fails
- Video is private or age-restricted and inaccessible

## How this service works

Pay-per-call data and tools for AI agents, $0.002-0.01 per call in USDC via x402 (Base, Polygon or Solana), no account or API key; MAX tiers ($0.05-0.25) run deeper jobs. Agent toolkit: web search, search + read top pages, any page as clean markdown with a prompt-injection check, which-x402-API-to-call recommender, seller check. Data: Google Maps places with contacts, YouTube video data and transcripts, job listings (Indeed, LinkedIn, 13 boards), Google Ads Transparency, TikTok comments, Pinterest, Airbnb, Redfin, AliExpress, app stores, live sports, website and SEO checks, Shopify store tech stacks, and onchain token / address risk checks.

## Output

Returns the full transcript text, optionally with per-segment start times and durations, and a timestamped text version; also includes video metadata such as title, channel name, view count, and duration. Indicates whether the transcript is human-uploaded or auto-generated, and flags if translation was unavailable.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "videos": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 3,
   "description": "Video URLs or IDs (watch, youtu.be, Shorts, live links all work), one per line."
  },
  "languages": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 3,
   "description": "Language codes in order of preference, e.g. [\"en\"], [\"es\", \"en\"]. Falls back to the video's own language."
  },
  "translateTo": {
   "type": "string",
   "description": "Language code for YouTube's machine translation, e.g. \"es\". If YouTube refuses, the original transcript is returned (translationUnavailable: true)."
  },
  "preferManual": {
   "type": "boolean",
   "description": "Use uploaded (human) captions before auto-generated ones when both exist."
  },
  "includeSegments": {
   "type": "boolean",
   "description": "Also return each caption segment with start time and duration (seconds)."
  },
  "includeTimestamps": {
   "type": "boolean",
   "description": "Also return the transcript as \"[m:ss] line\" text."
  },
  "maxVideosPerSearch": {
   "type": "integer",
   "description": "Top N videos of each search."
  },
  "maxVideosPerChannel": {
   "type": "integer",
   "description": "Latest N videos of each channel."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
    "title": "Me at the zoo",
    "views": 445994370,
    "isLive": false,
    "channel": "jawed",
    "videoId": "jNQXAC9IVRw",
    "category": null,
    "keywords": [
     "me at the zoo",
     "jawed karim",
     "first youtube video"
    ],
    "language": "en",
    "channelId": "UC4QobU6STFB0P71PMvOGN5A",
    "description": "Microplastics are accumulating in human brains at an alarming rate\nhttps://www.youtube.com/watch?v=0PT5c1z3LL8\n\n“Nanoplastics and Human Health” with Matthew J Campen, PhD, MSPH\nhttps://www.youtube.com/watch?v=RRBN_4L09Mg\n\n00:00 Intro\n00:05 The cool thing\n00:17 End",
    "publishDate": null,
    "durationSeconds": 19,
    "availableLanguages": [
     {
      "code": "en",
      "name": "English",
      "autoGenerated": false
     },
     {
      "code": "de",
      "name": "German",
      "autoGenerated": false
     }
    ]
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/youtube-transcript-scraper-44c90007/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data.centorprat.workers.dev](https://www.zero.xyz/host/agent-data.centorprat.workers.dev/llms.txt)
