DEV Community

The AI Entrepreneur
The AI Entrepreneur

Posted on

Stop Manually Copying YouTube Captions: Automate Your Video Data Pipeline

As developers, we know that video content is a gold mine of information. Whether you're building a RAG system, an AI summarizer, or a competitive research tool, transcripts are the foundation. But if you've ever tried to scrape them at scale, you know it's a minefield.

The Problem: Why Transcripts are Hard to Get

The official YouTube Data API is powerful but restrictive. It requires heavy OAuth setups, has strict quota limits, and sometimes doesn't even return the captions you expect. Manual scraping with puppeteer or selenium often fails because YouTube's transcript window is dynamic and asynchronous.

If you're trying to process 1,000 videos for an LLM training set, doing this manually is a massive time sink.

The Solution

I built the YouTube Transcript & Subtitles Scraper to solve exactly this. No API keys required, no proxy management, no headless browser headaches.

How it Works

The scraper targets YouTube's underlying InnerTube API data streams. You provide video URLs, it returns clean timestamped JSON. It supports:

  • Multiple Languages — auto-detects available subtitles
  • Timestamps — perfect for "jump to" features
  • Music Video Fallback — hits the Android client API when standard extraction fails
  • 98.7% success rate across 631 runs

Code Example

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const input = {
    videoUrls: ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"],
    subtitlesLanguage: "en"
};

const run = await client.actor("george.the.developer/youtube-transcript-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

items.forEach(item => {
    console.log(`Transcript for ${item.title}:`);
    console.log(item.transcriptText);
});
Enter fullscreen mode Exit fullscreen mode

Real Numbers

This isn't a side project gathering dust. As of today:

  • 84 active users
  • 631 successful runs
  • 98.7% success rate

From startups building "Second Brain" apps to researchers analyzing political discourse, the consistent feedback is: it just works.

The Edge Case That Almost Broke Everything

The 1.3% failure rate? All music videos without captions. I spent a weekend building a fallback that hits YouTube's InnerTube API with an Android client context — no proxies needed, just a different API surface. That edge case taught me something: your overall success rate doesn't matter. The failures your users notice are the ones that define your tool.

Try It

Stop fighting with DOM selectors and API quotas:

YouTube Transcript Scraper on Apify

If you build something cool with this, drop a comment below or find me on X @ai_in_it.

Top comments (0)