This workflow corresponds to n8n.io template #7036 — we link there as the canonical source.
This workflow follows the Executecommand → HTTP Request 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": "ac0f4816-72d3-4fb2-94bb-9999c3b1085b",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-880,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "371f3ef5-358c-48ba-b11e-712c1514767a",
"name": "GetYTvideo",
"type": "n8n-nodes-base.googleSheets",
"position": [
-656,
480
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1195115445,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
"cachedResultName": "Video Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "5d688a6e-bfed-472c-83f6-72199972d5e6",
"name": "Limit_1",
"type": "n8n-nodes-base.limit",
"position": [
-432,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "952af5ed-54d3-46d4-898b-f72c1dbf82ec",
"name": "GenrateFileName",
"type": "n8n-nodes-base.set",
"position": [
-208,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1b8917a0-7b13-46f3-9b5a-59dbe9d33e38",
"name": "=File Name",
"type": "string",
"value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
},
{
"id": "3dd38945-c044-486b-9e0c-4a080b62a606",
"name": "Folder Name",
"type": "string",
"value": "Video Footage"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "f36527c6-014f-4cff-bdee-201c053bb1b7",
"name": "DownloadVideoFootage",
"type": "n8n-nodes-base.executeCommand",
"position": [
16,
480
],
"parameters": {
"command": "=yt-dlp -o \"./{{ $('GenrateFileName').item.json['Folder Name'] }}/{{ $('GenrateFileName').item.json['File Name'] }}.mp4\" \"{{ $('GetYTvideo').item.json['Video Path'] }}\" -f \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\""
},
"typeVersion": 1
},
{
"id": "228c5416-3c28-4dae-a731-19c6f607e7e7",
"name": "UpdateVideoFootageDetails",
"type": "n8n-nodes-base.googleSheets",
"position": [
240,
480
],
"parameters": {
"columns": {
"value": {
"Status": "Success",
"row_number": "={{ $('Limit_1').item.json.row_number }}",
"Internal Path": "=./{{ $('GenrateFileName').item.json['Folder Name'] }}/{{ $('GenrateFileName').item.json['File Name'] }}.mp4"
},
"schema": [
{
"id": "Video Path",
"type": "string",
"display": true,
"required": false,
"displayName": "Video Path",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Internal Path",
"type": "string",
"display": true,
"required": false,
"displayName": "Internal Path",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1195115445,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
"cachedResultName": "Video Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "f37f7325-bb4c-40cf-aef1-d9a30ee281e3",
"name": "GetYTmusic",
"type": "n8n-nodes-base.googleSheets",
"position": [
-656,
704
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 871997350,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
"cachedResultName": "Music Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "1fb675f8-238d-4309-8529-110be976894f",
"name": "Limit_01",
"type": "n8n-nodes-base.limit",
"position": [
-432,
704
],
"parameters": {},
"typeVersion": 1
},
{
"id": "a4c35406-7cf2-49f9-8020-c10aaf471eab",
"name": "GenrateFileName_01",
"type": "n8n-nodes-base.set",
"position": [
-208,
704
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1b8917a0-7b13-46f3-9b5a-59dbe9d33e38",
"name": "=File Name",
"type": "string",
"value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
},
{
"id": "3dd38945-c044-486b-9e0c-4a080b62a606",
"name": "Folder Name",
"type": "string",
"value": "MusicFile"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c301bc03-25ce-48fb-b3a3-ca360b87cb9f",
"name": "DownloadMusic",
"type": "n8n-nodes-base.executeCommand",
"position": [
16,
704
],
"parameters": {
"command": "=yt-dlp -x \\\n --audio-format mp3 \\\n --audio-quality 0 \\\n --embed-thumbnail \\\n -o\"./{{ $('GenrateFileName_01').item.json['Folder Name'] }}/{{ $('GenrateFileName_01').item.json['File Name'] }}.mp3\" \\\n \"{{ $('GetYTmusic').item.json['Music Path'] }}\"\n"
},
"typeVersion": 1
},
{
"id": "5b81df46-443d-4f91-ab28-72d3a27b77e8",
"name": "UpdateMusicDetails",
"type": "n8n-nodes-base.googleSheets",
"position": [
240,
704
],
"parameters": {
"columns": {
"value": {
"Status": "Success",
"row_number": "={{ $('GetYTmusic').item.json.row_number }}",
"Internal Path": "=./{{ $('GenrateFileName_01').item.json['Folder Name'] }}/{{ $('GenrateFileName_01').item.json['File Name'] }}.mp3"
},
"schema": [
{
"id": "Music Path",
"type": "string",
"display": true,
"required": false,
"displayName": "Music Path",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Internal Path",
"type": "string",
"display": true,
"required": false,
"displayName": "Internal Path",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 871997350,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
"cachedResultName": "Music Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "a37bb3ce-5f60-4ae3-a9d9-3fbf503a0786",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-880,
704
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "3ecd2d56-7eeb-4891-ba83-5b357b5ff999",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-960,
304
],
"parameters": {
"color": 4,
"width": 1392,
"height": 592,
"content": "# YouTube Video & Music Downloader\n\n**Video Downloader** - Fetches YouTube video links from Google Sheets, downloads as MP4 with unique filenames, and updates sheet with paths \n\n**Music Downloader** - Gets music links from Google Sheets, downloads as MP3 (HQ+thumbnail), and tracks paths in spreadsheet"
},
"typeVersion": 1
},
{
"id": "498ffdbe-8a7b-4f89-b5b2-f21783008420",
"name": "Schedule Trigger1",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1056,
272
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 11,
"triggerAtMinute": 51
}
]
}
},
"typeVersion": 1.2
},
{
"id": "e78c802f-4982-4e29-97eb-05d59379fa71",
"name": "GetAllVideos",
"type": "n8n-nodes-base.googleSheets",
"position": [
1280,
272
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "Success",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1195115445,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=1195115445",
"cachedResultName": "Video Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "aaf6e8b2-e568-41ac-a3d5-b4f413d41634",
"name": "AggregateVideos",
"type": "n8n-nodes-base.aggregate",
"position": [
1504,
272
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "Internal Path"
}
]
}
},
"typeVersion": 1
},
{
"id": "735e9762-d509-46a3-9052-6f6aba176baf",
"name": "GetAllMusic",
"type": "n8n-nodes-base.googleSheets",
"position": [
1728,
272
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "Success",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 871997350,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=871997350",
"cachedResultName": "Music Pool"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "f7332c1b-3b9f-4e17-8f89-de5264f38fe3",
"name": "AggregateMusic",
"type": "n8n-nodes-base.aggregate",
"position": [
624,
480
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"fieldToAggregate": "Internal Path"
}
]
}
},
"typeVersion": 1
},
{
"id": "c7783a6e-cc80-4cac-9280-e9195f1eb6c8",
"name": "GetQuotes",
"type": "n8n-nodes-base.googleSheets",
"position": [
848,
480
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 739055601,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=739055601",
"cachedResultName": "Video Logs"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "3d4c539c-fcbc-4965-915e-29269cceb58a",
"name": "Limit",
"type": "n8n-nodes-base.limit",
"position": [
1072,
480
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4a603c0c-b734-4180-be56-1d84a73349af",
"name": "PickMusicVideoRandom",
"type": "n8n-nodes-base.set",
"position": [
1280,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3b028ccc-6b8d-4ed0-958a-52b0223e5dac",
"name": "Music_Path",
"type": "string",
"value": "={{ $('AggregateMusic').item.json['Internal Path'][Math.floor(Math.random() * $('AggregateMusic').item.json['Internal Path'].length)] }}"
},
{
"id": "b97fb3ce-cf68-46fc-81b3-774ac5e26990",
"name": "Video_Path",
"type": "string",
"value": "={{ $('AggregateVideos').item.json['Internal Path'][Math.floor(Math.random()*$('AggregateVideos').item.json['Internal Path'].length)] }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e228ce95-dfeb-499f-9d0d-08ec9e4156c4",
"name": "GenrateFinalFileName",
"type": "n8n-nodes-base.set",
"position": [
1504,
480
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "aec988b9-f8b7-4b59-8438-f720568d4d9f",
"name": "File Name",
"type": "string",
"value": "={{ Array.from({ length: 10 }, () => Math.random().toString(36)[2]).join('') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "580b2672-9d3d-45b6-9389-9c4eb7dd8755",
"name": "GenrateTextOverlayForVideo",
"type": "n8n-nodes-base.code",
"position": [
1728,
480
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const fontColor = \"white\";\nconst fontFile = \"NotoSerif_Condensed-BlackItalic.ttf\";\nconst fontSize = 80;\nconst lineHeightMultiplier = 1.1;\nconst videoWidth = 1080;\n\nconst avgCharWidth = fontSize * 0.6;\nconst maxCharsPerLine = Math.floor(videoWidth / avgCharWidth);\n\nconst words = $('GetQuotes').item.json['Video Transcript'].split(' ');\nconst lines = [];\nlet currentLine = '';\nlet currentCharCount = 0;\n\nwords.forEach(word => {\n const wordLength = word.length;\n const potentialLength = currentCharCount + (currentLine ? 1 : 0) + wordLength;\n if (potentialLength <= maxCharsPerLine) {\n currentLine += `${currentLine ? ' ' : ''}${word}`;\n currentCharCount = potentialLength;\n } else {\n lines.push(currentLine);\n currentLine = word;\n currentCharCount = wordLength;\n }\n});\n\nif (currentLine) lines.push(currentLine);\n\nconst totalHeight = lines.length * fontSize * lineHeightMultiplier;\nconst lineHeight = fontSize * lineHeightMultiplier;\n\nconst drawText = lines.map((line, index) => {\n const y = `(h/2)-${Math.ceil(totalHeight/2)}+${index * lineHeight}`;\n return `drawtext=text='${line}':fontsize=${fontSize}:fontcolor=${fontColor}:x=(w-tw)/2:y=${y}:fontfile=${fontFile}`;\n}).join(',');\n\nreturn {\n drawText\n};"
},
"typeVersion": 2
},
{
"id": "36f5d319-a960-4919-829e-eaaf43ff22b4",
"name": "GenerateVideo",
"type": "n8n-nodes-base.executeCommand",
"position": [
624,
704
],
"parameters": {
"command": "=ffmpeg -i \"{{ $('PickMusicVideoRandom').item.json.Video_Path }}\" \\\n -i \"{{ $('PickMusicVideoRandom').item.json.Music_Path }}\" \\\n -filter_complex \"\n[0:v]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920[vid];\ncolor=black@0.3:size=1080x1920:d=10[bg];\n[vid][bg]overlay[bgvid];\n[bgvid]{{ $json.drawText }}[outv];\n[1:a]volume=0.8[aout]\" \\\n -map \"[outv]\" \\\n -map \"[aout]\" \\\n -t 10 -aspect 9:16 -c:v libx264 -c:a aac -shortest \\\n \"./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4\" -y\n\n\n",
"executeOnce": false
},
"typeVersion": 1
},
{
"id": "a0611b1b-cd28-46f1-91c1-195ffd482bd8",
"name": "Read/Write Files from Disk",
"type": "n8n-nodes-base.readWriteFile",
"position": [
1072,
704
],
"parameters": {
"options": {},
"fileSelector": "=./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4"
},
"typeVersion": 1
},
{
"id": "b203af9a-1738-491a-acb0-711d7e1bd925",
"name": "UploadVideo",
"type": "n8n-nodes-base.httpRequest",
"position": [
1280,
704
],
"parameters": {
"url": "={{ $('CreateYoutubeLink').item.json.headers.location }}",
"method": "PUT",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "video/webm"
}
]
},
"inputDataFieldName": "data",
"nodeCredentialType": "youTubeOAuth2Api"
},
"credentials": {
"youTubeOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "8a1126d5-5380-41e1-8eb7-d6c17e2cc004",
"name": "CreateYoutubeLink",
"type": "n8n-nodes-base.httpRequest",
"position": [
832,
704
],
"parameters": {
"url": "https://www.googleapis.com/upload/youtube/v3/videos?part=snippet,status&uploadType=resumable",
"body": "={\n \"snippet\": {\n \"title\": \"{{ $('Limit').item.json['Video Title'] }}\",\n \"description\": \"{{ $('Limit').item.json['Video Transcript'] }}\",\n \"defaultLanguage\": \"en\",\n \"defaultAudioLanguage\": \"en\"\n },\n \"status\": {\n \"privacyStatus\": \"public\",\n \"license\": \"youtube\",\n \"embeddable\": true,\n \"publicStatsViewable\": true,\n \"madeForKids\": false\n }\n}",
"method": "POST",
"options": {
"response": {
"response": {
"fullResponse": true
}
}
},
"sendBody": true,
"contentType": "raw",
"sendHeaders": true,
"authentication": "predefinedCredentialType",
"rawContentType": "RAW/JSON",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "C-Upload-Content-Type",
"value": "video/webm"
}
]
},
"nodeCredentialType": "youTubeOAuth2Api"
},
"credentials": {
"youTubeOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "c76839aa-ea62-43d3-9672-bff1274e8785",
"name": "UpdateVideoPost",
"type": "n8n-nodes-base.googleSheets",
"position": [
1504,
704
],
"parameters": {
"columns": {
"value": {
"Status": "Success",
"Post Time": "={{$now}}",
"row_number": "={{ $('Limit').item.json.row_number }}",
"Output Path": "=./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4",
"Youtube Link": "=https://www.youtube.com/watch?v={{ $json.id }}"
},
"schema": [
{
"id": "Video Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Video Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Video Transcript",
"type": "string",
"display": true,
"required": false,
"displayName": "Video Transcript",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Output Path",
"type": "string",
"display": true,
"required": false,
"displayName": "Output Path",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Youtube Link",
"type": "string",
"display": true,
"required": false,
"displayName": "Youtube Link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Post Time",
"type": "string",
"display": true,
"required": false,
"displayName": "Post Time",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 739055601,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit#gid=739055601",
"cachedResultName": "Video Logs"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12GT5hiQBMiklbVtOtfzySwwy2gzJTaz5U6NEMXmAUzs/edit?usp=drivesdk",
"cachedResultName": "DaysOfDodo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "9a8a340d-5cf3-478c-807f-2e9f96d1c025",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
128
],
"parameters": {
"color": 3,
"width": 1504,
"height": 768,
"content": "# YouTube Video & Music Processor\n\n**Video Pipeline** - Fetches videos \u2192 Adds text overlays \u2192 Generates 10s clips \u2192 Uploads to YouTube \n\n**Music Pipeline** - Selects random tracks \u2192 Adjusts volume \u2192 Merges with videos \n\n**Tracking** - Logs all results in Google Sheets \u2192 Cleans up files"
},
"typeVersion": 1
},
{
"id": "e218c900-3d62-482b-80ac-db76a7c40155",
"name": "RemoveFile",
"type": "n8n-nodes-base.executeCommand",
"position": [
1744,
704
],
"parameters": {
"command": "=rm ./{{ $('GenrateFinalFileName').item.json['File Name'] }}.mp4",
"executeOnce": false
},
"typeVersion": 1
},
{
"id": "c7d899b9-a662-4d73-94fb-ff8acde2ad54",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-960,
128
],
"parameters": {
"color": 3,
"width": 1392,
"height": 128,
"content": "# Automatic Youtube shorts creation and uploading\n## That includes 2 workflows, first one to download the resources and second one to merge and uploading"
},
"typeVersion": 1
}
],
"connections": {
"Limit": {
"main": [
[
{
"node": "PickMusicVideoRandom",
"type": "main",
"index": 0
}
]
]
},
"Limit_1": {
"main": [
[
{
"node": "GenrateFileName",
"type": "main",
"index": 0
}
]
]
},
"Limit_01": {
"main": [
[
{
"node": "GenrateFileName_01",
"type": "main",
"index": 0
}
]
]
},
"GetQuotes": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"GetYTmusic": {
"main": [
[
{
"node": "Limit_01",
"type": "main",
"index": 0
}
]
]
},
"GetYTvideo": {
"main": [
[
{
"node": "Limit_1",
"type": "main",
"index": 0
}
]
]
},
"GetAllMusic": {
"main": [
[
{
"node": "AggregateMusic",
"type": "main",
"index": 0
}
]
]
},
"UploadVideo": {
"main": [
[
{
"node": "UpdateVideoPost",
"type": "main",
"index": 0
}
]
]
},
"GetAllVideos": {
"main": [
[
{
"node": "AggregateVideos",
"type": "main",
"index": 0
}
]
]
},
"DownloadMusic": {
"main": [
[
{
"node": "UpdateMusicDetails",
"type": "main",
"index": 0
}
]
]
},
"GenerateVideo": {
"main": [
[
{
"node": "CreateYoutubeLink",
"type": "main",
"index": 0
}
]
]
},
"AggregateMusic": {
"main": [
[
{
"node": "GetQuotes",
"type": "main",
"index": 0
}
]
]
},
"AggregateVideos": {
"main": [
[
{
"node": "GetAllMusic",
"type": "main",
"index": 0
}
]
]
},
"GenrateFileName": {
"main": [
[
{
"node": "DownloadVideoFootage",
"type": "main",
"index": 0
}
]
]
},
"UpdateVideoPost": {
"main": [
[
{
"node": "RemoveFile",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "GetYTmusic",
"type": "main",
"index": 0
}
]
]
},
"CreateYoutubeLink": {
"main": [
[
{
"node": "Read/Write Files from Disk",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger1": {
"main": [
[
{
"node": "GetAllVideos",
"type": "main",
"index": 0
}
]
]
},
"GenrateFileName_01": {
"main": [
[
{
"node": "DownloadMusic",
"type": "main",
"index": 0
}
]
]
},
"DownloadVideoFootage": {
"main": [
[
{
"node": "UpdateVideoFootageDetails",
"type": "main",
"index": 0
}
]
]
},
"GenrateFinalFileName": {
"main": [
[
{
"node": "GenrateTextOverlayForVideo",
"type": "main",
"index": 0
}
]
]
},
"PickMusicVideoRandom": {
"main": [
[
{
"node": "GenrateFinalFileName",
"type": "main",
"index": 0
}
]
]
},
"GenrateTextOverlayForVideo": {
"main": [
[
{
"node": "GenerateVideo",
"type": "main",
"index": 0
}
]
]
},
"Read/Write Files from Disk": {
"main": [
[
{
"node": "UploadVideo",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "GetYTvideo",
"type": "main",
"index": 0
}
]
]
}
}
}
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.
googleSheetsOAuth2ApiyouTubeOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
• Downloads videos/music from YouTube using yt-dlp • Merges assets with dynamic text overlays • Automatically uploads to YouTube as Shorts (9:16 format) • Tracks everything in Google Sheets Install yt-dlp and FFmpeg in your n8n environment Connect Google Sheets (for video/music…
Source: https://n8n.io/workflows/7036/ — 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.
This workflow is perfect for digital content creators, marketers, and social media managers who regularly create engaging short-form videos featuring inspirational or motivational quotes. While the wo
This n8n workflow template automates the entire process of publishing Instagram Reels from content stored in Google Sheets and Google Drive. It's designed for content creators, social media managers,
This workflow automatically mirrors your YouTube to TikTok and Instagram, so you don’t have to manually download and re-upload your content across platforms.
This n8n workflow automates the process of uploading video and image advertisements to Meta Ads Manager via the Meta Graph API (Facebook Ads) directly from Google Sheets and Google Drive. The workflow
This workflow provides an end-to-end automation for discovering, evaluating, and optionally downloading high-quality educational YouTube videos.