Blog/youtube
1 min read

I Summarized 500 YouTube Videos Without Watching One

How I cleared a 500-video watch-later backlog by pulling every transcript with one call and letting a model summarize them.

I Summarized 500 YouTube Videos Without Watching One

Copy this line to your agent to pull YouTube transcripts and summarize a whole backlog.

set up https://monid.ai/SKILL.md and use apify /starvibe/youtube-video-transcript to pull transcripts for a list of videos, then summarize each

You do not have to watch 500 YouTube videos to know what is in them. I had a watch-later list that had quietly become a debt, so I stopped pretending I would ever press play, pulled every transcript through one call, and handed the text to a model to summarize. A weekend of guilt turned into an afternoon of reading. Monid is a pay-per-call data API marketplace: one key and one wallet reach hundreds of external data endpoints across scraping, enrichment, social data, and search, with the price shown before anything runs. Here is exactly how I cleared the backlog, and where this approach earns its keep versus falls short.

TL;DR

  • I had a 500-video backlog of conference talks and tutorials I was never going to watch, so I pulled each transcript with apify /starvibe/youtube-video-transcript on Monid instead.
  • The endpoint takes one video URL plus a language and returns a timestamped transcript, a clean concatenated text, and the video's metadata. Billed per result (magnitude only at monid.ai/tools).
  • I fed each transcript to a model with a fixed summary prompt and got a three-bullet gist plus the timestamps worth jumping to.
  • Roughly 500 transcripts landed in the low single-digit dollars, and reading the summaries took an afternoon instead of a hundred-plus hours of playback.
  • Honest limits at the end: auto-captions have errors, transcripts drop the visuals, and this replaces triage, not the handful of videos you actually should watch.

The backlog that was really a guilt pile

You know this list. Mine was a mix of conference talks a friend swore by, hour-long deep dives I bookmarked at 1am, and tutorial series I told myself I would work through on a quiet weekend. Five hundred videos. At even fifteen minutes each that is over a hundred hours, and the honest truth is that maybe forty of them held something I needed. The rest were there because closing the tab felt like admitting I would never learn the thing.

The problem was never a lack of time to learn. It was that I could not tell, without watching, which forty mattered. A title and a thumbnail are marketing. The substance I wanted was text sitting inside every one of those videos, and text is something code can read far faster than I can.

Set up once

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More details in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add --label main --key <your-api-key>

More details in the CLI quickstart.

Why I did not use YouTube's own API

My first instinct was the official route, and it is worth saying why it does not work here. The YouTube Data API has a captions.download method, and the moment you read the docs you hit the wall: it only returns captions for videos you own. Downloading the transcript of someone else's talk is not something the official API will do for you, at any price, because it is scoped to the channel owner's OAuth. For a backlog of other people's videos, that is a dead end before you start.

So the job was: give it a URL, get back the words. The endpoint that does exactly that is apify /starvibe/youtube-video-transcript, maintained on Apify. It fetches multi-language captions with an automatic fallback to auto-generated ones, and hands back both timestamped segments and a single concatenated transcript, plus the metadata I would sort on later.

The pull

I never trust a source on faith, so I ran one video first and read the transcript against the actual playback:

monid run -p apify -e /starvibe/youtube-video-transcript \
  -i '{"youtube_url":"https://www.youtube.com/watch?v=gN07gbipMoY","language":"en"}' -w
# -> COMPLETED: 1 timestamped transcript + concatenated text
#    + video metadata, billed per result

The words matched what I heard, the timestamps lined up with the spots I spot-checked, and the en language flag pulled the English captions cleanly. A free monid inspect -p apify -e /starvibe/youtube-video-transcript had already shown me the schema and the per-result price, so I knew the shape of the bill before I opened the tap. One thing the schema makes explicit and I want to pass on: you provide exactly one of youtube_url (a single video, paired with language) or channel_url (with max_videos, start_date, and end_date to sweep a whole channel). My backlog was a scattered list of individual videos, so I looped the single-video form once per URL.

The backlog pipeline: 500 video URLs, one transcript call each, clean concatenated text, a fixed summarize prompt, and a three-bullet gist with jump timestamps

For channels I wanted wholesale, the other form is one call: point channel_url at the channel, set max_videos and a start_date/end_date window, and it batches the archive. Roughly 500 transcripts across my mixed list came to the low single-digit dollars total, billed per result, which is cheaper than the one coffee I would have needed to sit through even the first ten videos.

Letting the model do the watching

A folder of 500 transcripts is not reading material either, so the second half was making the text small. I fed each concatenated transcript to a model with one fixed instruction: give me a three-bullet summary of what this video actually teaches, name the single most useful moment, and return its timestamp so I can jump straight there if the summary earns a click.

That last part is why keeping the timestamped segments mattered. The concatenated text is what the model reads, but the timestamps turn a summary back into a two-minute skim when a video is worth it. For a fifty-minute talk, "the useful part starts at 34:10" is the entire value. I was not trying to avoid every video, just to find the forty that deserved my eyes and skip the 460 that did not.

Triage by summary: if a summary is not useful you archive the video unwatched, and if it is you jump to the timestamp, then only watch the segment when it is still valuable

The honest caveats

I would be lying if I said transcripts are as good as watching, so three things I keep in mind.

Auto-generated captions have errors. When the endpoint falls back to auto-captions, technical terms, names, and code get mangled, and a summary built on a garbled transcript inherits the garble. For anything where a specific number or API name matters, I treat the summary as a pointer to the timestamp, not as the source of truth.

Transcripts throw away the picture. A whiteboard talk, a screen-recorded tutorial, a chart-heavy keynote: the words alone lose the half that lives on screen. This method is excellent for talks and interviews that are mostly speech, and weakest for anything where the demo is the point. Knowing which is which is on you.

This is triage, not a replacement for watching. The whole win is deciding faster which videos are worth real attention. The forty that mattered, I still watched, or at least watched the segment the timestamp sent me to. The method bought back the hundred hours I would have spent finding them.

FAQ

Do I need a YouTube API key or OAuth? No. The official captions.download only works for videos you own, so it cannot touch a backlog of other people's videos. You integrate Monid once, fund a pay-as-you-go wallet, and the provider on Apify handles the captions access.

Can I pull a whole channel instead of one video at a time? Yes. Pass channel_url with max_videos, start_date, and end_date instead of youtube_url, and one call sweeps the channel's archive inside that date window.

What does it actually return per video? A timestamped transcript in segments, a single concatenated transcript text, and video metadata like title, duration, publish date, and engagement counts. The timestamps are what let a summary point you back to the exact moment worth watching.

How much did 500 transcripts cost? Billing is per result, so one spot-check video is a fraction of a cent and a 500-video sweep lands in the low single-digit dollars, always shown before the run. Current prices are at monid.ai/tools.

Can an agent run the whole thing? Yes. Because Monid ships as an MCP server, I later handed a fresh batch to an agent as "pull the English transcript for each of these URLs and summarize each in three bullets with the key timestamp," and it ran the endpoint and returned the summaries.

Try it on your own watch-later list

Take the backlog you have been feeling guilty about. Inspect the endpoint for free, pull one transcript, and read it against the video to trust it. If it matches, loop your list, feed the text to a model with a fixed summary prompt, and read the gists instead of the guilt. It costs pocket change to reclaim your week, at monid.ai.

youtubeweb scrapingtranscriptsapify