On a schedule
Get summaries of new YouTube videos
When a channel you follow posts a video, you get five bullet points instead of watching it.
- Runs
- On a schedule
- Apps
- Google Gemini
- AI
- Not needed
- Access
- API key
Send this to your assistant
Create a ClickRuntime automation: every day, check these three YouTube channels for new videos. Have the Google Gemini API watch each new one and email me a 5-bullet summary with the link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing lead follows a dozen YouTube channels: competitors, industry conferences, tool vendors. Their videos are 20 to 90 minutes, and the useful part is often two minutes in the middle. She bookmarks a video to watch later, the bookmark list grows past fifty items, and she ends up learning about a feature launch from a customer instead of from the vendor's own announcement.
On the schedule you set, ClickRuntime checks the channels for videos it has not seen, remembers them, and passes each YouTube URL to Gemini as file data. Gemini returns the format you prefer, such as a summary, a quiz to test understanding or a draft blog post, and the result is emailed to you with the video link.
Students, researchers and content teams use the same setup for lectures, webinars and talks.
What you get out of it
Know what a video says before you watch
A summary tells you whether a 70-minute talk is worth your hour. Most videos you can skip, and the few that matter get your full attention. The rest of the watch-later list can be dropped without guilt.
New videos are never missed
Checking for new uploads on a schedule means a launch video from a competitor reaches you on the day it appears, instead of weeks later when someone mentions it in passing.
Turn watching into learning
A quiz or a list of key points gives you something to test yourself against. Material from conference sessions sticks better when you answer questions than when you only skim a summary.
A first draft for content teams
A blog post outline based on a talk saves the effort of transcribing and rewriting. Editors begin with structure and quotes, rather than a blank page and a recording to scrub through.
Each video handled once
The list of videos already processed is kept, so you do not receive the same summary twice. Your inbox contains one email per new video, and the backlog never builds up again.
How it works
What happens, step by step
Every day, ClickRuntime checks the YouTube channels you follow for new videos.
It skips videos it has already summarised.
Gemini watches each new video and summarises it in five bullet points.
You get an email for each video with its title and the summary.
Before it runs live
- Connect Google Gemini
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Google Gemini steps into one automation
Under the hood
The code that runs this automation
import xml.etree.ElementTree as ET
from clickruntime import on_trigger, credentials, notify, http, state, report_fetched
def gemini(body, model="gemini-2.5-flash"):
resp = http.post(f"https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",
headers={"x-goog-api-key": credentials.secret("GEMINI_API_KEY")}, json=body, timeout=120)
resp.raise_for_status()
return resp.json()["candidates"][0]
CHANNELS = ["UC_x5XG1OV2P6uZZ5FSM9Ttw", "UCVHFbqXqoYvEWM1Ddxl0QDg", "UCsBjURrPoezykLs9EqgamOA"]
NS = {"a": "http://www.w3.org/2005/Atom", "yt": "http://www.youtube.com/xml/schemas/2015"}
@on_trigger
def run(event):
seen = set(state.get("seen") or [])
new = []
for cid in CHANNELS:
feed = ET.fromstring(http.get("https://www.youtube.com/feeds/videos.xml", params={"channel_id": cid}).content)
for e in feed.findall("a:entry", NS):
if e.findtext("yt:videoId", namespaces=NS) not in seen:
new.append((e.findtext("yt:videoId", namespaces=NS), e.findtext("a:title", namespaces=NS)))
report_fetched(len(new))
if not new:
return {"new": 0}
for vid, title in new:
url = f"https://www.youtube.com/watch?v={vid}"
out = gemini({"contents": [{"parts": [{"file_data": {"file_uri": url}},
{"text": "Summarise this video in 5 bullets."}]}]})
notify.email_me(f"New video: {title}", out["content"]["parts"][0]["text"] + f"\n\n{url}")
seen.add(vid)
state.set("seen", sorted(seen))
return {"new": len(new)}FAQ
Common questions
Does it work for videos without captions?
Can I follow channels or playlists?
How accurate are the summaries?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Write captions and alt text for images
Every image link you send comes back with a caption and accessible alt text.
See how it worksGet a weekly research brief with sources
Every Monday you get a short brief on your topic built from live Google results, with the links it used.
See how it worksGet a morning summary of your RSS feeds
New articles from your feeds arrive as one list of bullets, without repeats from earlier days.
See how it worksKeep exploring
Set up “Get summaries of new YouTube videos” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.