Daily YouTube channel stats log to Google Sheets

Every night at 11pm, log views, likes, comments, and duration for every video on your channel to a Google Sheet so you can chart growth over time.

Deterministic Code
YouTubeGoogle SheetsSlackMarketingOperationsDaily DigestsData SyncResearch & Monitoring
PromptCreate

Build a deterministic daily log of every video on my YouTube channel so I have a historical performance table I can chart and pivot in Google Sheets. No AI, no summarization, no judgement calls. Just a clean nightly snapshot.

Trigger: cron, every day at 11pm in my local timezone.

Steps:

1. YouTube List Channels with mine=true to get my channel and read the uploads playlist ID from contentDetails.relatedPlaylists.uploads.

2. YouTube List Playlist Items against that uploads playlist ID, paginating through every page until nextPageToken is absent. Collect all video IDs.

3. YouTube Get Video in batches of up to 50 IDs per call, requesting part=snippet,statistics,contentDetails. This keeps quota usage low even for channels with hundreds of videos.

4. For each video, Google Sheets Append Values to add one row to my channel KPI sheet with these columns in order: today's date (YYYY-MM-DD in my local timezone), video ID, title, published date, view count, like count, comment count, and duration (ISO 8601 from contentDetails.duration is fine). Append, do not overwrite. Every run adds a fresh batch of rows tagged with today's date so the sheet becomes a time series.

5. Slack Send a Message to my chosen channel with a one-line confirmation: "Logged N videos to the channel KPI sheet" plus the spreadsheet link.

Notes for the build: batch the Google Sheets appends where possible so we are not making one API call per video. Handle YouTube pagination correctly (stop only when nextPageToken is missing). If a video is missing a statistic (for example, comments disabled or likes hidden), write an empty cell rather than failing the whole run. Surface a clear error in the Slack message if any step fails so I know the snapshot did not complete.

What does this prompt do?

  • Snapshots every video on your YouTube channel once a day so you build a clean time-series history of views, likes, comments, and duration.
  • Appends one row per video to a Google Sheet with today's date, video title, published date, and all the core stats. No overwriting, no judgement calls, just a deterministic log.
  • Posts a short Slack confirmation each night with the number of videos logged and a link to the spreadsheet so you know it ran.
  • Built for channels with hundreds of videos. Pages through every upload and batches stat lookups so it stays well inside YouTube's daily quota.

What do I need to use this?

  • A YouTube account for the channel you want to track, connected with read access.
  • A Google Sheet where the daily rows will be appended, plus a Google account that can write to it.
  • A Slack workspace and a channel where the nightly confirmation should post.

How can I customize it?

  • Change the run time. 11pm local is the default, but you can pick any time of day or run it weekly instead.
  • Choose which stats get logged. Drop columns you do not care about, or add tags, category, or thumbnail URL to the row.
  • Swap the destination. Send the confirmation to a different Slack channel, or skip Slack and send an email summary instead.

FAQs

Will this work for a channel with hundreds of videos?
Yes. The workflow pages through every video on your channel and looks up stats in batches of 50, which keeps it well inside YouTube's daily usage limits even for large back catalogs.
Does it overwrite yesterday's numbers?
No. Each run appends fresh rows tagged with today's date, so you keep a full historical record you can chart, pivot, or compare week over week.
Can I track a channel I do not own?
This template is built for your own channel because it uses your YouTube login to find the uploads list. To track a competitor, you would need a different setup that points at their public channel by ID.
What if I want a weekly snapshot instead of daily?
Change the schedule when you set it up. The workflow runs on whatever cadence you pick, so weekly or even monthly snapshots work the same way.
Does this use AI to summarize the data?
No. This is a pure logging workflow. The Slack message is a one-line confirmation with a link to your sheet. The analysis happens in the sheet, where you can build your own charts and pivots.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Local listing health board for every location you manage

See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.

Local Business Data
Google Sheets
App
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Let support send one-off Loops emails without an engineer

Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.

Loops.so
Stripe
Google Sheets
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App

Stop manually copying YouTube stats into a spreadsheet.

Connect YouTube, Google Sheets, and Slack once, and Geni logs your full channel every night so the data is ready when you are.