Weekly Vimeo caption audit to Google Sheets and Slack

Every Monday, check which Vimeo videos have no captions, log them to a spreadsheet, and get the biggest gaps posted to Slack.

Deterministic Code
VimeoGoogle SheetsSlackOperationsMarketingData SyncNotifications & Alerts
PromptCreate

Every Monday at 8am, audit caption coverage across my entire Vimeo library, log the videos that are missing captions to a Google Sheets tracking tab, and post a summary to Slack.

Start by pulling every video in my account with the Vimeo List User Videos operation, paging through the full library until there are no more pages (100 per page). For each video, keep the title, the link, the upload date, and the play count. Play counts live on the video object itself as stats.plays, so no separate stats call is needed, but the Vimeo connection does need the stats scope for that field to be populated. Request only the fields being used on each list call to keep responses small.

For each video, call List Text Tracks to see what caption and subtitle tracks are attached. Treat a video as missing captions only when it has no track of type captions or subtitles. Chapter tracks do not count as caption coverage. Because this makes one call per video, pace the requests to stay inside Vimeo's rate limit, and if a 429 rate limit response comes back, wait until the reset time in the response headers and then continue rather than failing the whole run.

Before writing anything, read the existing rows in the tracking tab with the Google Sheets Get Values operation. Skip any video already marked as fixed in the status column, and skip any video that is already logged and still open, so each video appears in the sheet exactly once instead of being re-appended every week.

For each remaining video with no caption track, append one row to the tracking tab using Append Values, capturing the video title, the video link, the upload date, the play count, the date it was detected, and an empty status column I can fill in with 'fixed' once captions are added.

Finally, send a Slack message with the Send a Message operation to my chosen channel. Summarize how many videos are missing captions out of how many total, then list the ten most watched offenders sorted by play count from highest to lowest, each with its title, play count, and link, so the highest impact accessibility and SEO gaps get fixed first. If every video has captions, post a short message saying coverage is complete rather than an empty list.

Example output

Caption audit: 14 of 212 Vimeo videos are missing captions Top 10 by plays: 1. Product Launch Keynote 2025 - 48,210 plays 2. How to Onboard Your Team - 31,455 plays 3. Customer Story: Northwind - 22,980 plays 4. Pricing Explained in 3 Minutes - 18,640 plays 5. Q3 All Hands Recap - 12,315 plays 6. Advanced Reporting Walkthrough - 9,870 plays 7. Integrations Overview - 7,442 plays 8. Webinar: Scaling Support - 5,118 plays 9. Feature Tour: Dashboards - 3,902 plays 10. Founder AMA (Recording) - 2,655 plays All 14 have been added to the caption tracking sheet. Mark a row as fixed once captions are live and it will drop off next week.

What does this prompt do?

  • Checks every video in your Vimeo account each Monday morning to see which ones have no captions or subtitles attached
  • Adds each uncaptioned video to a tracking spreadsheet with its title, link, upload date, and play count
  • Posts a Slack summary with the total number of gaps plus the ten most watched videos to fix first
  • Skips anything you have already marked as fixed in the sheet, so the list stays current instead of repeating itself

What do I need to use this?

  • A Vimeo account connected with permission to view your videos and their play statistics
  • A Google Sheets spreadsheet with a tracking tab, including a status column you can mark as fixed
  • A Slack workspace and the channel where the weekly summary should land

How can I customize it?

  • Change the schedule, for example run it daily during a captioning push or monthly once coverage is healthy
  • Change how many top offenders appear in the Slack summary, or which channel and people get tagged
  • Add filters so only videos above a certain play count, or uploaded after a certain date, get flagged

FAQs

Does this change my videos in any way?
No. It only reads your library and checks whether captions already exist. Nothing is uploaded, edited, or deleted on Vimeo. The only things it writes are new rows in your spreadsheet and a message in Slack.
What counts as a video having captions?
A video passes if it has at least one caption or subtitle track attached in Vimeo. Chapter markers do not count, since they do not help accessibility or search visibility.
How do I stop a video from showing up every week?
Mark it as fixed in the status column of the tracking sheet. Once a video is flagged as fixed it gets skipped on all future runs, and videos already logged and still open are not duplicated either.
Will this work with a large video library?
Yes. It works through the whole account page by page and paces itself to stay within Vimeo's usage limits, so it runs whether you have 50 videos or several thousand.
Why does it need access to play counts?
So the summary can rank the videos missing captions by how often they are actually watched. That way you fix the highest traffic gaps first instead of working through the library at random.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task
Turn each week's football fixtures into a venue staffing plan

Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.

API-Sports
Google Calendar
Slack
Agentic Task

Stop letting caption coverage quietly fall behind.

Get a weekly list of exactly which videos need captions, ranked by how many people actually watch them.