# Apify YouTube Video Transcript Extractor (stableapify.dev)

> Apify YouTube Video Transcript Extractor (stableapify.dev) is a paid API for AI agents from stableapify.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Fetches transcripts/subtitles from YouTube videos or channels via the starvibe/youtube-video-transcript Apify actor, paid per-call over x402.

## Facts

- Endpoint: POST https://stableapify.dev/api/actors/starvibe/youtube-video-transcript/call
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apify-youtube-video-transcript-extractor-stableapify-dev-a77fa09e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_e6oUwDAB2MY9SR2-IdShz

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 apify-youtube-video-transcript-extractor-stableapify-dev-a77fa09e -d '<json body>'
```

Example prompt: Can you get me the full transcript of this YouTube video https://www.youtube.com/watch?v=dQw4w9WgXcQ in English?

## When to prefer this

Use this endpoint when you need to extract the spoken text content of YouTube videos programmatically, especially for summarization, translation, analysis, or archiving. Prefer it over manual caption downloads when automating workflows at scale or when accessing channel-wide transcripts with date filtering. It is particularly well-suited for AI agents needing to ingest YouTube video content as text for downstream processing.

## Known failure modes

- Video has no available captions or subtitles — returns empty transcript
- Invalid YouTube URL format — returns validation error
- Requested language subtitles not available for the video
- Channel URL with no videos matching the date filter — returns empty results
- Actor run timeout for large channel requests
- x402 payment failure — call not executed

## How this service works

Search Apify Store actors, start actor runs, and fetch results over x402 and MPP.

## Output

Returns transcript text and subtitle segments for the requested YouTube video(s), including the spoken content broken into timed segments, video metadata, and the language used. For channel requests, returns transcripts for up to the specified number of videos within the optional date range.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "max_videos",
    "include_transcript_text"
   ],
   "properties": {
    "end_date": {
     "type": "string",
     "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?([+-]\\d{2}:\\d{2}|Z)?)?$",
     "description": "End date for filtering videos by upload date (format: YYYY-MM-DD or ISO 8601, optional). Only applicable and used with channel_url; ignored for youtube_url. Videos uploaded on or before this date will be fetched."
    },
    "language": {
     "type": "string",
     "pattern": "^[a-z]{2}$",
     "description": "Language of the subtitles in ISO 639-1 format, e.g., `en`, `fr`. Applicable to both youtube_url and channel_url. Leave blank for default language."
    },
    "max_videos": {
     "type": "integer",
     "default": 10,
     "maximum": 200,
     "minimum": 1,
     "description": "Maximum number of videos to fetch from the channel (optional, default: 10, range: 1 to 200). Only applicable and used with channel_url; ignored for youtube_url. Combine with start_date/end_date for filtered results."
    },
    "start_date": {
     "type": "string",
     "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?([+-]\\d{2}:\\d{2}|Z)?)?$",
     "description": "Start date for filtering videos by upload date (format: YYYY-MM-DD or ISO 8601, optional). Only applicable and used with channel_url; ignored for youtube_url. Videos uploaded on or after this date will be fetched."
    },
    "channel_url": {
     "type": "string",
     "pattern": "^(https?:\\/\\/)?(www\\.)?youtube\\.com\\/(channel\\/|c\\/|@)[a-zA-Z0-9_.-]+(\\?.*)?$",
     "description": "Enter a valid YouTube channel URL (e.g., https://www.youtube.com/channel/UCxxxxxxxxxxxxxxxxxxxxxx or https://www.youtube.com/@channelhandle). Use this to fetch videos from the channel, paired with 'max_videos', 'start_date', and 'end_date' for limiting and filtering results."
    },
    "youtube_url": {
     "type": "string",
     "pattern": "^(https?:\\/\\/)?(www\\.)?(youtube\\.com\\/(watch\\?v=|embed\\/|v\\/|shorts\\/)|youtu\\.be\\/)[a-zA-Z0-9_-]{11}(\\?.*)?$",
     "description": "Enter a valid YouTube video URL (e.g., https://www.youtube.com/watch?v=video_id, https://youtu.be/video_id, or https://www.youtube.com/shorts/video_id). Use this for fetching a single video, paired with 'language' for transcript. Do not combine with channel filtering fields."
    },
    "include_transcript_text": {
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apify-youtube-video-transcript-extractor-stableapify-dev-a77fa09e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableapify.dev](https://www.zero.xyz/host/stableapify.dev/llms.txt)
