Hourly
Catch uploads that fail to process
You hear within the hour if an upload is stuck or failed to transcode.
- Runs
- Hourly
- Apps
- Vimeo
- AI
- Not needed
- Access
- private
Send this to your assistant
Create a ClickRuntime automation: every hour, check videos I uploaded to Vimeo in the last 2 days and email me any that are stuck in processing or show an error.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Someone uploads a forty-minute customer webinar to Vimeo, closes the laptop, and shares the link in an email campaign that evening. The transcode quietly failed because of an unusual codec, and the video page shows an error to every recipient. Nobody on the team knew, since Vimeo only shows the failed state on the video's own page.
Once an hour the automation looks at your recent Vimeo videos and reads the transcode status on each one. If any video's transcode has failed, you receive an alert naming the video and linking to it, so you can re-export and re-upload while the campaign is still a draft rather than after the send.
Video producers, course creators and anyone who publishes on a schedule benefit most, because a failed upload often goes unnoticed until the audience arrives.
What you get out of it
Catch it before the audience does
An hourly check usually finds a failed transcode well before launch time, so you re-upload quietly instead of apologizing to subscribers who clicked a link and found a broken player on the page.
Campaign links stay trustworthy
Newsletters and course lessons that embed Vimeo links depend on playback working. An alert protects the sender's credibility with the people who clicked and keeps open and click rates from being wasted on a dead video.
Names the exact video
The alert includes the title and a link, so you do not scan a long library trying to find which of last week's uploads is the broken one, especially when an editor uploaded several versions in one sitting.
Saves the re-upload scramble
Finding the failure at 9 a.m. leaves a day to fix an export setting and upload again. Finding it five minutes before a live premiere leaves only panic and an awkward delay for everyone waiting.
Works while you are away
Contractors and editors upload at odd hours. The check runs without anyone watching, so a failed overnight upload is flagged by morning instead of being discovered by whoever first opens the page.
How it works
What happens, step by step
Every hour, ClickRuntime checks the videos uploaded to your Vimeo account in the last two days.
It looks for any that failed to process or are still stuck processing.
You get an email listing each problem video with its status and link.
Each video is reported only once, so you are not alerted about the same upload again.
Before it runs live
- Connect Vimeo
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 Vimeo steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, state, notify, report_fetched
@on_trigger
def run(event):
videos = http.get("https://api.vimeo.com/me/videos",
headers={"Authorization": f"Bearer {credentials.secret('VIMEO_TOKEN')}"},
params={"sort": "date", "direction": "desc", "per_page": 50,
"fields": "uri,name,link,created_time,transcode.status"}).json()["data"]
since = datetime.now(timezone.utc) - timedelta(days=2)
alerted = set(state.get("alerted") or [])
stuck = [v for v in videos
if datetime.fromisoformat(v["created_time"]) > since
and v["transcode"]["status"] in ("in_progress", "error") and v["uri"] not in alerted]
stuck = [v for v in stuck if v["transcode"]["status"] == "error"
or datetime.fromisoformat(v["created_time"]) < datetime.now(timezone.utc) - timedelta(hours=2)]
report_fetched(len(stuck))
if not stuck:
return {"stuck": 0}
notify.email_me(f"{len(stuck)} Vimeo upload(s) need attention",
"\n".join(f"{v['name']}: {v['transcode']['status']}\n{v['link']}" for v in stuck))
state.set("alerted", sorted(alerted | {v["uri"] for v in stuck})[-200:])
return {"stuck": len(stuck)}FAQ
Common questions
What does a failed transcode mean on Vimeo?
How far back does the hourly check look?
Will I get an alert for a video that is still transcoding?
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
Share new Vimeo videos with your team
Shortly after you publish a video, Slack gets its title and link.
See how it worksGet your top videos by plays each week
Each Monday you get plays per video and the change since last week.
See how it worksSee new job listings as they're posted
Jobs that match your keywords show up in a Slack channel, each one only once.
See how it worksKeep exploring
Set up “Catch uploads that fail to process” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.