This workflow follows the Chainllm → Google Sheets 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 →
{
"name": "Youtube Video Creator",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
-140,
-20
],
"id": "7affe176-6331-4e06-a997-47db72f1f5d9",
"name": "Schedule Trigger"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras",
"mode": "list",
"cachedResultName": "Youtube Content Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit#gid=0"
},
"filtersUI": {
"values": [
{
"lookupColumn": "PRODUCTION STATUS",
"lookupValue": "to create"
}
]
},
"options": {
"returnFirstMatch": true
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
40,
-20
],
"id": "65c045a9-fd25-4b95-a29a-82f9062cfb90",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=Video Title: {{ $json.IDEAS }}\nVideo Description: {{ $json.CAPTIONS }}",
"hasOutputParser": true,
"messages": {
"messageValues": [
{
"message": "=\n\n\n\n1. Generate Content Ideas with ChatGPT\n\nINSTRUCTIONS: Fill in the values inside the square brackets.\n\nMAIN TOPIC:\n[Stoicism as taught through ancient warrior mindsets] \u2190 What\u2019s the main theme or concept of the content?\n\nNUMBER OF IDEAS TO GENERATE:\n[5] \u2190 How many video ideas do you want?\n\nCHANNEL KEYWORDS:\n[Stoicism, Lessons on life, warrior mentality, historical analogies, inner strength] \u2190 Core themes your channel focuses on.\n\nOUTPUT FORMAT: TABLE\nGenerate a table with 8 columns, presented in the exact order listed below:\n\n| id | ideas | channel_style_prompt | character_style_prompt | captions | production status | final output | publishing status | errors |\n\nCOLUMN GUIDELINES:\n\nid: Begin with 1, count up by 1 for each idea.\n\nideas: Short YouTube video title (max 7\u201310 words). Must relate to the main topic and be unique.\n\nchannel_style_prompt: Use the provided keywords to build a phrase with ~5\u201310 descriptive words.\n\ncharacter_style_prompt: Describe a compelling, distinct character that visually matches the idea (e.g., a Spartan in battle, a Zen monk meditating).\n\ncaptions: 2 short lines:\n1st line = what the viewer will learn or experience in the video\n2nd line = emotional or motivational hook\n\nproduction status: Always set to to create\n\nfinal output: Leave this column blank\n\npublishing status: Always set to not published\n\nerrors: Leave this column blank\n\n2. Copy the Google Sheets Template \ud83d\udc49 CLICK HERE \ud83d\udc48\n\n3. Get Access to n8n: https://n8n.io\n\n4. Generating Prompt - Code\n\nVideo Title: {{ $json.IDEAS }}\nVideo Description: {{ $json.CAPTIONS }}\n\n5. Set up a System Message\n\nROLE\nAct as a seasoned prompt engineer with expertise in scripting voiceovers and crafting visual scenes for video storytelling.\n\nPROJECT STRUCTURE\nYou are developing a story-driven video divided into the following phases:\n\nIntro: Scenes 1 to 3\n\nBuild-Up: Scenes 4 to 13\n\nConclusion: Scenes 14 to 17\n\nThe user will give you the video title and description to base your work on.\n\nDELIVERABLE\nProduce a JSON array consisting of 14 objects. Each object should contain two fields:\n\nvoiceText \u2013 a short narrative voiceover, exactly two sentences long, between 11 and 15 words each. It must feel intellectually refined yet easy to follow.\n\nStyle and tone must align with:\n{{ $json.CHANNEL_STYLE_PROMPT }}\n\nIntegrate metaphorical language and analogies, especially using the character described below where suitable.\n\nimage_prompt \u2013 a richly detailed and cinematic visual description.\n\nThis should vividly bring the scene to life and reflect the following character:\n{{ $json.CHARACTER_STYLE_PROMPT }}\n\nESSENTIAL RULE\n- Ensure that every scene transitions logically to the next. The full sequence should feel like a continuous, emotionally cohesive story.\n- Use simple words while creating the content\nIMPORTANT\n\nDo not explain or comment on your work.\n\nDo not use double quotes in the final output.\n\nReturn only the JSON array."
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.6,
"position": [
220,
-20
],
"id": "82eaea54-539c-4a2d-a433-db43360081a3",
"name": "Prompts"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4o",
"mode": "list",
"cachedResultName": "gpt-4o"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
200,
180
],
"id": "6bbfaa94-5131-4868-8a79-5200cef9780b",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsonSchemaExample": "[\n {\n \"voiceText\": \"You're standing at the edge, where hope feels distant. Yet, this is where resilience is born.\",\n \"image_prompt\": \"A lone figure stands on a rainy, dimly lit street corner, water dripping from a grayscale umbrella. Intense close-up of determined eyes under a dark, moody sky.\"\n },\n {\n \"voiceText\": \"The world around may seem dark, but within you lies an unyielding flame.\",\n \"image_prompt\": \"A dimly lit room, shadows playing across walls. Close-up of hands lighting a single candle, casting warm light amidst deep shadows.\"\n },\n {\n \"voiceText\": \"In the silence of despair, your heart whispers the truth of your strength.\",\n \"image_prompt\": \"A solitary figure in an empty cafe, rain streaking windows. Soft focus on their reflective expression, city lights blurred behind.\"\n },\n {\n \"voiceText\": \"Every step feels heavy, yet each one is a testament to your courage.\",\n \"image_prompt\": \"Close-up of worn boots stepping through puddles on a gritty urban street, droplets splashing dramatically in the air.\"\n },\n {\n \"voiceText\": \"You're not alone; every hero has walked this road of trials.\",\n \"image_prompt\": \"A series of black and white photos pinned to a wall, each capturing different faces of diverse people in deep thought.\"\n }\n]\n"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
400,
180
],
"id": "812f1e94-a1eb-4372-bc6d-6e81c3ecc7f4",
"name": "Structured Output Parser"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras",
"mode": "list",
"cachedResultName": "Youtube Content Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": 59149669,
"mode": "list",
"cachedResultName": "Sheet2",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit#gid=59149669"
},
"filtersUI": {
"values": [
{
"lookupColumn": "to use",
"lookupValue": "final"
}
]
},
"options": {
"returnFirstMatch": true
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
640,
-20
],
"id": "eb9ee154-026c-469c-b87a-b8f455efc019",
"name": "Get Music",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"method": "POST",
"url": "https://api.json2video.com/v2/movies",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"template\": \"bUHmblFQsFQQXS5Gw4Qa\",\n \"variables\": {\n \"voiceModel\": \"elevenlabs\",\n \"voiceID\": \"ODq5zmih8GrVes37Dizd\",\n \"imageModel\": \"flux-pro\",\n \"audioURL\": \"{{ $json['audio list'] }}\",\n \"introVideo\": \"{{ $json['intro video'] }}\",\n \"introText\": \"{{ $('Google Sheets').item.json.IDEAS }}\",\n \"clips\": [\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[0].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[0].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[1].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[1].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[2].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[2].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[3].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[3].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[4].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[4].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[5].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[5].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[6].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[6].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[7].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[7].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[9].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[9].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[10].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[10].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[11].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[11].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[12].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[12].image_prompt }}\"\n },\n {\n \"voiceText\": \"{{ $('Prompts').first().json.output[13].voiceText }}\",\n \"image_prompt\": \"{{ $('Prompts').first().json.output[13].image_prompt }}\"\n }\n ]\n }\n}\n",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
840,
-20
],
"id": "b944206d-ec8e-4015-8343-0cf785d8a247",
"name": "HTTP Request",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"amount": 600
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1040,
-20
],
"id": "f0dd72ae-fe4e-4291-94c0-0b0db930e96e",
"name": "Wait"
},
{
"parameters": {
"url": "https://api.json2video.com/v2/movies",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "project",
"value": "={{ $('HTTP Request').item.json.project }}"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1220,
-20
],
"id": "dde7721e-dc5e-4b80-8f8a-2e6f6fb21652",
"name": "HTTP Request1",
"credentials": {
"httpHeaderAuth": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $json.movie.status }}",
"rightValue": "done",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "0ac83858-6c59-4c19-9d71-0b1356e464aa"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "done"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "669bf6ba-a534-4f9a-8050-aeb4d76711bd",
"leftValue": "={{ $json.movie.status }}",
"rightValue": "not published",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "not published"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "15cf642f-faa3-4af8-ba44-63eeb704d06e",
"leftValue": "={{ $json.movie.status }}",
"rightValue": "Error",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "error"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
1460,
-180
],
"id": "5147ac70-7dfc-4b7f-bda5-67c52365e269",
"name": "Switch"
},
{
"parameters": {
"amount": 30
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
1460,
-20
],
"id": "82ff6e87-3141-4e3a-9235-341193f05b7c",
"name": "Wait1"
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras",
"mode": "list",
"cachedResultName": "Youtube Content Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"ID": "={{ $('Google Sheets').first().json.ID }}",
"PRODUCTION STATUS": "error"
},
"matchingColumns": [
"ID"
],
"schema": [
{
"id": "ID",
"displayName": "ID",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "IDEAS",
"displayName": "IDEAS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHANNEL_STYLE_PROMPT",
"displayName": "CHANNEL_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHARACTER_STYLE_PROMPT",
"displayName": "CHARACTER_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CAPTIONS",
"displayName": "CAPTIONS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PRODUCTION STATUS",
"displayName": "PRODUCTION STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "FINAL OUTPUT",
"displayName": "FINAL OUTPUT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PUBLISHING STATUS",
"displayName": "PUBLISHING STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "ERRORS",
"displayName": "ERRORS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
1460,
140
],
"id": "09db03a3-3380-4727-9941-795fdf71aa8d",
"name": "Error log",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"url": "={{ $json['FINAL OUTPUT'] }}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1940,
-20
],
"id": "b9f991e7-2877-49ce-babf-2c9191e20783",
"name": "HTTP Request2"
},
{
"parameters": {
"resource": "video",
"operation": "upload",
"title": "={{ $('Google Sheets').item.json.IDEAS }}",
"regionCode": "PL",
"categoryId": "24",
"options": {
"description": "={{ $('Google Sheets').item.json.CAPTIONS }}"
}
},
"type": "n8n-nodes-base.youTube",
"typeVersion": 1,
"position": [
2140,
-20
],
"id": "a380e4ce-eea9-4ebd-9564-768eafaa8e13",
"name": "YouTube",
"credentials": {
"youTubeOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras",
"mode": "list",
"cachedResultName": "Youtube Content Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"ID": "={{ $('Google Sheets').first().json.ID }}",
"PRODUCTION STATUS": "created",
"FINAL OUTPUT": "={{ $json.movie.url }}"
},
"matchingColumns": [
"ID"
],
"schema": [
{
"id": "ID",
"displayName": "ID",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "IDEAS",
"displayName": "IDEAS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHANNEL_STYLE_PROMPT",
"displayName": "CHANNEL_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHARACTER_STYLE_PROMPT",
"displayName": "CHARACTER_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CAPTIONS",
"displayName": "CAPTIONS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PRODUCTION STATUS",
"displayName": "PRODUCTION STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "FINAL OUTPUT",
"displayName": "FINAL OUTPUT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PUBLISHING STATUS",
"displayName": "PUBLISHING STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "ERRORS",
"displayName": "ERRORS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
1740,
-20
],
"id": "8a287fc9-1d82-4074-a0ef-c9fc392faec6",
"name": "Get Video",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# Video Idea & Prompts",
"height": 480,
"width": 740,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-180,
-160
],
"id": "b1424e62-3aa8-457c-bdd4-9828e8114374",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Take Intro Video & Muisc",
"height": 700,
"width": 170,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
600,
-280
],
"id": "7f7631f0-72ad-4b97-b6d4-5089f60b07b3",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "# Generate a Video",
"height": 480,
"width": 560
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
800,
-160
],
"id": "3ca12511-1d7a-4811-8af7-d34a4cad55bb",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## Errors",
"height": 700,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1400,
-280
],
"id": "7c805aed-56fc-4e40-8251-81fe127925fb",
"name": "Sticky Note3"
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras",
"mode": "list",
"cachedResultName": "Youtube Content Ideas",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1BHe706Ul6r4Mp-ZRAoDZXm2KybIzu3lZw8-I5dJsras/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"ID": "={{ $('Google Sheets').first().json.ID }}",
"FINAL OUTPUT": "=",
"PUBLISHING STATUS": "published"
},
"matchingColumns": [
"ID"
],
"schema": [
{
"id": "ID",
"displayName": "ID",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "IDEAS",
"displayName": "IDEAS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHANNEL_STYLE_PROMPT",
"displayName": "CHANNEL_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CHARACTER_STYLE_PROMPT",
"displayName": "CHARACTER_STYLE_PROMPT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "CAPTIONS",
"displayName": "CAPTIONS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PRODUCTION STATUS",
"displayName": "PRODUCTION STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "FINAL OUTPUT",
"displayName": "FINAL OUTPUT",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "PUBLISHING STATUS",
"displayName": "PUBLISHING STATUS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "ERRORS",
"displayName": "ERRORS",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "row_number",
"displayName": "row_number",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"readOnly": true,
"removed": true
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
2340,
-20
],
"id": "5c2380eb-ece0-4966-bb28-7cf82b6d0e87",
"name": "Done",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "# Publish Created Video",
"height": 480,
"width": 840
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1680,
-160
],
"id": "76ed9711-3ade-4046-baf7-bab53635467c",
"name": "Sticky Note4"
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Google Sheets": {
"main": [
[
{
"node": "Prompts",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Prompts",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Prompts",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Prompts": {
"main": [
[
{
"node": "Get Music",
"type": "main",
"index": 0
}
]
]
},
"Get Music": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request1": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Get Video",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
],
[
{
"node": "Error log",
"type": "main",
"index": 0
}
]
]
},
"Wait1": {
"main": [
[
{
"node": "HTTP Request1",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request2": {
"main": [
[
{
"node": "YouTube",
"type": "main",
"index": 0
}
]
]
},
"YouTube": {
"main": [
[
{
"node": "Done",
"type": "main",
"index": 0
}
]
]
},
"Get Video": {
"main": [
[
{
"node": "HTTP Request2",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "c4b07d28-6144-430e-8281-b7d22507a413",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "L04tdAm9fOxQTySi",
"tags": []
}
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.
googleSheetsOAuth2ApihttpHeaderAuthopenAiApiyouTubeOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow automates the creation and uploading of YouTube videos, saving creators hours of manual scripting, editing, and posting by generating content from spreadsheet data. It's ideal for content creators, marketers, or educators who produce regular videos on topics like tutorials or reviews, leveraging Google Sheets for source material and OpenAI for intelligent script generation. The key step involves chaining prompts through an AI model to craft engaging video scripts, which are then paired with music and uploaded directly to YouTube via HTTP requests.
Use this workflow for scheduled, batch video production where content ideas are organised in spreadsheets, such as weekly educational series. Avoid it for one-off videos requiring custom visuals or live editing, as it focuses on automated scripting and basic uploads. Common variations include adding image generation nodes for thumbnails or integrating with stock video APIs for enhanced media assembly.
About this workflow
Youtube Video Creator. Uses googleSheets, chainLlm, lmChatOpenAi, outputParserStructured. Scheduled trigger; 21 nodes.
Source: https://github.com/Khuzaima-AI-2112/n8n-automation-templates/blob/master/02_Visuals-&-Social-Media/03_Creating-viral-videos-on-youtube/Viral_Youtube_Video_Creator.json — 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.
What It Does
Automate your cross-platform publishing workflow by automatically uploading Instagram videos to YouTube with AI-optimized titles and tags. 🚀🎬 This workflow runs every six hours, fetches newly posted I
This template is ideal for creators, content marketers, social media managers, and AI enthusiasts who want to automate the production of short-form, visually captivating videos for platforms like TikT
This n8n workflow is a fully automated pipeline that takes a creative concept and transforms it into a polished, platform-ready short-form video. It ideates, generates video and audio using AI, merges
Wait Schedule. Uses scheduleTrigger, googleSheets, chainLlm, lmChatGoogleGemini. Scheduled trigger; 26 nodes.