This workflow corresponds to n8n.io template #6837 — we link there as the canonical source.
This workflow follows the Form Trigger → Google Drive recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "1426bdd3-b67c-40be-a93b-4017b988a507",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-500,
-20
],
"parameters": {
"options": {},
"formTitle": "Linkedin to MP4",
"formFields": {
"values": [
{
"fieldLabel": "URL",
"placeholder": "https://linkedin.com/abcdefg",
"requiredField": true
}
]
},
"formDescription": "Linkedin to MP4 Converter"
},
"typeVersion": 2.2
},
{
"id": "1535cbdf-43cf-45ed-a417-598fd4099031",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
-280,
-20
],
"parameters": {
"url": "https://linkedin-video-downloader3.p.rapidapi.com/index.php",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $json.URL }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "x-rapidapi-host",
"value": "linkedin-video-downloader3.p.rapidapi.com"
},
{
"name": "x-rapidapi-key",
"value": "your key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "a8eab174-692b-43e1-9d83-1a4bd365e8a5",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
20,
0
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "bcc58e3d-9609-4ec3-adb9-bc6098205818",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9f8a90f9-c6c5-4ca5-8685-c3bc3f2eb4a2",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
360,
240
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "0f4edd02-cb08-4fbf-92c1-88c3d0155794",
"name": "Download mp4",
"type": "n8n-nodes-base.httpRequest",
"position": [
280,
-280
],
"parameters": {
"url": "={{ $json.medias[0].url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "42b59712-c67b-41bd-aa92-07428f2f9f89",
"name": "Google Drive Set Permission",
"type": "n8n-nodes-base.googleDrive",
"position": [
840,
-300
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {},
"resource": "file",
"operation": "share",
"permissionsUi": {},
"authentication": "oAuth2"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "49f20dad-a161-4093-bb0b-ddf8d0f38001",
"name": "Upload To Google Drive",
"type": "n8n-nodes-base.googleDrive",
"position": [
540,
-300
],
"parameters": {
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "1ad3686d-10e7-4d42-aa28-0d51c20b6c4a",
"name": "Google Sheets Append Row",
"type": "n8n-nodes-base.googleSheets",
"position": [
840,
240
],
"parameters": {
"columns": {
"value": {
"URL": "{{ $('On form submission').item.json.URL }}",
"Drive_URL": "N/A"
},
"schema": [
{
"id": "URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Drive_URL",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Drive_URL",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "url",
"value": ""
},
"documentId": {
"__rl": true,
"mode": "url",
"value": ""
},
"authentication": "serviceAccount"
},
"credentials": {
"googleApi": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "415e26db-3d6d-4cd1-8485-bc861ad39a64",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-300
],
"parameters": {
"height": 500,
"content": "## \ud83d\udfe2 **1. On form submission**\n- **Purpose:** Acts as the trigger for the workflow. \n- **Functionality:** Displays a form with a single field (`URL`) where users can enter the LinkedIn video link. \n- **Output:** Passes the entered URL to the next node for processing."
},
"typeVersion": 1
},
{
"id": "09741083-a9b0-4e15-8824-a2ff59aae991",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-300
],
"parameters": {
"height": 500,
"content": "## \ud83c\udf10 **2. HTTP Request**\n- **Purpose:** Fetch downloadable MP4 link. \n- **Functionality:** Sends a `POST` request to **RapidAPI LinkedIn Video Downloader API**, passing the URL from the form. \n- **Output:** Receives a JSON response containing downloadable media links.\n"
},
"typeVersion": 1
},
{
"id": "6bbbec40-7cfb-49c2-aabc-8d24b9f97852",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-300
],
"parameters": {
"height": 500,
"content": "## \ud83d\udd0d **3. If**\n- **Purpose:** Check for API errors. \n- **Functionality:** Evaluates if the response contains an `error` field. \n- **Output:** \n - \u2705 **True Path:** Proceeds to download the MP4. \n - \u274c **False Path:** Goes to error handling (Wait + Sheets logging).\n"
},
"typeVersion": 1
},
{
"id": "3c071121-ab03-46c2-bc3b-37cfbc8efcc4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
220,
-540
],
"parameters": {
"height": 440,
"content": "## \u2b07\ufe0f **4. Download mp4**\n- **Purpose:** Download the video file. \n- **Functionality:** Uses the media URL from the previous API response to download the MP4 video. \n- **Output:** Stores the raw MP4 binary for upload.\n\n-"
},
"typeVersion": 1
},
{
"id": "b520286d-f01d-45dd-b8a4-bbb7b6ffea4a",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-540
],
"parameters": {
"height": 400,
"content": "## \u2601\ufe0f **5. Upload To Google Drive**\n- **Purpose:** Store video in Google Drive. \n- **Functionality:** Uploads the downloaded MP4 into the specified Drive folder. \n- **Output:** Returns a file ID for the uploaded file.\n"
},
"typeVersion": 1
},
{
"id": "19f78901-47c2-4346-a2fd-8fba54ce76a1",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
-540
],
"parameters": {
"height": 380,
"content": "## \ud83d\udd11 **6. Google Drive Set Permission**\n- **Purpose:** Make the file publicly accessible. \n- **Functionality:** Sets file permissions to `Anyone with the link can view`. \n- **Output:** Provides a sharable `webViewLink`.\n"
},
"typeVersion": 1
},
{
"id": "2d3c1c4b-3e48-46a8-b8a7-3bb449f5031c",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
0
],
"parameters": {
"height": 360,
"content": "## \u23f1\ufe0f **8. Wait**\n- **Purpose:** Delay before logging failures. \n- **Functionality:** Pauses workflow execution to avoid instant sheet logging when API errors occur. \n- **Output:** Prevents rapid consecutive writes to Google Sheets."
},
"typeVersion": 1
},
{
"id": "0ae98a86-e0c6-4c47-a62b-5efc82a6bf99",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
-120
],
"parameters": {
"height": 480,
"content": "## \ud83d\udcd1 **9. Google Sheets Append Row**\n- **Purpose:** Log failed conversions. \n- **Functionality:** Appends a row with:\n - `URL` \u2192 Original LinkedIn link \n - `Drive_URL` \u2192 `N/A` (indicating download failure) \n- **Output:** Tracks failed attempts separately.\n"
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "Download mp4",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "Google Sheets Append Row",
"type": "main",
"index": 0
}
]
]
},
"Download mp4": {
"main": [
[
{
"node": "Upload To Google Drive",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
],
[]
]
},
"On form submission": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"Upload To Google Drive": {
"main": [
[
{
"node": "Google Drive Set Permission",
"type": "main",
"index": 0
}
]
]
},
"Google Drive Set Permission": {
"main": [
[]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleApigoogleDriveOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow automatically converts LinkedIn video URLs into downloadable MP4 files using the LinkedIn Video Downloader API, uploads them to Google Drive with public access, and logs both the original URL and Google Drive link into Google Sheets. It leverages the LinkedIn…
Source: https://n8n.io/workflows/6837/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Nova AI Content Marketing Agent - LinkedIn & Facebook Automation This n8n template demonstrates how to create a complete AI-powered social media content creation and scheduling system that generates p
Disclaimer: this workflow only works on self-hosted instances due to the file system usage.
More workflow: https://aitool.wiki/
This n8n workflow automates the process of scraping job listings from both LinkedIn and Indeed platforms simultaneously, combining results, and exporting data to Google Sheets for comprehensive job ma
💼 LinkedIn Job Finder Automation using Bright Data API & Google Sheets