Youtube Transcript avatar

Youtube Transcript

Pricing

Pay per usage

Go to Apify Store
Youtube Transcript

Youtube Transcript

Extract transcripts (with timestamps) from YouTube videos.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Canadesk Support

Canadesk Support

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

a month ago

Last modified

Security

Limited permissions

Share

YouTube Transcript Scraper

A high-performance scraper to extract transcripts and subtitles directly from YouTube videos.

ℹ️ This scrapes public YouTube transcripts — no authentication required. It uses lightweight HTTP requests instead of heavy browser automation for maximum speed.

Features

  • Batch URL Processing: Extract transcripts from multiple YouTube videos in a single run.
  • Timestamp Mode: Optionally include timestamps indicating exactly when each spoken segment occurs.
  • Smart Fallback Mechanisms: Automatically tries multiple internal YouTube APIs (InnerTube, then HTML scraping fallback) for maximum reliability.
  • Clean Text Parsing: Cleanly handles complex XML subtitle structures and HTML entities to return pure text.
  • High Performance Execution: Runs fully headless via pure HTTP GET/POST requests, vastly outperforming Puppeteer approaches.
  • Proxy Support: Integrates Apify Proxies seamlessly via Undici to bypass region or rate-limit blocks.

Input Parameters

ParameterTypeDescription
startUrlsArrayA list of YouTube video URLs to process (max 3 per run).
includeTimestampsString"Yes" to return timestamps with text, or "No" (default) for a single combined plain text string.
proxyObjectProxy configuration. Recommended for preventing region blocking.

Output

Data is stored in the default dataset in JSON format.

Example: Plain Text Mode (includeTimestamps="No")

{
"url": "https://www.youtube.com/watch?v=J9DwXeAtWrs",
"transcript": "When the Romans officially pulled out of Britain in the fourth and fifth centuries AD, they left in their wake a patchwork of Brethonic and Romano British kingdoms scattered throughout [music] the island. Just like on the mainland, however, it didn't take long for warlike peoples on the peripheries to move in and take",
"error": null
}

Example: With Timestamps (includeTimestamps="Yes")

{
"url": "https://www.youtube.com/watch?v=J9DwXeAtWrs",
"transcript": [
{
"timestamp": "0:02",
"text": "When the Romans officially pulled out of"
},
{
"timestamp": "0:04",
"text": "Britain in the fourth and fifth"
},
{
"timestamp": "0:06",
"text": "centuries AD,"
},
{
"timestamp": "0:09",
"text": "they left in their wake a patchwork of"
},
{
"timestamp": "0:12",
"text": "Brethonic and Romano British kingdoms"
},
{
"timestamp": "0:16",
"text": "scattered throughout [music] the island."
},
{
"timestamp": "0:21",
"text": "Just like on the mainland, however, it"
},
{
"timestamp": "0:23",
"text": "didn't take long for warlike peoples on"
},
{
"timestamp": "0:26",
"text": "the peripheries to move in and take"
}
],
"error": null
}