Frameskim Apify Store

YouTube Transcript: channels and playlists

Transcripts of a whole YouTube channel or playlist

YouTube Transcript returns the transcripts of a whole YouTube channel or playlist in one run for $0.01 per transcript, up to 100 videos per run. Paste the channel or playlist URL, choose how many videos with maxVideos, and get one item per video with timestamped segments and the full text.

$0.01 per transcript. Failed videos are not charged.

A real run: 100 videos of one channel

Input
{
  "urls": ["https://www.youtube.com/@veritasium/videos"],
  "maxVideos": 100
}

A channel URL (/@handle, /channel/, /c/, /user/) takes its newest uploads from the Videos tab, not Shorts or live streams; a playlist URL (/playlist?list=) takes its videos in order. maxVideos goes from 1 to 100, 20 by default.

Output: one item per video
{
  "videoId": "KfODG5REyss",
  "title": "I finally saw quantum physics with my own eyes",
  "lang": "en",
  "segments": [
    { "start": ..., "end": ..., "text": "..." },
    ...
  ],
  "text": "...",
  "frameskimUrl": "https://apify.com/emttn/frameskim"
}

Run of November 5, 2026 on this input. Its status message: “Delivered 100 of 100 transcripts.” At the listed price, 100 transcripts cost $1.00. Shown: the first item, the channel’s newest upload; its segments and text are left out. Example channel: Veritasium on YouTube.

Pricing

$0.01 per transcript

Pay per event on Apify, no subscription. Listing the channel or playlist is free; the 100 transcripts of the run above cost $1.00, never more than the spending limit you set for the run.

Limits

  • Up to 100 videos per run in total: single video URLs first, then each channel or playlist in the order you send them, each with up to maxVideos videos (20 by default).
  • Searches are refused before anything runs, with nothing charged.
  • What fails is not charged: a video without captions or blocked by YouTube, or a channel or playlist that cannot be listed, comes back as an item with error.
  • Videos need captions: it does not transcribe audio.

Start the run from your code

API
curl -X POST "https://api.apify.com/v2/acts/emttn~youtube-transcript/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://www.youtube.com/@veritasium/videos"], "maxVideos": 100}'

A run of many videos can outlast the 5 minutes a synchronous call waits, so this call starts the run and returns at once; read the items from its dataset when it finishes.