logo
languageENdown
menu

YouTube Transcript Scraper

Turn public YouTube video URLs into transcript text and video metadata for research, analysis, and content workflows.

Overview

Turn public YouTube videos into analysis-ready text without separating the spoken content from its surrounding context. The result pairs each available transcript with the video title, description, channel, publication date, and visible engagement counts, so a research or content team can work from one consistent row per submitted video.

This data is useful wherever watching and manually transcribing videos would slow down a larger workflow. It gives analysts text they can search, classify, summarize, compare, or load into a knowledge base while preserving enough video context to trace every passage back to its source.

Data notes

The data is collected from public YouTube video pages and their accessible transcript or caption content. Each row corresponds to one submitted video URL. Transcript availability depends on the video: private, removed, restricted, or caption-free videos may not provide transcript text, and the Error value can help separate those cases from successful rows.

View Count and Like Count are text snapshots observed at collection time and may change later. Published Time preserves the source's ISO 8601 timestamp, while Published Date provides the same publication day as a date-only value. Transcript is combined into one text value rather than split into timestamped caption segments. Long descriptions and transcripts can therefore be much larger than the other fields.

What the results look like

Each record represents one submitted YouTube video and the transcript and metadata available for it.

Video titleChannel namePublished dateView countLike countTranscript
How to Scrape Business Data from Google Maps with Octoparse | Cat Cafe ExampleOctoparse2026-03-066304Hey there, I'm Jackson, the new icon of Octoparse, your friendly helper for quick and easy web scraping.
Rick Astley - Never Gonna Give You UpRick Astley2025-01-151.2B18MWe're no strangers to love…

Other available fields include Video URL, Video description, Channel URL, Published time, and Error.

Use cases

  • For topic and message analysis, compare Transcript with Video Title and Video Description to see how closely the spoken content matches the video's framing.
  • For creator research, group records by Channel Name and use Published Date to study themes or publishing patterns over time.
  • For content repurposing, use Transcript as the working text for summaries, briefs, article outlines, quotation review, or internal search.
  • For dataset quality checks, review Error alongside Video URL and Transcript to identify videos that need replacement, exclusion, or a separate manual review.

Scope & Boundaries

Each run accepts 1 to 100,000 public YouTube video URLs; transcript text is returned only when captions or a transcript are accessible for the video.

  • Good for
  • Use it when you need transcript text and core video metadata for one or more public YouTube videos.
  • Use it to prepare video text for content research, summarization, topic analysis, or searchable datasets.
  • Do not use for
  • Do not use it for private, removed, region-restricted, or age-restricted videos that are not publicly accessible.
  • Do not use it when a video has no accessible captions or transcript, or when you need audio or video file downloads.

Failure Handling

Failure and retry behavior declared by the author. We recommend including it in your system prompt when integrating.

  1. 1If a run fails, retry the same small URL set once; if it fails again, split a large batch into smaller groups.
  2. 2If a record has no transcript, check the Error message and confirm that the video is public and has accessible captions or transcript data.

Input

Parameters required to call this app, generated from the input.schema in manifest.json.

FieldBusiness nameTypeRequiredDefaultEnum / ConstraintsExampleDescription
video_urlsYouTube video URLsarray<string>Yesup to 100000 items["https://www.youtube.com/watch?v=YhbIzV6YoEo&t=7s"]Public YouTube video page URLs whose transcript and metadata you want to collect. Provide between one and 100,000 URLs per run.

Output

Field structure of a single record, generated from the output.schema in manifest.json.

FieldBusiness nameTypeExampleDescription
video_urlVideo URLstringhttps://www.youtube.com/watch?v=YhbIzV6YoEo&t=7sYouTube video page address submitted for transcript collection.
video_titleVideo titlestringHow to Scrape Business Data from Google Maps with Octoparse | Cat Cafe ExampleTitle displayed for the YouTube video at collection time.
video_introVideo descriptionstringLearn how to scrape business data from Google Maps using Octoparse in this step-by-step web scraping tutorial. If you're looking for an easy way to collect local business listings for lead generation, this guide will show you how to do it without coding.Introductory description text displayed for the YouTube video.
channel_nameChannel namestringOctoparseName of the YouTube channel that published the video.
channel_urlChannel URLstringhttp://www.youtube.com/@OctoparsewebscrapingAddress of the YouTube channel that published the video.
published_atPublished timestring2026-03-06T10:23:22+00:00Video publication timestamp in the ISO 8601 text supplied by the source.
published_datePublished datestring2026-03-06Calendar date on which the video was published.
view_countView countstring630View-count text observed for the video at collection time.
like_countLike countstring4Like-count text observed for the video at collection time when available.
transcriptTranscriptstringHey there, I'm Jackson, the new icon of Octoparse, your friendly helper for quick and easy web scraping.Available transcript or caption text for the video, combined into one text value.
errorErrorstringCollection issue reported for this video; blank when the sampled record completed normally.

Record Schema

Output is returned record by record. detail.output.idFieldHint

output.schema
{
  "type": "object",
  "properties": {
    "video_url": {
      "type": "string",
      "title": "Video URL",
      "description": "YouTube video page address submitted for transcript collection.",
      "prefill": "https://www.youtube.com/watch?v=YhbIzV6YoEo&t=7s"
    },
    "video_title": {
      "type": "string",
      "title": "Video title",
      "description": "Title displayed for the YouTube video at collection time.",
      "prefill": "How to Scrape Business Data from Google Maps with Octoparse | Cat Cafe Example"
    },
    "video_intro": {
      "type": "string",
      "title": "Video description",
      "description": "Introductory description text displayed for the YouTube video.",
      "prefill": "Learn how to scrape business data from Google Maps using Octoparse in this step-by-step web scraping tutorial. If you're looking for an easy way to collect local business listings for lead generation, this guide will show you how to do it without coding."
    },
    "channel_name": {
      "type": "string",
      "title": "Channel name",
      "description": "Name of the YouTube channel that published the video.",
      "prefill": "Octoparse"
    },
    "channel_url": {
      "type": "string",
      "title": "Channel URL",
      "description": "Address of the YouTube channel that published the video.",
      "prefill": "http://www.youtube.com/@Octoparsewebscraping"
    },
    "published_at": {
      "type": "string",
      "title": "Published time",
      "description": "Video publication timestamp in the ISO 8601 text supplied by the source.",
      "prefill": "2026-03-06T10:23:22+00:00"
    },
    "published_date": {
      "type": "string",
      "title": "Published date",
      "description": "Calendar date on which the video was published.",
      "prefill": "2026-03-06"
    },
    "view_count": {
      "type": "string",
      "title": "View count",
      "description": "View-count text observed for the video at collection time.",
      "prefill": "630"
    },
    "like_count": {
      "type": "string",
      "title": "Like count",
      "description": "Like-count text observed for the video at collection time when available.",
      "prefill": "4"
    },
    "transcript": {
      "type": "string",
      "title": "Transcript",
      "description": "Available transcript or caption text for the video, combined into one text value.",
      "prefill": "Hey there, I'm Jackson, the new icon of Octoparse, your friendly helper for quick and easy web scraping."
    },
    "error": {
      "type": "string",
      "title": "Error",
      "description": "Collection issue reported for this video; blank when the sampled record completed normally.",
      "prefill": ""
    }
  },
  "required": [],
  "additionalProperties": false
}

Integration

This app can be integrated via MCP, API, SDK, or file export — all channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API Key (long-lived, created in the Open Platform console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way.

With the MCP (Model Context Protocol), you can call this app directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.

Client config

Replace the value after Bearer with your long-lived API Key. Works in any client, CI, or headless environment.

mcpServers config
{
  "mcpServers": {
    "YiJacobJohnRaku__youtube-transcript-scraper": {
      "type": "http",
      "url": "https://mcp-v2.octoparse.com?pin=YiJacobJohnRaku/youtube-transcript-scraper",
      "headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
    }
  }
}

Let AI set it up for you

Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client — it will complete the setup its own way. (The prompt asks the AI to request your API Key from you, so credentials never end up in chat history or shared configs.)

detail.access.mcp.composeHint

Pricing

returned video record

Charged by the number of records successfully returned. Failed tasks are not charged.

$0.001/ record

Multiple billing events accumulate independently — see each item for details. Failed tasks are not charged.

Try It Now

Fill in the parameters and run — results come from a real call.

Example
Parameters are validated against input.schema before submission
Please fill in the required parameters first
$0.001 / record