Frameskim Apify Store

YouTube Transcript

Give your agent the words of a YouTube video

Frameskim’s YouTube Transcript API returns each public video’s transcript with timestamps for $0.01 per transcript, up to 100 videos per run. Send up to 100 public YouTube URLs per run. Get each transcript with timestamps per segment and the full text, ready to paste into an LLM.

$0.01 per transcript. Failed videos are not charged.

A horizontal video above its sound wave; lines branch from points in the sound to transcript lines, each with its timestamp.
Each video: its transcript, one timestamped segment per line, plus the full text.
Output, one item per video
{
  "videoId": "4czjS9h4Fpg",
  "title": "Perseverance Rover's Descent and Touchdown on Mars",
  "lang": "en",
  "segments": [
    { "start": 0.0, "end": 4.2, "text": "..." }
  ],
  "text": "...",
  "frameskimUrl": "https://apify.com/emttn/frameskim"
}

Values shortened. segments carry start and end in seconds; text is the whole transcript as one string; frameskimUrl points to Frameskim for frames of the same video.

Use cases

Summarize or ask about a video

Paste text into any model and ask for a summary, the steps of a tutorial or an answer.

Index a batch of videos

Send a list of up to 100 video URLs in one run and load the transcripts into your search or RAG pipeline.

Cite the exact second

Each segment has its start and end, so an answer can link back to the moment it came from.

Input and output

Input
{
  "urls": ["https://youtu.be/4czjS9h4Fpg"],
  "lang": "en"
}

lang defaults to en and falls back to the video's original language.

A video that failed
{
  "videoId": "abc123def45",
  "error": "..."
}

No captions, or blocked by YouTube: the item says why.

Pricing

$0.01 per transcript

Pay per event on Apify. No subscription. A batch of 100 videos with captions costs $1.00, and never more than the spending limit you set for the run.

Limits

  • Public videos, channels and playlists, up to 100 videos per run; each channel or playlist adds up to maxVideos of its videos (20 by default). Searches are refused before anything runs, with nothing charged.
  • What fails is not charged: no captions, blocked by YouTube, or more than 120 s for one video.
  • Videos need captions: it does not transcribe audio.
  • Example: the transcripts of a whole channel in one run

Use it by API or from Claude

API
curl -X POST "https://api.apify.com/v2/acts/emttn~youtube-transcript/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://youtu.be/4czjS9h4Fpg"]}'
MCP
{ "mcpServers": { "apify": {
  "url": "https://mcp.apify.com/?actors=emttn/youtube-transcript"
} } }

Then ask: "Use YouTube Transcript to read this video and summarize it."

FAQ

Which languages?

Any language the video has captions in; set lang (default en) and the actor falls back to the original language. When the video has no manual track in the requested language, YouTube's automatic translation of its captions may be returned instead; the lang field of each item says which language you got.

What if a run fails?

The status message says why. A run that cannot start says "Nothing was charged."; a run that stops unexpectedly says "Only delivered transcripts were charged." and charges only the transcripts it delivered, if any. Retry later if YouTube blocked the request. If it looks like our bug, share the run with us from Apify Console or open an issue on the Issues tab with the run ID: we only see the runs you share.

Do you keep my transcripts?

No. They live only in your run's own Apify storage, with your plan's retention.

Why not the official YouTube Data API?

Its caption download method, captions.download, requires permission to edit the video, an OAuth scope and 200 quota units per call, so it serves the owner of a video, not a third party. This actor reads the captions of public videos and returns them as JSON: 17 of 20 public videos delivered in our last measurement (85%), and a video that cannot be read is reported and not charged.

YouTube transcript alternatives?

You can copy captions by hand from the video page, or write your own extractor and keep it working as YouTube changes. This actor is the pay-per-transcript version of that; for frames and moments of the same videos use Frameskim, and for Reels and TikToks Instagram & TikTok Transcripts, Frames & Posts.

Try it on your first video.

Open the actor on Apify, paste public YouTube URLs and run it on your account. $0.01 per transcript. Failed videos are not charged.