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.
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
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?
What counts as a video having captions?
How do I stop a video from showing up every week?
Will this work with a large video library?
Why does it need access to play counts?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
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.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
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.
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.
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.
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.