Upload & Rename Videos to Google Drive via Apps Script from URL
📄 Google Script Workflow: Upload File from URL to Google Drive (via n8n)
🔧 Purpose: This lightweight Google Apps Script acts as a server endpoint that receives a file URL (from n8n), downloads the file, uploads it to your specified Google Drive folder, and responds with the file’s metadata (like Drive file ID and URL). This is useful for large video/audio files that n8n cannot handle directly via HTTP Download nodes.
🚀 Setup Steps:
- Create a New Script Project
Go to https://script.google.com Click “New Project” Rename the project to something like: DriveUploader
- Paste the Script Code
Replace the default Code.gs content with the following (your custom script):
function doPost(e) { const SECRET_KEY = 'your-strong-secret-here'; // Set your secret key here
try { const data = JSON.parse(e.postData.contents);
// 🔒 Check for correct secret key
if (!data.secret || data.secret !== SECRET_KEY) {
return ContentService.createTextOutput("Unauthorized")
.setMimeType(ContentService.MimeType.TEXT);
}
const videoUrl = data.videoUrl;
const folderId = 'YOUR_FOLDER_ID_HERE'; // Replace with your target folder ID
const folder = DriveApp.getFolderById(folderId);
const response = UrlFetchApp.fetch(videoUrl);
const blob = response.getBlob();
const file = folder.createFile(blob);
file.setName('uploaded_video.mp4'); // You can customize the name
return ContentService.createTextOutput(file.getUrl())
.setMimeType(ContentService.MimeType.TEXT);
} catch (err) { return ContentService.createTextOutput("Error: " + err.message) .setMimeType(ContentService.MimeType.TEXT); } }
- Generate & Set Up Secret Key To allow authorized post requests to your script only, we need to generate a secret key from aany reliable key generator. You can head over to acte, click generate and copy the "Encryption key 256". Paste it in the 'your-strong-secret-here' placeholder in your script then click save
const SECRET_KEY = 'your-strong-secret-here'; // Set your secret key here; 4. Replace Folder ID in Code
Open the target Drive folder in your browser
The folder ID is the part of the URL after /folders/
Example:
https://drive.google.com/drive/u/0/folders/1Xabc12345678defGHIJklmn
Paste that ID in the script:
var folderId = "1Xabc12345678defGHIJklmn";
5. Set Up Deployment as Web App
Click “Deploy” > “Manage Deployments” > “New Deployment” Under Select type, choose Web app Description: Upload from URL to Drive Execute as: Me Who has access: Anyone Click Deploy Authorize the script when prompted Copy the Web App URL
📤 How to Use in n8n
- HTTP Request Node
Method: POST URL: (your web app URL) Secret Key: (Secret Key set in script) Body Content Type: JSON Paste code: { "videoUrl": "https://example.com/path/to/your.mp4", "secret": "your-strong-secret-here" } videoUrl: The file download URL secret: The generated and set up secret key
- Rename Node
A simple drive update node to rename the file using the file drive url returned from the script.
Related Templates
Send structured logs to BetterStack from any workflow using HTTP Request
Send structured logs to BetterStack from any workflow using HTTP Request Who is this for? This workflow is perfect for...
Provide latest euro exchange rates from European Central Bank via Webhook
What is this workflow doing? This simple workflow is pulling the latest Euro foreign exchange reference rates from the E...
Automate Daily Keyword Research with Google Sheets, Suggest API & Custom Search
Who's it for This workflow is perfect for SEO specialists, marketers, bloggers, and content creators who want to automa...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments