YouTube Transcript Scraper - Timestamps, SRT and Metadata avatar

YouTube Transcript Scraper - Timestamps, SRT and Metadata

Pricing

from $10.00 / 1,000 result items

Go to Apify Store
YouTube Transcript Scraper - Timestamps, SRT and Metadata

YouTube Transcript Scraper - Timestamps, SRT and Metadata

Get YouTube transcripts from video URLs or IDs: timestamped segments, plain text, word count, optional SRT, plus title, channel, views and caption languages. Creator-made captions come first. Videos without captions get a free error row. 37 of 37 test requests returned a transcript.

Pricing

from $10.00 / 1,000 result items

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

40

Total users

9

Monthly active users

6 days ago

Last modified

Share

ParseForge

YouTube Transcript Scraper - Timestamps, SRT and Metadata

Get the full transcript of any public YouTube video that has captions, from a URL or a video ID. Each video comes back as one row with timestamped segments, the plain text, a word count, an optional SRT file and the video metadata (title, channel, duration, views, likes, upload date, tags, caption languages). You do not need an API key or a quota.

Tested on September 24, 2026: 37 of 37 transcript requests came back, across 10 captioned videos in 18 runs (English and Spanish, creator-made and auto-generated captions). Each run finished in 4.3 to 11.1 seconds.

You pay only for videos that return a transcript. A video with no captions gets a row that says why, with its metadata, and that row is free. There is no start fee today; see Pricing for the fee scheduled on October 7, 2026.

YouTube's official API needs OAuth and quota, and it only returns captions for videos you own. This Actor reads the same caption tracks the YouTube player uses. When a video has both a creator-made track and an auto-generated one, you get the creator-made track.

Who uses itWhat they scrape YouTube for
Content marketersRepurpose video content into blog posts, social snippets, or SEO articles
Market researchersAnalyze what competitors say in their videos without watching them
Podcast producersTurn video interviews into searchable text and show notes
Data scientistsBuild datasets of spoken content for NLP and sentiment analysis
Accessibility teamsGenerate accurate captions and transcripts for video libraries

What it does

This Actor takes YouTube video URLs or video IDs and returns one row per video with the transcript and the video's metadata.

  • πŸ“„ Segmented JSON transcript: every line with its start time, duration, and text, ready for analysis.
  • 🎞️ SRT subtitle export: optional SRT file per video, billed per video, for direct use in players.
  • 🌐 Language selection: pick any ISO language code (en, es, fr...) or leave empty for the spoken language.
  • πŸ”— Flexible input: feed video URLs, video IDs, or both, and cap the run with maxItems.

Each row also says which caption track was used (captionType is manual or auto-generated, plus captionTrackName) and lists every caption language the video offers.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with YouTube data

πŸ“ Repurpose video content.

A content marketer feeds a list of YouTube video URLs and gets full transcripts to turn into blog posts, newsletters, and social media copy.

πŸ” Competitor research.

A market researcher scrapes transcripts from competitor videos to identify talking points, product mentions, and messaging without watching hours of footage.

πŸŽ™οΈ Podcast transcription.

A podcast producer extracts transcripts from video interviews to create searchable show notes and improve SEO.

πŸ“Š NLP dataset building.

A data scientist collects thousands of transcripts by video ID to train sentiment analysis or topic modeling models.

β™Ώ Accessibility compliance.

An accessibility team scrapes transcripts and SRT files to add captions to an existing video library.

Why choose this scraper

What you get
No API key or quotasReads the public caption tracks directly, with no OAuth or daily limits.
Creator captions firstWhen a video has a human-made track, you get it instead of the auto-generated one.
Metadata on every rowTitle, channel, duration, views, likes, upload date, tags and caption languages, even on rows without a transcript.
Free error rowsA video without captions returns a row with the reason and is not billed.
A run that failed says soIf no video in the run returns a transcript, the run ends as FAILED instead of SUCCEEDED with an empty dataset.

Common complaints about transcript scrapers, and what this Actor does

These come from the 1 and 2 star reviews on the most used YouTube transcript Actor in the Apify Store, and from a 3 star question about its pricing.

"Did not give response to the video." Every video you send gets a row. If there is no transcript, the error field says why: no captions on the video, only auto-generated captions when you turned them off, or the video is private or removed. That row still carries the title, channel and caption languages, and you are not charged for it.

"Worked very well, but now it stopped." YouTube changes things, and any scraper can break. This Actor makes a breakage visible. When not a single video in a run returns a transcript, the run ends as FAILED with the reason in the status message, so a scheduled job or an API integration notices at once.

"Does $7 per 1000 items mean 1000 transcriptions?" Here, yes. One billed item is one video with its complete transcript, however long the video is. The 58-minute NASA press conference in our tests (1,590 segments, 10,129 words) was one item.

How it compares

Same videos, same day (September 24, 2026), against the most used transcript Actor in the Store, pintostudio/youtube-transcript-scraper.

This Actorpintostudio/youtube-transcript-scraper
Captioned test videos returned6 of 66 of 6
Time per run4.3 to 11.1 s4.4 to 6.0 s
Videos per runMany (URL list, ID list, or both)One videoUrl per run
Timestamped segmentsYesYes
Plain text, word count, SRTYesNo, segments only
Video metadata and caption languagesYes, on every rowNo
Which track when there are severalCreator-made first, captionType says whichNot shown
Video with no captionsError row with the reason, not billedEmpty data: [] row, billed

Configure the run

Give the Actor video URLs, video IDs, or both. Set a language if you want a specific one, and cap the run with maxItems. The Input tab lists every parameter. We ran each example below on September 24, 2026; the result is under it.

1. One video (the default input).

{
"startUrls": [{ "url": "https://www.youtube.com/watch?v=UF8uR6Z6KLc" }],
"maxItems": 10
}

Result: 1 row, 244 segments from the creator-made English track.

2. Several videos by ID.

{
"videoIds": ["iG9CE55wbtY", "arj7oStGLkU", "H14bBuluwB8"]
}

Result: 3 rows with 427, 315 and 117 segments, all creator-made English tracks.

3. A specific language.

{
"startUrls": [{ "url": "https://www.youtube.com/watch?v=XUqrvbsTfck" }],
"language": "es"
}

Result: 1 row, 365 segments from the Spanish track.

4. A short link with an SRT file.

{
"startUrls": [{ "url": "https://youtu.be/H14bBuluwB8" }],
"includeSrt": true
}

Result: 1 row with 117 segments and the SRT text in transcriptSrt. The SRT is billed as its own event.

5. Creator-made captions only.

{
"videoIds": ["arj7oStGLkU", "BbPeeZLKrT0"],
"includeAutoGenerated": false
}

Result: 1 transcript (315 segments) and 1 unbilled row for BbPeeZLKrT0, which only has auto-generated captions.

Pricing

Pay per event. You pay for each video that comes back with a transcript. Rows that report an error are free.

Your Apify planPer transcriptPer 1,000 transcriptsSRT export, per video
Free$0.015$15.00$0.0045
Bronze$0.0133$13.30$0.00399
Silver$0.0117$11.70$0.00351
Gold and above$0.010$10.00$0.003

There is no start fee today. From October 7, 2026 a start fee of $0.005 per run is scheduled (one charge at the default 1,024 MB of memory, one more for each extra GB if you raise the memory). The Pricing tab always shows the live numbers.

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the YouTube Transcript Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to YouTube through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/youtube-transcript-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why does a row have an error instead of a transcript?

The error field gives the reason. "No subtitles available for this video" means the video has no caption track at all, so there is nothing to read. "Manual subtitles not available" means you turned off auto-generated captions and the video only has those. "Video not available" means it is private, removed or blocked. "Could not load captions" means YouTube refused several attempts in a row; run the video again. These rows are not billed.

Why is the transcript in the wrong language?

Set the language field to the ISO code you want. If the video has no track in that language, you get the spoken language. availableSubtitleLanguages and availableAutoCaptionLanguages show what the video offers.

Why is the SRT field empty?

Set includeSrt to true. With it off, transcriptSrt stays empty and you are not charged for it.

Why did the run stop before processing all my videos?

Check maxItems. The Actor stops after that many videos. Free-plan runs stop at 10.

Why did my run end as FAILED?

No video in the run returned a transcript. The status message lists the first errors. You were not charged for those rows.

FAQ

QuestionAnswer
Does this work for auto-generated captions?Yes. When a video only has auto-generated captions you get those, and captionType says auto-generated. Turn off includeAutoGenerated to skip them.
Which track do I get when there are several?The track in your chosen language if it exists. Otherwise the spoken language, with the creator-made track ahead of the auto-generated one.
Can I get the transcript in a specific language?Yes, set the language field to an ISO code like en, es, or fr. If the video has no track in that language, you get the spoken language.
What is the difference between the JSON transcript and the SRT export?The JSON transcript is an array of segments with start time, duration, and text. The SRT export is the same text as a subtitle file, in the transcriptSrt field. SRT is billed per video and is off by default.
How many videos can I scrape in one run?Up to 1,000,000 with maxItems. The Actor works through 10 videos at a time.
Do I need a YouTube API key?No. There are no API keys, OAuth, or daily quotas.
Can I input a YouTube channel or playlist URL?No, only single videos. To get every video of a channel or playlist, run the YouTube Scraper first and paste its url column here.
What output formats are supported?CSV, JSON, Excel, or XML from the Dataset tab or the API.
Does it work with age-restricted or private videos?Private videos do not work, and age-restricted videos may not return a transcript. When no transcript comes back, you get an error row that is not billed.
Is the transcript returned as one string or segmented?Both. transcriptPlainText has the full text and transcript has the timestamped segments.
Can I run this on a schedule?Yes, you can schedule recurring runs in Apify to collect new transcripts automatically.

Next step

Each transcript row names its video and its channel, so you can keep going with the other ParseForge YouTube Actors:

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by YouTube LLC. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.