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.
DriveUploaderReplace 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);
  }
}
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;
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";
Upload from URL to DriveMethod: 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


