YouTube Transcript Scraper: Captions, Subtitles & Timestamps avatar

YouTube Transcript Scraper: Captions, Subtitles & Timestamps

Pricing

from $5.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper: Captions, Subtitles & Timestamps

YouTube Transcript Scraper: Captions, Subtitles & Timestamps

Get YouTube transcripts as text plus timestamped segments from video links, keyword searches or a channel's latest videos. Caption language, title and channel on every row. Videos without captions are never charged. Pay per transcript.

Pricing

from $5.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

VNCNT Labs

VNCNT Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Share

Get the transcript of any YouTube video as plain text plus timestamped segments. Paste video links or IDs, give a search keyword, or give a channel (@handle or link) and get transcripts of its latest videos. Each video gets one row with its caption language, title and channel. Videos without captions get a clear status row and are never charged.

What you get

  • Full transcript text, ready for summaries, AI prompts, SEO, research or subtitles work
  • Timestamped segments: every caption line with start, duration and end in seconds
  • Optional [mm:ss] transcript text with a timestamp on every line
  • Caption language, video title, channel name and link
  • From keyword searches: search rank, views, video length and a Shorts flag
  • A status on every row: ok, no_captions, not_found, unavailable, error or invalid_input

Input

FieldWhat it does
videosYouTube links (watch, youtu.be, Shorts, embed, live) or 11-character video IDs
keywordsSearch YouTube and transcribe the top results (up to 20 keywords)
maxVideosPerKeywordResults per keyword (1-200, default 10)
excludeShortsSkip Shorts in search and channel results
channelsYouTube channels: @handle, channel link or UC... ID (up to 10). Transcribes their latest videos
maxVideosPerChannelVideos per channel (1-200, default 20)
channelSortnewest (default) or relevance
languageCaption track language code (e.g. en, es, de). Empty = the video's own language
countryCountry for searches (name or 2-letter code)
includeSegmentsTimestamped segments (default on)
includeTimestampedTextOne text field with [mm:ss] before each line
fastModePriority queue for big batches with tight timeouts
maxVideosHard cap on videos per run (default 100, max 1,000)
{ "videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw", "dQw4w9WgXcQ"], "language": "en" }
{ "keywords": ["how to make sourdough bread"], "maxVideosPerKeyword": 10, "excludeShorts": true }
{ "channels": ["@veritasium"], "maxVideosPerChannel": 20, "excludeShorts": true }

Output (one row per video)

{
"type": "transcript", "status": "ok", "videoId": "jNQXAC9IVRw",
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw", "title": "Me at the zoo",
"channelName": "jawed", "channelUrl": "https://www.youtube.com/@jawed", "language": "en",
"segmentsCount": 6, "transcriptDurationSeconds": 18.88, "wordCount": 39,
"transcript": "All right, so here we are, in front of the elephants ...",
"segments": [{ "start": 1.2, "duration": 2.16, "end": 3.36, "text": "All right, so here we are, in front of the elephants" }],
"charged": true
}

A video without captions:

{ "type": "transcript", "status": "no_captions", "videoId": "aqz-KE-bpKQ", "title": "Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film",
"error": "This video has no captions (creator or automatic).", "charged": false }

Keyword searches also add a keyword row (videosFound, videosQueued), and channels a channel row (channelId, videosFound, videosQueued, shortsSkipped). Transcripts from a channel also carry channelInput and publishedAt. The run summary is in the OUTPUT record.

Pricing

  • $0.005 per transcript delivered (event transcript). No start fee.
  • Fast mode: $0.008 per transcript (event transcript-fast), charged instead of the standard price, never both.
  • Not charged: videos without captions, missing or private videos, provider errors, invalid inputs, keyword and channel rows.
  • Set a maximum charge per run and the Actor stops there. Apify free plan: up to 10 transcripts per run.

Use from AI agents (MCP)

AI assistants such as Claude, ChatGPT and Cursor can run this Actor through Apify's MCP server (https://mcp.apify.com). The agent can look up the Actor, read its input schema, run it and read the results. Runs use your own Apify account and are charged at the prices on this page.

  • Actor name: vncntlabs/youtube-transcript-scraper
  • Server URL with only this tool: https://mcp.apify.com?tools=vncntlabs/youtube-transcript-scraper. The default https://mcp.apify.com also works.
  • Claude (desktop app or claude.ai): Settings > Connectors > Add custom connector, paste the server URL, then sign in to Apify.
  • ChatGPT: turn on Developer mode, then Settings > Apps & Connectors > Create, paste the server URL and choose OAuth.
  • Cursor: add the server to mcp.json:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=vncntlabs/youtube-transcript-scraper" } } }

Example prompt: "Use the Apify Actor vncntlabs/youtube-transcript-scraper to get the transcript of https://www.youtube.com/watch?v=dQw4w9WgXcQ and summarise it in five bullet points with timestamps."

To cap the cost of an agent's run, it can pass maxTotalChargeUsd in the run options.

FAQ

Which captions? Creator-uploaded captions or YouTube's automatic captions, as YouTube serves them. Can I pick the language? Yes, with language. If the video has no track in that language you get a free no_captions row. How fast? In our tests 90 videos took about 1.5 minutes and 3 videos about 15 seconds. Fast mode uses a priority queue for big batches with tight timeouts. Long videos? Yes. We tested videos up to 13 hours (163,000 words) in one row. Does channel mode get every video a channel ever posted? It gets the channel's videos that YouTube search lists, newest first (tested: 116 of a big tech channel's videos in one search). Each channel gets a summary row with how many videos were found; if that is fewer than you asked for, the row says so. publishedAt is approximate, because YouTube shows dates like "3 weeks ago".

Public YouTube captions delivered through a licensed SERP data API. Transcript texts belong to their creators. Not affiliated with or endorsed by YouTube or Google. Questions: hello@vncntlabs.com