See llms.txt for all machine-readable content.
Each morning this lists a channel's newest videos, pulls the YouTube transcript for the ones it has not seen, writes an AI summary, takeaways and a relevance score into a Notion database, and posts to Slack only when a video mentions the topics you track.
chat:write scope, install it, invite the bot to your channel, add the bot token as a Slack credential, and pick the channel in the Slack node.chat:write scopetopics to the phrases you care about; matching is case-insensitive and counts every mentionrelevanceThreshold to make the model stricter or looser about what reaches SlackchannelsmaxVideos controls how far back the first run looks; later runs only see new uploadslanguage for channels that publish captions in another languageHow do I extract the transcript from a YouTube video automatically? This template does it on a schedule. It lists a channel, remembers which videos it has already processed, and fetches the YouTube transcript for the new ones through an Actor that reads the public caption track. There is no audio to upload and no transcription model to pay for.
Does the YouTube Data API v3 provide transcripts? No. The Data API returns titles, statistics and comments, and its captions endpoint only works for videos you own. That gap is why this workflow uses a transcript Actor instead of a YouTube API key.
Can AI make a transcript of a YouTube video here? The transcript itself is YouTube's caption track, manual or auto-generated. The AI step only summarizes it, pulls out takeaways and tags, and scores how relevant the video is to your topics, so the text you search is what the video actually says.
Why does the workflow call the Actor twice? The first call only lists the channel's newest videos, and listing rows cost nothing. The dedupe step then removes anything seen in a previous run, and the second call fetches transcripts for the remaining videos. A channel you have watched for months costs you only its new uploads.
How is "Watch this" decided? A video is flagged when one of your tracked topics appears in the transcript, or when the model's relevance score reaches your threshold. Both signals are written to the Notion page, along with the model's one-line reason, so you can see why something was flagged and tune the threshold.
Why does a video show "No transcript"? Some videos have no caption track, and some are unavailable or private. The Actor returns a clear error for those, the workflow takes the lower path, and the video still gets a Notion page with the reason in the Why property instead of disappearing.
What does it cost? Listing rows are free. On Apify's free tier a transcript costs about $0.0028, charged only for new videos, and the two Actor runs use 256 MB each. The transcript sent to the chat model is capped at 40,000 characters, so a long video has a bounded model cost.
What else can the Actor do? YouTube Transcript & Subtitles Scraper API also translates transcripts, exports SRT and VTT, transcribes a whole channel in one run, and caches results for 90 days so repeated requests return in seconds. If you self-host n8n, the n8n-nodes-youtube-transcripts-api community node wraps the same Actor with a form instead of JSON.
About Apify. YouTube Transcript & Subtitles Scraper API runs on Apify, a platform of ready-made scrapers and APIs for sources that have no usable public API. Actors are pay per use with no subscription, and they run in the cloud, so nothing runs on your machine and nothing breaks when the source changes its markup.
New to Apify? You can set up a free account and get the API token this template needs in a couple of minutes.