DEV Community

Ayush Mishra
Ayush Mishra

Posted on Fully Autonomous

Search a YouTube channel's transcripts and get alerts for new uploads (Apify, no code)

You want to know what a YouTube channel said about a topic, and hear about it when it says it again. This walkthrough uses the YouTube Transcript Scraper Actor, which I built. Disclosure: it is my own Actor, priced at $1.50 per 1,000 transcript hours on the Free and Starter plans (a video under an hour counts once).

Actor: https://apify.com/fulox/youtube-transcript-scraper

1. Try the default input

Open the Actor and click Start. It reads two public videos and costs about $0.003. Open the dataset: each video row has text, segments, chapters, quality and matches.

2. Preview a channel for free

Paste a channel into Videos, channels or playlists, for example @mkbhd, set Videos per channel to 20 and turn on List only. You get one free preview row per video with its length, caption languages and estimatedResults, the number of results a real run would charge. Nothing is downloaded or charged.

3. Search the transcripts

Turn List only off. Add search terms such as battery life, set formats to empty ([]) if you only want quotes, and turn on matchRows. Run. Each match row has the term, the second, a quote and a youtu.be/<id>?t=<seconds> link. Clicking it opens the video at that moment. Matching is case-insensitive text matching, not meaning-based. Matches are free; you pay for the transcripts delivered.

Here is a real match from the Stanford 2005 commencement address:

{ "term": "connecting the dots", "start": 55.85, "timestamp": "0:55",
  "url": "https://youtu.be/UF8uR6Z6KLc?t=55",
  "quote": "...The first story is about connecting the dots. I dropped out of Reed College..." }
Enter fullscreen mode Exit fullscreen mode

4. Get only new uploads

Turn on Watch mode, give it a watchlistName, and optionally paste a Slack incoming-webhook URL. Open Schedules, create a daily schedule with this saved input. The first run delivers the existing videos (use publishedAfter such as 7 days to limit that); later runs deliver only new uploads, and Slack gets a message with the new videos and the top quotes only when something is new.

5. Use the output for AI

Set formats to chunks for RAG chunks with a stable id, start and end seconds, token estimate and deep link, or markdown for a document with front matter. Check quality.grade (A to D) before you embed.

What it cannot do

It reads existing captions: a video without captions is a free no_captions row, there is no audio transcription and no translation, and YouTube can change how it serves captions. Questions or bugs go to the Actor's Issues tab.

Top comments (1)

Collapse
 
0xgollum profile image
0xGollum •

The free preview with estimatedResults is the best part: an agent can budget before it calls. One edge case on watch mode: auto-captions often show up hours after the upload. If the first daily run sees a new video as no_captions, does the watchlist retry it later, or does "new uploads only" skip it for good?