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.

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

Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery board

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.