YouTube to Google Sheets, top videos logged clean
Competitor research on YouTube sounds simple until you’re doing it weekly. Tabs everywhere, “top videos” lists copied by hand, and a spreadsheet that’s never quite up to date. This YouTube Sheets automation removes the busywork so your research stays consistent.
Marketing managers feel this when reporting week-over-week performance. A content strategist feels it when trying to spot repeatable formats. And if you run a small agency, it turns into a recurring task you can’t really delegate because it’s too easy to mess up.
This workflow pulls the most-viewed videos for each channel ID you list, then logs clean rows into Google Sheets. You’ll see exactly what it does, what you need, and what changes once it’s running.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: YouTube to Google Sheets, top videos logged clean
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n1["<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 Most-Viewed Videos via.."]
n2@{ icon: "mdi:database", form: "rounded", label: "Read Channel Info from Sheet", pos: "b", h: 48 }
n3@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Into Individual Videos", pos: "b", h: 48 }
n4@{ icon: "mdi:database", form: "rounded", label: "Append Video Details to Sheet", pos: "b", h: 48 }
n2 --> n1
n3 --> n4
n0 --> n2
n1 --> n3
end
subgraph sg1["Flow 2"]
direction LR
n5["<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 Most-Viewed Videos via.."]
n6@{ icon: "mdi:database", form: "rounded", label: "Read Channel Info from Sheet1", pos: "b", h: 48 }
n7@{ icon: "mdi:swap-vertical", form: "rounded", label: "Split Into Individual Videos1", pos: "b", h: 48 }
n8@{ icon: "mdi:database", form: "rounded", label: "Append Video Details to Sheet1", pos: "b", h: 48 }
n6 --> n5
n7 --> n8
n5 --> n7
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 n0 trigger
class n2,n4,n6,n8 database
class n1,n5 api
classDef customIcon fill:none,stroke:none
class n1,n5 customIcon
The Challenge: Tracking “Top Videos” Without Losing Your Mind
The annoying part of YouTube research isn’t analysis. It’s collection. You grab a channel, sort by “Most popular,” open videos, copy titles, paste links, and hope you don’t accidentally log the wrong thing. Do that for five competitors and suddenly you’ve spent the best part of an hour on data entry, not insights. Worse, you can’t easily compare month to month because the process is inconsistent, and your spreadsheet ends up with missing video IDs, broken links, or random naming.
It adds up fast. Here’s where it breaks down in real life.
- Manual copy-paste turns into about an hour every week once you track multiple channels.
- You inevitably miss videos, especially when a channel has a lot of similar thumbnails and titles.
- Different people log things differently, so filtering and comparing becomes a mini clean-up project.
- When you want to scale to 20+ channels, you usually give up or stop doing it regularly.
The Fix: Auto-Fetch Top Videos by Channel ID and Log Them
This workflow flips competitor research from “hunt and paste” to “run and review.” You keep a simple input tab in Google Sheets with channel IDs and how many top videos you want per channel. When you run the workflow in n8n, it reads that list, calls the YouTube Data API, and pulls back the most-viewed videos for each channel. Then it splits the results into clean, individual items and appends them as rows in an output tab, including the channel name, title, video ID, and a ready-to-click link. No switching between YouTube pages. No formatting debates. Just consistent, searchable data you can filter in seconds.
The workflow starts with a manual launch in n8n, then reads your “Input” sheet for channel IDs. Next, HTTP requests fetch the top videos from YouTube, and the workflow writes tidy rows into your “Output” sheet. You can re-run it anytime you want an updated snapshot.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you track 10 competitor channels and you want the top 5 videos from each. Manually, you might spend about 5 minutes per channel to sort, open, copy, and paste, so roughly 50 minutes per run (and that’s on a good day). With this workflow, updating the input sheet takes about 5 minutes, then you launch it and wait a few minutes while the API calls run and rows get appended. The “work” becomes checking the output tab, not building it.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for the input and output tabs
- YouTube Data API v3 to fetch most-viewed videos
- YouTube API key (get it from Google Cloud Console)
Skill level: Beginner. You’ll paste an API key, connect Google Sheets, and confirm two sheet names.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
Manual launch from n8n. You click run when you want a fresh pull, which is perfect for weekly research or pre-reporting snapshots.
Channel list comes from Google Sheets. The workflow reads your input tab with two columns: the channel ID and how many “top videos” to retrieve for that channel.
YouTube data is fetched automatically. Using HTTP requests to the YouTube Data API, it retrieves the most-viewed videos for each channel based on your settings.
Clean rows get appended to your output tab. Each video becomes a separate row with channel name, title, video ID, and a clickable link. It’s structured so you can filter, pivot, or compare across competitors right away.
You can easily modify how many videos you fetch per channel (or add more channels) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Start the workflow with a manual run so you can validate the YouTube fetch and sheet updates.
- Add and select Manual Launch Trigger as the starting node.
- Keep default settings since this node only triggers on manual execution.
- Confirm the flow connects from Manual Launch Trigger to Retrieve Channel Sheet.
Step 2: Connect Google Sheets
Configure the input and output spreadsheets that provide channel IDs and store video results.
- Open Retrieve Channel Sheet and set Document to
YOUR_SPREADSHEET_IDand Sheet toYOUR_INPUT_SHEET_NAME. - Open Append Video Rows and set Document to
YOUR_SPREADSHEET_IDand Sheet toYOUR_OUTPUT_SHEET_NAME. - Repeat the same spreadsheet settings in Utility: Retrieve Channel Sheet B and Utility: Append Video Rows B.
- Credential Required: Connect your Google Sheets credentials (required for Retrieve Channel Sheet, Append Video Rows, Utility: Retrieve Channel Sheet B, and Utility: Append Video Rows B).
⚠️ Common Pitfall: The placeholder values YOUR_SPREADSHEET_ID, YOUR_INPUT_SHEET_NAME, and YOUR_OUTPUT_SHEET_NAME must be replaced with real sheet details or the workflow will fail.
Step 3: Set Up YouTube Fetch & Item Splitting
Fetch top videos for each channel ID and split the YouTube API response into individual items.
- Open YouTube Top Videos Fetch and set URL to
https://www.googleapis.com/youtube/v3/search. - In YouTube Top Videos Fetch, set query parameters: key to
[CONFIGURE_YOUR_API_KEY], part tosnippet, channelId to{{ $json.ChannelID }}, maxResults to{{ $json.video_num_to_get }}, order toviewCount, and type tovideo. - Open Separate Video Items and set Field to Split Out to
itemsand Include toallOtherFields. - Repeat the same YouTube API and split settings in Utility: YouTube Top Videos Fetch B and Utility: Separate Video Items B.
Tip: Replace [CONFIGURE_YOUR_API_KEY] with a valid YouTube Data API key to avoid 403 errors.
Step 4: Configure Output/Action Nodes
Map video fields from the YouTube response into your output sheet.
- In Append Video Rows, keep Operation set to
append. - Set column mappings in Append Video Rows: title to
{{ $json.items.snippet.title }}, videoId to{{ $json.items.id.videoId }}, videoLink to=https://www.youtube.com/watch?v={{ $json.items.id.videoId }}, and channelName to{{ $json.items.snippet.channelTitle }}. - Repeat the same column mappings and Operation in Utility: Append Video Rows B.
⚠️ Common Pitfall: The “Utility” chain is not connected to Manual Launch Trigger in the current flow. If you intend to run it, connect Manual Launch Trigger to Utility: Retrieve Channel Sheet B or trigger it separately.
Step 5: Test and Activate Your Workflow
Run a manual test to confirm data flows through the API and into your Google Sheet.
- Click Execute Workflow on Manual Launch Trigger to run the main chain.
- Verify YouTube Top Videos Fetch returns items and Append Video Rows appends new rows with video titles and links.
- If you connect the utility chain, run it and confirm Utility: Append Video Rows B writes to the output sheet.
- Once confirmed, toggle the workflow to Active to enable production use.
Watch Out For
- Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and confirm the connected Google account can edit the spreadsheet.
- YouTube API calls can hit quotas or rate limits if you run big batches. If requests start failing, check your quota usage in Google Cloud Console and reduce how many channels you pull at once.
- If your input tab columns are misspelled (like “ChannelId” instead of “ChannelID”), the workflow won’t find your values. Keep the column names consistent or adjust the mapping in the “Retrieve Channel Sheet” step.
Common Questions
About 30 minutes if your sheet is ready and you already have a YouTube API key.
Yes. You won’t write code, but you will connect Google Sheets and paste an API key into the workflow.
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 API usage, which is usually covered by your Google Cloud quota unless you run huge batches.
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.
You can. Most customizations happen where the workflow reads your input sheet and where it appends rows to the output sheet. Common tweaks include adding extra columns (like publish date), changing how many videos you pull per channel, or writing to a separate output tab per competitor group so your comparisons stay clean.
Usually it’s expired Google authorization or the wrong account being connected. Reconnect the Google Sheets credential in n8n, then confirm that account has edit access to the spreadsheet ID you’re using. If it still fails, check that the input tab name matches exactly (including capitalization) and that your columns are spelled correctly.
On n8n Cloud Starter, you can run a set number of executions per month, and higher plans handle more. If you self-host, there’s no execution limit (it depends on your server). Practically, you can pull dozens of channels per run, but YouTube API quota is the real limiter, so very large lists are best run in smaller batches.
Often, yes, because YouTube-to-Sheets jobs tend to need a little more structure than a basic two-step zap. n8n handles multi-item outputs cleanly, which matters when one channel returns multiple videos and each needs its own row. You also get the self-hosting option, which is handy if you run this frequently. Zapier or Make can still work if you’re doing a very small pull and prefer a simpler UI, but costs and limits show up quickly once you scale. If you’re on the fence, Talk to an automation expert and we’ll sanity-check the best option for your setup.
Once this is running, your “top videos” research becomes a dependable dataset, not a recurring chore. Set it up once, then spend your time on patterns and decisions.
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.