Youtube Transcript avatar

Youtube Transcript

Pricing

$5.00/month + usage

Go to Apify Store
Youtube Transcript

Youtube Transcript

Extract transcripts (with timestamps) from YouTube videos.

Pricing

$5.00/month + usage

Rating

0.0

(0)

Developer

Canadesk Support

Canadesk Support

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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
}