ChimeraMiND Data
Home / Tools / YouTube Transcript Scraper
Video

YouTube Transcript Scraper

1 result = the full transcript of 1 video, $0.004/video (FREE). YouTube captions with timestamped segments, publish date, view count and a completeness check. Multiple languages and auto-generated captions.

Run YouTube Transcript Scraper on Apify →

Read the step-by-step guide

Pricing

Apify planPer videoPer 1,000
Free plan$0.004$4
Starter$0.0032$3.20
Scale$0.0028$2.80
Business$0.0024$2.40
Enterprise$0.0024$2.40
Enterprise+$0.0024$2.40

Primary event rates from a catalog snapshot; this is not the total price of a run. Additional charge events and Actor Start fees may apply; start fees can scale with memory. Check the Actor's Pricing tab on Apify for all events, conditions and current plan-specific rates, and set a maximum run budget before starting.

Sample output

Archived example · 7 days old. This is a snapshot, not current data.run 9M6gHlUDOofZDuobK · 2026-10-11
{
  "videoId": "dQw4w9WgXcQ",
  "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
  "channelName": "Rick Astley",
  "channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
  "durationSeconds": 213,
  "publishDate": "2009-10-25T06:57:33.000Z",
  "viewCount": 1825545748,
  "language": "en",
  "languageName": "English",
  "isAutoGenerated": false,
  "availableLanguages": [
    "en",
    "en",
    "de-DE"
  ],
  "text": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ♪ A full commitment's what I'm thinking of ♪ ♪ You wouldn't get this from any other guy ♪ ♪ I just wanna tell you how I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna l…",
  "segments": [
    {
      "start": 1.36,
      "dur": 1.68,
      "text": "[♪♪♪]"
    },
    {
      "start": 18.64,
      "dur": 3.24,
      "text": "♪ We're no strangers to love ♪"
    },
    {
      "start": 22.64,
      "dur": 4.32,
      "text": "♪ You know the rules and so do I ♪"
    }
  ],
  "segmentCount": 61,
  "transcriptComplete": true,
  "transcriptCoverage": 0.992,
  "scrapedAt": "2026-10-11T15:34:54.606Z"
}

Call from code

Use the existing catalog input below as a starting point. Review the tool's input form on Apify before running it.

import json
import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("webdatatools/youtube-transcript-scraper").call(run_input=json.loads("{\n    \"videoUrls\": [\n        \"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n    ],\n    \"maxVideos\": 10,\n    \"language\": \"en\"\n}"))

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('webdatatools/youtube-transcript-scraper').call({
    "videoUrls": [
        "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
    ],
    "maxVideos": 10,
    "language": "en"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
curl -X POST "https://api.apify.com/v2/acts/webdatatools~youtube-transcript-scraper/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"videoUrls":["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],"maxVideos":10,"language":"en"}'

Related tools

Workflows