YouTube to Google Sheets, new videos logged for you
Manually checking five, ten, or twenty YouTube channels is the kind of “quick task” that quietly steals your week. You miss uploads, paste the wrong URL, and end up with a messy spreadsheet you do not trust.
This YouTube Sheets log automation hits marketing managers and research analysts first. But it also matters to an agency owner building competitor reports. The outcome is simple: new videos get captured in one Google Sheet with clean titles, dates, and links.
You’ll see what the workflow does, what you need to run it, and how teams use it as the “Part 1” foundation for bigger reporting and sentiment analysis.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: YouTube to Google Sheets, new videos logged for you
flowchart LR
subgraph sg0["Manual Start Flow"]
direction LR
n0@{ icon: "mdi:swap-vertical", form: "rounded", label: "Separate Item Batches", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Manual Start Trigger", pos: "b", h: 48 }
n2@{ icon: "mdi:database", form: "rounded", label: "Retrieve Channel IDs Sheet", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/httprequest.dark.svg' width='40' height='40' /></div><br/>Fetch Channel Videos API"]
n4@{ icon: "mdi:swap-vertical", form: "rounded", label: "Map Fields for Sheet", pos: "b", h: 48 }
n5@{ icon: "mdi:database", form: "rounded", label: "Upsert Video Links Sheet", pos: "b", h: 48 }
n0 --> n4
n2 --> n3
n3 --> n0
n1 --> n2
n4 --> n5
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 trigger
class n2,n5 database
class n3 api
classDef customIcon fill:none,stroke:none
class n3 customIcon
The Problem: Tracking New YouTube Uploads Gets Messy Fast
Keeping a clean log of new uploads across multiple YouTube channels sounds straightforward until you do it for real. You open a bunch of tabs, skim for the latest video, copy the URL, paste it into a sheet, then repeat. Next week you can’t remember if you already logged that upload, so you double-enter it. Or you forget one channel entirely. The worst part is the mental load: you spend more time “maintaining the tracking system” than learning anything from it.
It adds up fast. Here’s where it breaks down in day-to-day work.
- Checking 10 channels even once a day can easily chew up about an hour, and that’s before you format anything neatly.
- Copy-paste mistakes happen constantly, which means broken links in reports and “Wait, is that the right video?” moments on client calls.
- When the sheet isn’t updated reliably, nobody uses it, so you lose the one place that should have been your source of truth.
- Scaling into sentiment analysis or dashboards is basically impossible if your starting dataset is inconsistent.
The Solution: Automatically Fetch New Videos into Google Sheets
This n8n workflow turns YouTube channel monitoring into a repeatable system. You keep a simple list of Channel IDs in a Google Sheet (Sheet3). When the workflow runs, it reads those IDs, calls the YouTube Data API to fetch the latest videos for each channel, then pulls out the useful fields like title, publish date, and the video URL. Finally, it writes (upserts) the results into a second tab (Sheet2) so your “new videos log” stays current without manual work. Honestly, the real value is trust: you stop wondering if your tracker is missing things.
The workflow starts with a manual trigger (or you can schedule it). It then loops through your channel list in batches, maps each video into clean spreadsheet columns, and updates your log in one place. Sheet2 becomes the handoff point for deeper analysis later, including comment sentiment analysis in a follow-up workflow.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you track 12 competitor and partner channels and you update your log three times a week. Manually, you’ll spend maybe 5 minutes per channel to find the latest upload, copy the URL, and paste details, which is about an hour per run (so roughly 3 hours a week). With this workflow, updates look more like 2 minutes to add or adjust Channel IDs plus a few minutes of API processing time. You get most of those hours back, and your sheet is cleaner too.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store Channel IDs and video logs
- YouTube Data API to fetch video metadata for channels
- Google Cloud API key (get it from Google Cloud Console)
Skill level: Beginner. You’ll connect accounts, paste an API key, and match a few spreadsheet columns.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A run is triggered. In the provided workflow it starts manually, but many teams switch this to a daily or weekly schedule so the sheet stays fresh without anyone remembering.
Channel IDs are pulled from Google Sheets. The workflow reads your list from Sheet3, so adding a new channel is as easy as pasting a new ID into a row.
YouTube is queried and results are normalized. An HTTP request hits the YouTube Data API, then n8n loops through returned items in manageable batches and maps each video into consistent fields (title, publish date, URL).
Your tracking log is updated. The workflow upserts the cleaned rows into Sheet2, which becomes the “video queue” for downstream work like dashboards or a comment sentiment analyzer.
You can easily modify the columns captured (like view count or thumbnails) to fit your reporting needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Set up the workflow to run on demand using the manual trigger.
- Add and confirm the Manual Start Trigger node as the workflow trigger.
- Leave the Manual Start Trigger parameters empty (defaults are used).
- Ensure Manual Start Trigger connects to Retrieve Channel IDs Sheet.
Step 2: Connect Google Sheets
Configure the input sheet that provides YouTube channel IDs.
- Open Retrieve Channel IDs Sheet and set Authentication to
serviceAccount. - Select the Document as
Youtube Videos Comments(ID1xoCVr_mlwn4jFcnJENtrU-_K5nkIytZ8qBXzxMq55n4). - Set the Sheet Name to
Sheet3. - Credential Required: Connect your googleApi credentials in Retrieve Channel IDs Sheet.
Step 3: Set Up Video Fetching and Batching
Pull recent videos for each channel ID and split the results into individual items.
- Open Fetch Channel Videos API and set URL to
https://www.googleapis.com/youtube/v3/search. - Enable Send Query and configure query parameters: channelId =
{{ $json.channelId }}, part =snippet, order =date, maxResults =50. - In Fetch Channel Videos API pagination, set pageToken to
{{ $response.body.nextPageToken }}and completeExpression to{{ !$response.body.nextPageToken }}. - Credential Required: Connect your httpQueryAuth credentials in Fetch Channel Videos API.
- Open Separate Item Batches and set Field To Split Out to
items.
Step 4: Configure Field Mapping and Sheet Upsert
Map YouTube fields to sheet columns and upsert records by video URL.
- In Map Fields for Sheet, add assignments: Title =
{{ $json.snippet.title }}, video_urls =https://www.youtube.com/watch?v={{ $json.id.videoId }}, and published_at ={{ $json.snippet.publishedAt }}. - Open Upsert Video Links Sheet and set Operation to
appendOrUpdate. - Select the Document as
Youtube Videos Comments(ID1xoCVr_mlwn4jFcnJENtrU-_K5nkIytZ8qBXzxMq55n4) and Sheet Name toSheet2. - Map columns in Upsert Video Links Sheet: Title =
{{ $json.Title }}, video_urls ={{ $json.video_urls }}, published_at ={{ $json.published_at }}. - Set Matching Columns to
video_urlsto prevent duplicates. - Credential Required: Connect your googleApi credentials in Upsert Video Links Sheet.
video_urls, updates may create duplicate rows.Step 5: Test and Activate Your Workflow
Validate the end-to-end flow and enable it for regular use.
- Click Execute Workflow to run Manual Start Trigger and process the current channel IDs.
- Confirm that Fetch Channel Videos API returns items and Separate Item Batches splits them into individual records.
- Verify that Upsert Video Links Sheet writes rows to
Sheet2with the mapped fields. - When satisfied, toggle the workflow to Active for production use.
Common Gotchas
- YouTube Data API credentials can expire or be restricted by project settings. If things break, check your Google Cloud Console API credentials and quotas first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Sheet tabs are ready.
No. You’ll connect Google Sheets, add a YouTube API key, and map a few fields.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in YouTube Data API usage (it’s quota-based and usually inexpensive for simple lookups).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s a common tweak. Replace the Manual Start Trigger with a schedule trigger so it runs every day or every week. You can also expand the “Map Fields for Sheet” step to include extra columns like view count, thumbnails, or channel name if your reporting needs it.
Usually it’s an API key or quota issue in the Google Cloud project tied to the YouTube Data API. Regenerate or re-restrict the key, then update it in the HTTP request node in n8n. Also confirm the YouTube Data API is enabled for that project, because a disabled API can look like “random” failures. If you’re polling many channels frequently, you may simply be hitting quota limits.
A lot. On n8n Cloud, your limit is mainly monthly executions on your plan, while self-hosting has no execution cap (it depends on your server). Practically, this workflow scales well because it processes channels in batches; most teams comfortably track dozens of channels as long as their YouTube API quota supports it.
Sometimes. If you only want a simple “new upload to sheet” for one channel, Zapier or Make can be quicker. But this workflow is designed for multiple channels, batching, and clean field mapping, which is where n8n tends to feel more flexible (and cheaper at higher volume). The other big win is that this is built to feed a Part 2 workflow (comments and sentiment) without rework. If you’re unsure, Talk to an automation expert and describe your tracking and reporting goals.
Once this is running, your tracking sheet stops being a chore and starts being infrastructure. Set it up once, then let the workflow keep the log honest.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.