YouTube to Google Sheets, ranked video ideas fast
You open YouTube for “quick research,” then lose an hour bouncing between tabs, copying titles, and trying to remember which videos looked promising. By the time you’ve gathered 20 links, you’re already second-guessing the data (and honestly, your own notes).
This YouTube Sheets automation hits content strategists first, but marketing managers and agency leads feel it too. You get a ranked, shareable list of video ideas in Google Sheets, built from real YouTube search results and scored for performance.
Below, you’ll see how the workflow pulls video and channel stats, scores each result, and appends everything into a clean Sheet you can actually use.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: YouTube to Google Sheets, ranked video ideas fast
flowchart LR
subgraph sg0["On form submission Flow"]
direction LR
n0["<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/>Get Video Data"]
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/>Get Video IDs"]
n2["<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/code.svg' width='40' height='40' /></div><br/>Extract IDs"]
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/code.svg' width='40' height='40' /></div><br/>Extract Video Data"]
n4["<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/code.svg' width='40' height='40' /></div><br/>Video Performance"]
n5@{ icon: "mdi:database", form: "rounded", label: "Append row in sheet", pos: "b", h: 48 }
n6["<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/form.svg' width='40' height='40' /></div><br/>On form submission"]
n7["<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/>Get Channel Statistics"]
n8["<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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n9["<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/code.svg' width='40' height='40' /></div><br/>Channel Data"]
n10["<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/code.svg' width='40' height='40' /></div><br/>Code"]
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Loop Over Items", pos: "b", h: 48 }
n12@{ icon: "mdi:cog", form: "rounded", label: "Wait", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set you keys", pos: "b", h: 48 }
n10 --> n5
n12 --> n11
n8 --> n10
n2 --> n11
n9 --> n8
n13 --> n1
n1 --> n2
n0 --> n3
n0 --> n7
n11 --> n0
n4 --> n8
n3 --> n4
n6 --> n13
n5 --> n12
n7 --> n9
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 n6 trigger
class n5 database
class n0,n1,n7 api
class n2,n3,n4,n9,n10 code
classDef customIcon fill:none,stroke:none
class n0,n1,n2,n3,n4,n6,n7,n8,n9,n10 customIcon
The Challenge: YouTube Research That Never Stays Organized
YouTube research sounds simple until you try to do it consistently. You search a topic, open 15 videos, check views, skim comments, peek at the channel, then paste a few links into a doc you’ll never find again. Next week you repeat the whole process because your “research” doesn’t include enough context to be reusable. The worst part is the mental load: you’re making judgment calls with half the data, and your shortlist ends up biased toward whatever caught your eye first.
It adds up fast. Here’s where it usually breaks down.
- You copy titles and URLs manually, then forget to capture the numbers that actually matter (views, likes, comments, publish date).
- Channel context is missing, so you can’t tell if a “viral” video is impressive or just normal for that creator.
- Different teammates track research differently, which turns sharing into a cleanup project.
- You can’t compare results across searches because the format changes every time.
The Fix: Bulk YouTube Scoring Sent Straight to Google Sheets
This n8n workflow turns messy YouTube browsing into a repeatable research machine. You submit a search term in a simple form, choose the video format (short, medium, or long), and decide how many results you want to analyze. From there, the workflow talks to the YouTube API to pull a batch of video IDs, fetches detailed video metrics, then also fetches channel statistics for each creator. It merges those streams, calculates performance signals (including a quick “view ratio” style classification), and scores each video with an easy label so you can sort and decide fast. Finally, it appends a clean row into Google Sheets with the thumbnail, URL, stats, and scoring.
The workflow starts with a form submission. Then it gathers video identifiers, loops through them in batches, and fetches both video details and channel stats. When everything is combined and scored, Google Sheets becomes your living research library, not a one-off pastebin.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you research 3 topics per week and pull 25 videos per topic. Manually, you might spend about 3 minutes per video to capture the URL, title, views, likes, comments, and a quick channel check, which is roughly 4 hours weekly. With this workflow, you spend about 5 minutes submitting the forms, then wait while n8n fetches and scores everything and appends it to Google Sheets. You get most of that time back, and your list is standardized every time.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets for storing and sharing the ranked list
- YouTube Data API to fetch video and channel stats
- Google API Key (get it from Google Developers Console)
Skill level: Intermediate. You’ll connect credentials, paste a Sheet ID, and run a form-triggered workflow.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
A form submission kicks it off. You enter a search term, pick a format (short/medium/long), and choose how many videos to pull. n8n stores those inputs so every downstream request uses the same settings.
YouTube search results are fetched and cleaned. The workflow retrieves video identifiers via HTTP requests, then derives video IDs so it can request full details without messy parsing later.
Video metrics and channel stats get combined. For each video (processed in batches), n8n pulls video details, then pulls channel statistics, and merges both streams. That’s what makes the scoring more meaningful than “views only.”
Scoring and classification happen before the export. Code steps parse metrics, score performance, and classify view ratios so the final result is easier to sort in Google Sheets. A Wait node spaces out cycles to reduce failed calls during bulk runs.
You can easily modify the scoring rules to match your niche (for example, weighting comments more heavily) based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Form Trigger
Set up the form that will collect the search term, format, and video count to drive the workflow.
- Add a Form Submission Trigger node as the trigger.
- Set Form Title to
testand Form Description totets. - Confirm the form fields include Share your idea?, Format (dropdown with
short,medium,long), and Number of Videos.
Step 2: Connect YouTube API Inputs and Search
Map form values into API parameters and search YouTube for matching videos.
- In Assign API Inputs, set api_key to your key (replace
[CONFIGURE_YOUR_API_KEY]). - Set search_term to
{{ $json["Share your idea?"] }}, format to{{ $json.Format }}, and videoLimit to{{ $json["Number of Videos"] }}. - In Retrieve Video Identifiers, set URL to
https://www.googleapis.com/youtube/v3/searchand keep query parameters like maxResults as{{ $json.videoLimit || 1}}and q as{{ $json.search_term }}. - Ensure the API key parameter uses
{{ $json.api_key }}.
⚠️ Common Pitfall: If the form field labels change, update the expressions in Assign API Inputs to match the new names.
Step 3: Set Up ID Extraction and Video Iteration
Extract video IDs and iterate through them in batches for detail retrieval.
- In Derive Video IDs, keep the JavaScript code that maps
videoItem?.id?.videoIdinto a videoid field. - Connect Derive Video IDs to Iterate Video Items to process each ID.
- Leave Iterate Video Items options as default unless you want to limit batch size.
Step 4: Fetch Video and Channel Details in Parallel
Pull video statistics and channel statistics, then combine the results for scoring and classification.
- In Fetch Video Details, set URL to
https://www.googleapis.com/youtube/v3/videosand keep id as{{ $json.videoid }}and key as{{ $('Assign API Inputs').item.json.api_key }}. - Fetch Video Details outputs to both Parse Video Metrics and Fetch Channel Stats in parallel.
- In Fetch Channel Stats, keep id as
{{ $json.items[0].snippet.channelId }}and key as{{ $('Assign API Inputs').item.json.api_key }}. - Keep Parse Video Metrics and Channel Metrics code blocks as-is to normalize fields.
- In Score Video Performance, leave the scoring logic intact to calculate performance and performanceText.
- Merge the two data streams in Combine Streams using Mode
combineand Combine BycombineAll. - Classify the view-to-subscriber ratio in Classify View Ratio to add label and viewToSubRatio.
⚠️ Common Pitfall: If the YouTube API returns missing channel data, Fetch Channel Stats may fail. Validate API quota and response structure.
Step 5: Configure the Google Sheets Output
Append the final enriched metrics into your spreadsheet.
- Open Append Sheet Row and select the target spreadsheet Document and Sheet.
- Keep Operation as
appendand Use Append enabled. - Confirm the columns include fields like viewCount, subscriberCount, performance, performanceText, label, and viewToSubRatio.
- Credential Required: Connect your googleSheetsOAuth2Api credentials.
Step 6: Test and Activate Your Workflow
Run a full test from the form to ensure data flows correctly into Google Sheets, then activate the workflow.
- Use the Form Submission Trigger test form to submit a sample query.
- Verify that Retrieve Video Identifiers returns results and that Fetch Video Details runs for each ID.
- Check that Combine Streams outputs unified records and Append Sheet Row writes new rows.
- Click Activate to enable production execution after a successful test.
Watch Out For
- YouTube Data API credentials can expire or hit quota limits. If things break, check your Google Cloud Console quotas and the API key stored in n8n credentials 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.
Common Questions
Usually under an hour once your API key and Sheet are ready.
Yes. You’ll mostly connect accounts, paste a Sheet ID, and run the form trigger.
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 heavy bulk pulls can consume daily limits).
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 change the inputs in the “Assign API Inputs” step to support different search rules, like region, language, or upload recency. If you want a different scoring model, adjust the “Score Video Performance” and “Classify View Ratio” code steps to weight the metrics you care about. Many teams also add extra columns before “Append Sheet Row,” like a niche label, campaign name, or an “assigned to” owner for review.
Usually it’s an invalid or restricted API key, or you’ve hit a quota limit for the day. Regenerate the key (or adjust restrictions) in Google Cloud Console, then update the credential in n8n. Also check that the YouTube Data API is enabled for the project you created. If failures happen mid-run, increase the workflow’s wait time so you’re not hammering the API during bulk batches.
It’s mostly constrained by YouTube API quota and how aggressively you batch. On self-hosted n8n there’s no execution cap, but bulk runs can still be slowed by rate limits, so plan on processing in batches and letting the Wait node pace requests.
Often, yes, because this workflow isn’t a simple “trigger then log a row.” You’re doing multiple API calls per item (search results, video details, channel stats), plus merges and custom scoring logic. n8n handles branching and code-based transformations cleanly without pushing you into expensive task pricing for every little step. Zapier or Make can still work if you keep the scope small, but it gets clunky when you want batching and richer scoring. If you’re unsure, Talk to an automation expert and we’ll map it to your volume.
You don’t need more “ideas.” You need a repeatable way to prove which ideas are worth making, then share that proof in one place.
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.