YouTube Transcript Scraper & New Videos Monitor avatar

YouTube Transcript Scraper & New Videos Monitor

Pricing

from $0.80 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper & New Videos Monitor

YouTube Transcript Scraper & New Videos Monitor

Get YouTube transcripts from videos, channels and playlists with timestamps and details. On a schedule, pay only for new videos.

Pricing

from $0.80 / 1,000 transcripts

Rating

0.0

(0)

Developer

Trong Nguyen

Trong Nguyen

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

Get the transcript of any YouTube video, or of every new video on the channels you follow. Paste video, channel or playlist links, put it on a schedule, and each run returns only the videos uploaded since the last one, each with its full transcript, timestamps, title, publish date and view count.

Most YouTube transcript scrapers take one video link at a time. That is fine for a single video. Following ten channels for a newsletter, a research feed or an AI summary bot means finding the new uploads yourself every morning. This one does that part. The first run reads each channel's newest videos and remembers them. After that, a quiet day returns nothing and costs nothing, and an upload day returns just the new video.

Who uses it

  • AI and automation builders feed new videos from a list of channels into a summary, a newsletter or a RAG index, every day, without a video list to maintain.
  • Researchers and analysts pull the transcripts of a whole channel or playlist into one table for search, quotes or text analysis.
  • Marketers and creators follow what competitors and the leaders in their niche are saying, and turn talks into posts.
  • Students and teams get the text of lectures, podcasts and webinars with timestamps to quote from.

Why monitor instead of re-scraping

Following 10 channels every day, 20 recent videos each, at the same price per transcript:

Re-scrape the channels dailyThis Actor
Transcripts you pay for each day200Only the new videos
Cost over 30 daysabout $9$0.30 for the baseline, then cents (3 new videos a day comes to $0.14)
What changed todayYou compare the lists yourselfEvery row is new, marked isNew: true

What you get

  • The full transcript of each video as one text, plus every caption line with its start time and duration in seconds
  • The uploader's own captions when there are some, YouTube's automatic captions when there are not, in the language you ask for when the video has it
  • Title, channel, publish date and time (UTC), duration, view count and description of each video
  • Every caption language the video has, and whether the transcript is automatic
  • A clear status for videos without a transcript: no captions, private or removed, a premiere that has not started yet
  • Results in JSON, CSV, Excel or HTML, through the API, or sent on to Slack, Google Sheets, Make, Zapier or n8n

How to get YouTube transcripts

  1. In Videos, channels or playlists, paste links: https://www.youtube.com/watch?v=..., youtu.be/..., a Shorts link, a channel (@mkbhd or its URL) or a playlist (...playlist?list=...). Mix them freely.
  2. Pick the Transcript language (English by default).
  3. Click Start. Videos come back with their transcripts. Channels and playlists return their newest videos and are saved as your baseline.
  4. Add a daily schedule. From now on each run returns only the new uploads of your channels.

Examples

1. A daily feed of new videos from the channels you follow

{
"urls": ["https://www.youtube.com/@veritasium", "https://www.youtube.com/@3blue1brown", "https://www.youtube.com/@kurzgesagt"],
"maxVideosPerChannel": 10,
"onlyNewVideos": true
}

Schedule it daily and connect the dataset to Make, Zapier or n8n: each new row is a new video with its transcript, ready for a summary or a Slack post.

2. Export a whole playlist once

{
"urls": ["https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab"],
"maxVideosPerChannel": 500,
"onlyNewVideos": false,
"includeTimestamps": true
}

3. Call it from your own code

curl -X POST "https://api.apify.com/v2/acts/babymum7~youtube-transcript-monitor/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"], "language": "en"}'

That request waits up to 5 minutes, enough for a few hundred videos. For bigger runs use the Python client, which waits as long as the run takes:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("babymum7/youtube-transcript-monitor").call(run_input={
"urls": ["https://www.youtube.com/@mkbhd"],
"maxVideosPerChannel": 50,
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
print(video["title"], len(video["transcript"] or ""))

What it costs

RunTranscriptsCost
One video1$0.0015
First run on 10 channels, 20 videos each200$0.30
A daily run that finds 3 new videos3$0.0045

A run of 40 channel videos took about a minute in our tests; a handful of videos takes under 30 seconds.

Input reference

FieldWhat it does
urlsVideo, Shorts, live, channel or playlist links, @handles, or bare video, channel and playlist IDs
languageTwo-letter code such as en, es or de. Uploader captions in it first, then automatic ones, else the video's main language
maxVideosPerChannelNewest videos read from each channel or playlist on the first run (default 20)
onlyNewVideosOn (default): later runs return only videos uploaded since. Off: the newest videos every run, without changing the memory a scheduled run uses
includeTimestampsAdds segments, each caption line with its start and duration (default on)
proxyConfigurationLeave the default; blocked requests are retried on residential IPs at no extra cost to you

Channels are read from their Videos tab. Shorts and past live streams on a channel are not listed there; paste their links directly to get their transcripts.

Output example

{
"isNew": true,
"source": "https://www.youtube.com/@mkbhd",
"videoId": "g6Die8gVFn0",
"url": "https://www.youtube.com/watch?v=g6Die8gVFn0",
"title": "OLED iPad Mini is The Most Apple Product They've Ever Appled",
"channelName": "Marques Brownlee",
"channelId": "UCBJycsmduvYEL83R_U4JriQ",
"channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ",
"publishedAt": "2026-11-03T14:01:31Z",
"durationSeconds": 779,
"viewCount": 5339113,
"description": "iPad Mini 8 Refresh gets a big refresh and a big price bump...",
"status": "ok",
"statusReason": null,
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"availableLanguages": ["en", "ja", "pt", "ru", "tr", "vi"],
"transcript": "Okay, so Apple finally updates the iPad Mini. We've been waiting years for this...",
"segments": [
{"start": 5.25, "duration": 2.042, "text": "Okay, so Apple finally updates the iPad Mini."},
{"start": 7.374, "duration": 1.585, "text": "We've been waiting years for this..."}
]
}

How "new" is decided

Each channel or playlist in your input keeps its own memory of the videos it has returned. The first run is the baseline: it returns the newest videos with isNew: false. Later runs list the channel again, skip every video already returned, and read only the rest. A brand-new upload that YouTube has not captioned yet (automatic captions can take a few hours) is not returned and not remembered: it comes back with its transcript on a later run. Video links you paste are returned every run.

Pricing

$1.50 per 1,000 transcripts, and nothing else to pay for: no start fee and no charge for compute or proxies. Videos without a transcript are listed with their reason and cost nothing. Paid Apify plans get the same transcripts for less:

Apify planPer 1,000 transcripts
Free$1.50
Starter (Bronze)$1.20
Scale (Silver)$1.00
Business (Gold) and up$0.80

If one channel fails, the run says so in its status and in the SUMMARY record and carries on with the rest.

FAQ

How do I get the transcript of a YouTube video? Paste the video link in Videos, channels or playlists and click Start. The transcript comes back as one text, with every caption line and its timestamp alongside.

Can I get the transcripts of a whole YouTube channel? Yes. Paste the channel link or @handle and raise Videos per channel or playlist to the number you want, up to 5,000.

Does it work for videos without uploaded subtitles? Yes, when YouTube has made automatic captions, which it does for most videos with speech. isAutoGenerated tells you which kind you got. Videos with no captions at all are listed with status no_captions and are free.

Can I get the transcript in another language? Set Transcript language. If the video has captions in it, from the uploader or automatic, you get those; if not, you get the video's main language, and availableLanguages lists what it has.

Does it download the video or audio? No. It reads the captions YouTube already publishes, which is why it is fast and cheap.

Can I use it for Shorts and live streams? Yes, paste their links. Live streams have a transcript once they have ended and YouTube has captioned them.

How do I get new videos from a channel automatically? Keep Only new videos on and add a schedule in Apify (daily is typical). Each run returns only the videos uploaded since the last one.