The moment it happens
Replace a link in every video description
One call swaps old text for new across all your descriptions and tells you how many videos changed.
- Runs
- The moment it happens
- Apps
- YouTube
- AI
- Not needed
- Access
- OAuth youtube.force-ssl (read+write)
Send this to your assistant
Create a ClickRuntime automation: give me a link I can call that replaces 'amzn.to/old123' with 'amzn.to/new456' in all my YouTube video descriptions and emails me how many were updated.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A creator who changes a course link, a discount code or a merchandise store address faces the same chore on every video. Opening each description in YouTube Studio means a hundred separate edits for a hundred videos, so old links stay live for months, and viewers click on a dead promo page or a code that expired last season.
When you call the trigger link, all of your uploads are listed, and descriptions containing the old text or a marker you set are found. Each is updated with the new text, and you receive an email showing how many videos were changed.
Channels that rely on affiliate links, sponsor mentions or a changing set of social links use it whenever those details change. Old links disappear everywhere in one pass, which would otherwise take a weekend of copying and pasting.
What you get out of it
Dead links stop costing you clicks
Replacing an outdated link everywhere means viewers who reach an old video land on the page you actually want them to visit today. Every click on an outdated link is a lost visit, sale or sign-up.
A hundred edits in one run
A task that would take an afternoon of repetitive clicking in Studio happens in one pass, so you can keep up with changing sponsors and offers. Sponsor and affiliate changes happen often, so doing them in bulk keeps you current.
Expired offers are removed
Old discount codes and finished promotions are swapped out or removed at once, which avoids disappointing viewers and complaints to your support inbox. Viewers get frustrated by dead promotions, and complaints arrive in your comments.
Only matching descriptions change
Using the old text or a marker to find videos means descriptions without it are left exactly as they are, which protects videos with unique content. That targeting is what makes a bulk edit safe on a channel with many video types.
The count confirms the job
An email saying 87 videos were updated tells you the job ran as expected, so you are not left guessing whether any were skipped. A clear count is quick proof that the update reached the videos you expected.
How it works
What happens, step by step
You start it whenever you need it, for example by opening its trigger link after you change a URL you mention in your videos.
ClickRuntime goes through every video on your YouTube channel and finds descriptions that contain the old text.
It replaces the old text with the new text in each of those descriptions.
You get an email saying how many videos were changed.
Before it runs live
- Connect YouTube
- Paste your automation's link into the other app's webhook settings
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 YouTube steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify
YT = "https://www.googleapis.com/youtube/v3"
@on_event
def handle(event):
old, new = event.json["old"], event.json["new"]
h = {"Authorization": f"Bearer {credentials.connection('google', 'work')}"}
uploads = http.get(f"{YT}/channels", headers=h, params={"part": "contentDetails", "mine": "true"}).json()["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"]
changed, page = 0, None
while True:
res = http.get(f"{YT}/playlistItems", headers=h, params={"part": "contentDetails", "playlistId": uploads, "maxResults": 50, "pageToken": page}).json()
ids = ",".join(i["contentDetails"]["videoId"] for i in res["items"])
for v in http.get(f"{YT}/videos", headers=h, params={"part": "snippet", "id": ids}).json()["items"]:
if old in v["snippet"]["description"]:
snippet = {**v["snippet"], "description": v["snippet"]["description"].replace(old, new)}
http.put(f"{YT}/videos", headers=h, params={"part": "snippet"}, json={"id": v["id"], "snippet": snippet})
changed += 1
page = res.get("nextPageToken")
if not page:
break
notify.email_me("Descriptions updated", f"Replaced the text in {changed} videos.")
return {"changed": changed}FAQ
Common questions
How does it know which videos hold the old link?
Can I reverse a bulk update of descriptions?
Does it use up a lot of YouTube API quota?
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
Copy playlists to another channel
Every playlist and its videos is recreated on your second channel, with a summary when it's done.
See how it worksGet an email when channels you follow post
New videos from your subscriptions arrive in one email with titles and links.
See how it worksGet your channel's numbers every Monday
A weekly email shows subscribers, total views and video count, with the change since last week.
See how it worksKeep exploring
Set up “Replace a link in every video description” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.