YouTube Transcript & Captions Scraper — Subtitles to Text avatar

YouTube Transcript & Captions Scraper — Subtitles to Text

Pricing

from $20.00 / 1,000 transcript extracteds

Go to Apify Store
YouTube Transcript & Captions Scraper — Subtitles to Text

YouTube Transcript & Captions Scraper — Subtitles to Text

YouTube transcript and YouTube captions scraper: full transcripts and subtitles from YouTube videos in multiple languages, including auto-generated subs, with optional timestamps. Bulk processing for content repurposing, SEO and AI training data.

Pricing

from $20.00 / 1,000 transcript extracteds

Rating

0.0

(0)

Developer

NexGenData

NexGenData

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

1

Monthly active users

11 days ago

Last modified

Share

Get the YouTube transcript of any video: YouTube captions and subtitles as clean text, in any available language, in bulk.

Captions & Text

📊 Sample Output

1 real rows delivered by YouTube Transcript Scraper — Captions & Text — run 4gDDOkmAgAKHewWQv on build 0.1.14

videoIdurllanguagelanguageNamelanguageCodeisAutoGenerated
dQw4w9WgXcQhttps://www.youtube.com/watch?v=dQw4w9WgXcQenEnglishenFalse

Real rows from run 4gDDOkmAgAKHewWQv on build 0.1.14 (2026-09-24), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.

⚙️ Sample inputs

This is the Store example input — the same input Apify's automated check runs — so it is proven to return rows on the current build. Paste it into the input form, or send it through the API, CLI or a schedule:

{
"languages": [
"en"
],
"includeTimestamps": true
}

🔧 Input reference

FieldTypeDefaultWhat it does
urlsarray["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]List of YouTube video URLs to extract transcripts from. watch, youtu.be, /shorts/ and /embed/ links are all accepted.
videoIdsarrayList of YouTube video IDs (11-character codes). Use this instead of, or alongside, urls.
languagesarray["en"]Preferred transcript languages, most-wanted first (e.g. en, es, de). Leave empty to use English. A video with no transcript in any of these languages is reported and NOT charged.
includeTimestampsbooleantrueInclude start time and duration for each text segment.
useResidentialProxybooleantrueRoute through the Apify residential proxy. Strongly recommended: YouTube blocks most datacenter IPs, and with this off a blocked run simply fails.
proxyCountrystringOptional residential proxy country code (e.g. US). Leave blank for any.

🧾 JSON sample record

One real record from run 4gDDOkmAgAKHewWQv (emails/phones masked, long text shortened):

{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"language": "en",
"languageName": "English",
"languageCode": "en",
"isAutoGenerated": false,
"segmentCount": 61,
"fullText": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules\nand so do I ♪ ♪ A full commitment's\nwhat I'm thinking of ♪ ♪ You wouldn't get this\nfrom any other guy ♪ ♪ I just wanna tell you\nhow I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪ ♪ We've known each other\nfor so long ♪ ♪ Your heart's been aching\nbut you're too shy to say it ♪ ♪ Inside we both know\nwhat's been going ♪ ♪ We know the game\nand we're gonna play it ♪ ♪ And if you ask me\nhow I'm feeling ♪ ♪ Don't tell me\nyou're too blind to see ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪ ♪ (Ooh, give you up) ♪ ♪ (Ooh, give you up) ♪ ♪ Never gonna give,\nnever gonna give ♪ ♪ (Give you up) ♪ ♪ Never gonna give,\nnever gonna give ♪ ♪ (Give you up) ♪ ♪ We've known each other\nfor so long ♪ ♪ Your heart's been aching\nbut you're too shy to say it ♪ ♪ Inside we both know\nwhat's been going ♪ ♪ We know the game\nand we're gonna play it ♪ ♪ I just wanna tell you\nhow I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around\nand desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie\nand hurt you ♪",
"segments": [
{
"text": "[♪♪♪]",
"start": 1.36,
"duration": 1.68
},
{
"text": "♪ We're no strangers to love ♪",
"start": 18.64,
"duration": 3.24
},
{
"text": "♪ You know the rules\nand so do I ♪",
"start": 22.64,
"duration": 4.32
},
{
"text": "♪ A full commitment's\nwhat I'm thinking of ♪",
"start": 27.04,
"duration": 4
},
{
"text": "♪ You wouldn't get this\nfrom any other guy ♪",
"start": 31.12,
"duration": 3.96
},
{
"text": "♪ I just wanna tell you\nhow I'm feeling ♪",
"start": 35.16,
"duration": 4.36
},
{
"text": "♪ Gotta make you understand ♪",
"start": 40.52,
"duration": 2.4
},
{
"text": "♪ Never gonna give you up ♪",
"start": 43,
"duration": 2.12
},
"…"
]
}

💰 Pricing

EventPrice (USD)When it is charged
Actor Start (apify-actor-start)$0.005Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
Transcript extracted (apify-default-dataset-item)$0.02Full transcript extracted from a YouTube video.

Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 × $0.02 = $2.00 plus the start fee.

More from the NexGenData Social, video & reviews family:

8 more in this family on the NexGenData Store page.

📊 What you get

Clean JSON output (6 fields):

  • videoId — Video Id
  • url — Url
  • language — Language
  • segmentCount — Segment Count
  • fullText — Full Text
  • segments — Segments

Pricing: $0.020 per transcript (Pay-Per-Event) — about 50 transcripts per $1.

🤖 Use with AI agents

Point Claude, the OpenAI Agents SDK, an n8n flow or any MCP-aware client at it.

Sample agent prompt:

Run YouTube Transcript Scraper on my input and return the structured results.

Agentic payments (x402): Supports agentic payment via x402 — call this actor with USDC, no API key required.

YouTube Metadata · Universal Video Extractor · Video Link Extractor


A NexGenData utility actor.