Google Drive to YouTube, metadata done for every upload
Uploading a video is the easy part. It’s the titles, descriptions, tags, and “did we do it the same way as last time?” chaos that quietly burns your week.
This Drive YouTube automation hits content creators first, honestly. But a marketing manager trying to keep a channel consistent and a channel operator inside a small team feel the same drag. The outcome is simple: videos go from Google Drive to YouTube with metadata generated from the transcript, without you babysitting the upload.
Below, you’ll see how the workflow runs, what you get out of it, and what you’ll need to make it reliable in production.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Drive to YouTube, metadata done for every upload
flowchart LR
subgraph sg0["Detect Fresh Upload Flow"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Retrieve New Clip", pos: "b", h: 48 }
n1@{ icon: "mdi:play-circle", form: "rounded", label: "Detect Fresh Upload", pos: "b", h: 48 }
n2@{ icon: "mdi:robot", form: "rounded", label: "Generate Summary Text", pos: "b", h: 48 }
n3@{ icon: "mdi:brain", form: "rounded", label: "Gemini Flash Model", pos: "b", h: 48 }
n4@{ icon: "mdi:robot", form: "rounded", label: "Compose Video Tags", pos: "b", h: 48 }
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 Transcript"]
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/code.svg' width='40' height='40' /></div><br/>Normalize Transcript"]
n7@{ icon: "mdi:cog", form: "rounded", label: "Refresh Video Details", pos: "b", h: 48 }
n8@{ icon: "mdi:robot", form: "rounded", label: "Craft Video Title", pos: "b", h: 48 }
n9@{ icon: "mdi:cog", form: "rounded", label: "Remove Source File", pos: "b", h: 48 }
n10@{ icon: "mdi:cog", form: "rounded", label: "Publish Video Upload", pos: "b", h: 48 }
n11@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Apify Token", pos: "b", h: 48 }
n4 --> n8
n8 --> n7
n11 --> n5
n1 --> n0
n3 -.-> n4
n5 --> n6
n2 --> n4
n0 --> n10
n7 --> n9
n10 --> n11
n6 --> n2
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,n4,n8 ai
class n3 aiModel
class n5 api
class n6 code
classDef customIcon fill:none,stroke:none
class n5,n6 customIcon
The Problem: YouTube uploads stall at “metadata”
You record, you edit, you export, you upload. Then you stare at a blank YouTube description field and realize you still need a title, a hook, timestamps (maybe), tags, and a consistent structure that doesn’t look copied from your last 20 videos. If you’re publishing regularly, this becomes a second job. The worst part is that metadata work is deceptively “small” per video, but it adds up to hours each week, and mistakes are easy: missing keywords, inconsistent naming, forgetting to update the title after the thumbnail changes.
It adds up fast. Here’s where it usually breaks down.
- One upload can trigger about 30 minutes of extra work once you include rewriting the description, pulling links, and guessing tags.
- Metadata quality swings wildly depending on who’s doing it that day, which means your channel looks inconsistent even when the content is strong.
- Teams end up keeping “title formulas” in random docs, so people copy old templates and forget to update the details.
- If you upload in batches, YouTube becomes a backlog because no one wants to do the repetitive filling-in.
The Solution: Google Drive → YouTube upload with transcript-based metadata
This workflow watches a dedicated Google Drive folder for new video files. When a new clip appears, n8n automatically downloads it, uploads it to YouTube, then pulls a transcript from the uploaded video for context. That transcript gets cleaned up into a consistent format, and AI is used to generate a YouTube-ready title, a description, and a set of relevant tags. Finally, the workflow updates the video on YouTube with the generated metadata and removes the source file from Drive to keep your folder clean. No more tab juggling. No more “we’ll add the description later.”
The workflow starts with a Google Drive “new upload” trigger. From there, YouTube receives the video, a transcript is fetched and normalized, and AI generates the summary, tags, and title. The last step refreshes the video details and applies the final metadata so the upload is actually publish-ready.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you publish 4 videos a week. Manually, uploading plus writing a decent title, description, and tags is commonly about 30 minutes per video, which is roughly 2 hours weekly. With this workflow, your “work” becomes dropping the file into the right Google Drive folder (about 2 minutes), then waiting for processing and upload to finish in the background. You still review before going public, but the blank-page work disappears.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Drive for the “drop video here” folder.
- YouTube to upload and update video metadata.
- AI provider credentials (configure in n8n credentials) for generating titles, descriptions, and tags.
- Apify token (get it from your Apify account settings) for transcript retrieval in this workflow.
Skill level: Intermediate. You’ll connect OAuth accounts, add credentials, and adjust a couple of variables like the Drive folder ID.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A new file lands in your Google Drive folder. The workflow uses a Drive trigger to detect a fresh upload in the folder you specify (ideally a folder dedicated to “ready to publish” exports).
The video is retrieved and uploaded to YouTube. n8n downloads the file from Drive, then sends it to YouTube via your connected account. At this stage, the upload exists and has a video ID that the rest of the workflow can reference.
The transcript is fetched and cleaned up. A transcript is pulled using an HTTP request step (the workflow sets an Apify token first), then a code step normalizes the transcript so it’s consistent. That matters because messy transcripts lead to messy metadata.
AI generates the metadata and YouTube is updated. The workflow creates a summary, then uses that context to generate tags and a title. It refreshes the video details and applies the new title, description, and tags, then removes the original file from Google Drive to prevent reprocessing.
You can easily modify the prompts to match your channel voice, or change the final visibility behavior based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Google Drive Trigger
Set up the trigger that detects new uploads in a specific Google Drive folder and starts the pipeline.
- Add and open Detect Fresh Upload.
- Set Event to
fileCreatedand Trigger On tospecificFolder. - Set Folder To Watch to
[YOUR_ID]. - Confirm the poll schedule is set to
everyMinuteunder Poll Times. - Credential Required: Connect your googleDriveOAuth2Api credentials.
- Connect Detect Fresh Upload to Retrieve New Clip.
Step 2: Connect Google Drive File Handling
Download the new file and later remove it after the YouTube metadata update completes.
- Open Retrieve New Clip and set Operation to
download. - Set File ID to
={{ $json.id }}. - Credential Required: Connect your googleDriveOAuth2Api credentials.
- Open Remove Source File and set Operation to
deleteFile. - Set File ID to
={{ $('Retrieve New Clip').item.json.id }}. - Credential Required: Connect your googleDriveOAuth2Api credentials.
Step 3: Set Up Transcript Retrieval
Prepare the Apify token, request the transcript via HTTP, and normalize it into a single text string for AI processing.
- Open Publish Video Upload to confirm it outputs the uploaded video ID before transcript retrieval begins.
- Open Set Apify Token and set token to
[CONFIGURE_YOUR_TOKEN]. - Open Fetch Transcript and set URL to
=https://api.apify.com/v2/acts/pintostudio~youtube-transcript-scraper/run-sync-get-dataset-items. - Set Method to
POST, Send Body totrue, Send Query totrue, and Specify Body tojson. - Set JSON Body to
={ "videoUrl": "https://www.youtube.com/watch?v={{ $json.id }}"}and Query Parameters → token to={{$json.token}}. - Open Normalize Transcript and keep the JavaScript Code as provided to merge transcript segments into
transcript.
Step 4: Set Up AI Content Generation
Create the video summary, tags, and final SEO title using OpenAI and Gemini, based on the normalized transcript.
- Open Generate Summary Text and confirm Model is
gpt-4.1-nano. - Set the user message content to
=Here is the transcript:{{ $json.transcript }}and keep the system prompt as provided. - Credential Required: Connect your openAiApi credentials.
- Open Compose Video Tags and set Text to
=Now follows the actual topic/transcript. Give me the YouTube tags for it:{{ $('Normalize Transcript').item.json.transcript }}. - Ensure the Gemini Flash Model is connected as the language model for Compose Video Tags. Credential Required: Connect your googlePalmApi credentials in Gemini Flash Model (not in the agent node).
- Open Craft Video Title and confirm Model is
gpt-4.1-nanowith the provided system and user prompts. - Credential Required: Connect your openAiApi credentials.
Step 5: Configure YouTube Upload and Update
Upload the video, then update title, tags, and description using AI output before cleaning up the source file.
- Open Publish Video Upload and set Operation to
upload, Resource tovideo, Category ID to25, and Region Code toDE. - Set Title to
adadada(placeholder) and Options → Privacy Status toprivate. - Credential Required: Connect your youTubeOAuth2Api credentials.
- Open Refresh Video Details and set Title to
={{ $('Craft Video Title').item.json.title }}and Video ID to={{ $('Publish Video Upload').item.json.uploadId }}. - Set Update Fields → Tags to
={{ $('Compose Video Tags').item.json.message.content }}and Update Fields → Description to={{ $('Generate Summary Text').first().json.message.content }} Diese textbasierte Zusammenfassung des Videos wurde automatisch mit dem KI-Modell gpt-4.1-nano erstellt.]. - Credential Required: Connect your youTubeOAuth2Api credentials.
- Keep the execution order: Retrieve New Clip → Publish Video Upload → Set Apify Token → Fetch Transcript → Normalize Transcript → Generate Summary Text → Compose Video Tags → Craft Video Title → Refresh Video Details → Remove Source File.
Step 6: Test and Activate Your Workflow
Validate the workflow end-to-end and then enable it for production use.
- Click Execute Workflow and upload a test file to the monitored Google Drive folder.
- Confirm that Publish Video Upload returns an
uploadIdand that Fetch Transcript returns transcript data. - Verify that Refresh Video Details updates the YouTube title, tags, and description using AI output.
- Ensure Remove Source File deletes the original Google Drive file after metadata updates.
- When successful, toggle the workflow to Active to run continuously.
Common Gotchas
- YouTube credentials can expire or need specific permissions. If things break, check the YouTube OAuth connection in n8n credentials first, then confirm your channel can upload and edit videos.
- 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 Google Drive, YouTube, and AI credentials are ready.
No. You’ll mostly connect accounts and paste in the right tokens. The only “technical” part is checking the folder ID and testing with a small file.
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 AI API usage plus any transcript service costs (often a few cents per video, depending on length).
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 one of the best upgrades. You can add an If condition based on file name patterns (like “podcast_” or “tutorial_”), then swap prompts used in the “Craft Video Title” and “Generate Summary Text” AI steps. Common tweaks include adding a fixed link block in descriptions, inserting sponsor text, and generating chapters from the normalized transcript.
Usually it’s expired OAuth credentials in n8n or missing permissions on the YouTube account. Reconnect YouTube in n8n credentials, then confirm the channel can upload and edit videos. If you’re uploading a lot in a short time, you can also hit API quota limits, so spacing uploads out via a schedule trigger can help.
If you self-host, there’s no execution limit (it mainly depends on your server and YouTube quotas).
Often, yes, because this kind of flow needs transcript formatting, branching, and multiple AI steps, and n8n handles that without turning into a fragile chain of mini-zaps. It’s also easier to self-host if you’re publishing a lot and don’t want per-task pricing to creep up. Zapier or Make can still work if you only need “file uploaded → upload to YouTube” with a basic description template. The moment you want transcript-based metadata, quality checks, and cleanup actions (like removing the Drive file), n8n is simply more flexible. If you want a quick sanity check for your setup, Talk to an automation expert.
Once this is in place, YouTube publishing feels boring in the best way. The workflow handles the repetitive stuff, and you get your time back for ideas, editing, and actually shipping.
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.