Automatischer UGC-Video-Generator
Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 21 Nodes. Hauptsächlich werden If, Code, Wait, Webhook, GoogleDrive und andere Nodes verwendet. Automatisierte Erstellung von nutzergenerierten Videoinhalten mit Gemini Images und SORA 2
- •HTTP Webhook-Endpunkt (wird von n8n automatisch generiert)
- •Google Drive API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
Verwendete Nodes (21)
Kategorie
{
"meta": {
"instanceId": "db30e8ae4100235addbd4638770997b7ef11878d049073c888ba440ca84c55fc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7fae5006-335a-4721-a2ea-16dc02ecaedb",
"name": "Webhook-Trigger",
"type": "n8n-nodes-base.webhook",
"position": [
-1120,
96
],
"webhookId": "YOUR_WEBHOOK_ID",
"parameters": {
"path": "create-ugc-video",
"options": {},
"httpMethod": "POST",
"responseMode": "lastNode"
},
"typeVersion": 2
},
{
"id": "de4fb004-b472-48c0-85f4-dd6b47962a0c",
"name": "Nano Banana",
"type": "n8n-nodes-base.httpRequest",
"position": [
-896,
96
],
"parameters": {
"url": "=https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent?key={{ $json.body.geminiApiKey }}",
"method": "POST",
"options": {},
"jsonBody": "={\n \"contents\": [{\n \"parts\": [{\n \"text\": \"{{ $json.body.productPrompt }}\"\n }]\n }]\n}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "977bca7d-e89f-4f80-9c9e-4fce547bd6dc",
"name": "Extract Image",
"type": "n8n-nodes-base.code",
"position": [
-688,
96
],
"parameters": {
"jsCode": "// Extract image from Nano Banana response\nconst data = $input.first().json;\nconst imageData = data.candidates[0].content.parts.find(p => p.inlineData);\n\nreturn {\n imageBase64: imageData.inlineData.data,\n productPrompt: $('Webhook').first().json.body.productPrompt,\n videoPrompt: $('Webhook').first().json.body.videoPrompt,\n openaiApiKey: $('Webhook').first().json.body.openaiApiKey\n};"
},
"typeVersion": 2
},
{
"id": "dac9378f-8080-435e-9574-296d4632c799",
"name": "SORA 2",
"type": "n8n-nodes-base.httpRequest",
"position": [
-464,
96
],
"parameters": {
"url": "https://api.openai.com/v1/videos",
"method": "POST",
"options": {},
"jsonBody": "={\n \"model\": \"sora-2\",\n \"prompt\": \"{{ $json.videoPrompt }}\",\n \"size\": \"720x1280\",\n \"seconds\": \"8\"\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $json.openaiApiKey }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "61cda299-28ee-4e74-aac7-60aa52099dd1",
"name": "Get Video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-192,
96
],
"parameters": {
"url": "=https://api.openai.com/v1/videos/{{ $('SORA 2').item.json.id }}",
"options": {},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $('Extract Image').item.json.openaiApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "281e0b7f-d9ed-438e-a6fd-e144feeb8642",
"name": "Video Complete?",
"type": "n8n-nodes-base.if",
"position": [
208,
96
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.status }}",
"value2": "completed"
}
]
}
},
"typeVersion": 1
},
{
"id": "08038d29-b87c-4348-ace9-e0f26326cbb4",
"name": "Warten & Retry",
"type": "n8n-nodes-base.wait",
"position": [
-16,
272
],
"webhookId": "YOUR_WAIT_WEBHOOK_ID",
"parameters": {
"unit": "minutes",
"amount": 1
},
"typeVersion": 1.1
},
{
"id": "8c7878e6-d8fa-42d5-b253-db967e841e94",
"name": "Add to Google Tabellen",
"type": "n8n-nodes-base.googleSheets",
"position": [
848,
0
],
"parameters": {
"columns": {
"value": {
"Status": "={{ $json.status }}",
"Created": "={{ new Date().toISOString() }}",
"Product": "={{ $('Extract Image').item.json.productPrompt }}",
"Video URL": "=={{ $('Upload file').item.json.webViewLink }}"
},
"schema": [
{
"id": "Product",
"type": "string",
"display": true,
"required": false,
"displayName": "Product",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Video URL",
"type": "string",
"display": true,
"required": false,
"displayName": "Video URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Created",
"type": "string",
"display": true,
"required": false,
"displayName": "Created",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "YOUR_SHEET_URL",
"cachedResultName": "All Videos"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "YOUR_GOOGLE_SHEET_ID"
}
},
"typeVersion": 4.4
},
{
"id": "c15d9c80-ac8c-4e82-aa6a-417c9a157fe6",
"name": "Download Video File",
"type": "n8n-nodes-base.httpRequest",
"position": [
416,
0
],
"parameters": {
"url": "=https://api.openai.com/v1/videos/{{ $json.id }}/content",
"options": {
"response": {
"response": {
"responseFormat": "file"
}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $('Webhook').first().json.body.openaiApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7522e1c7-1765-4419-9656-d2e855986913",
"name": "Upload file",
"type": "n8n-nodes-base.googleDrive",
"position": [
624,
0
],
"parameters": {
"name": "=={{ $json.id }}.mp4",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "o6YjNioFDdE0IV8W",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "96429180-f0a6-469b-a32b-67aa1ae49392",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
-64
],
"parameters": {
"width": 416,
"height": 448,
"content": "# UGC Video Generator Workflow\n\nGenerates product videos using Gemini (image) + SORA 2 (video). Accepts webhook with product/video prompts and API keys, polls for completion, stores in Google Drive, and logs to Google Sheets.\n\n**Required connectors:**\n- Google Sheets OAuth\n- Google Drive OAuth\n\n**Required API keys** (passed via webhook):\n- Gemini API key\n- OpenAI API key\n\n---\nCreated by [Daniel Shashko](https://www.linkedin.com/in/daniel-shashko/)"
},
"typeVersion": 1
},
{
"id": "621ad50b-835a-4afe-808f-dc8e2a904111",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1152,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Receives POST request with prompts and API keys\n"
},
"typeVersion": 1
},
{
"id": "d28bf28b-13aa-4f85-9176-b3a2f2308ee9",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Generates product image using Gemini AI from prompt"
},
"typeVersion": 1
},
{
"id": "44258498-fac6-4fa4-96e4-f0ff518e9cf0",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-720,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Extracts base64 image data from Gemini API response\n"
},
"typeVersion": 1
},
{
"id": "5a2c6614-795e-495f-bb49-7152d7e9fb50",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Creates video from prompt using OpenAI SORA model\n"
},
"typeVersion": 1
},
{
"id": "e4e9b154-31cc-4118-8d76-fa3540c22aea",
"name": "Haftnotiz5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-224,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Checks SORA video generation status via API call\n"
},
"typeVersion": 1
},
{
"id": "cbd4ada0-1dbb-41a5-97de-ab2852585cca",
"name": "Haftnotiz6",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-32
],
"parameters": {
"width": 176,
"height": 96,
"content": "Determines if video rendering is finished or pending\n"
},
"typeVersion": 1
},
{
"id": "86042fc7-7f4b-4306-86fb-4218bde7d5bb",
"name": "Haftnotiz7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-208,
336
],
"parameters": {
"width": 176,
"height": 96,
"content": "Pauses 1 minute then checks video status again"
},
"typeVersion": 1
},
{
"id": "bc3c7746-3ebb-424f-aeb4-c78c341e81e6",
"name": "Haftnotiz8",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-128
],
"parameters": {
"width": 176,
"height": 96,
"content": "Downloads completed video file from OpenAI API endpoint"
},
"typeVersion": 1
},
{
"id": "7a315df7-736c-4cf4-98b3-8a2a417173d6",
"name": "Haftnotiz9",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-128
],
"parameters": {
"width": 176,
"height": 96,
"content": "Saves video to Google Drive as MP4 file\n"
},
"typeVersion": 1
},
{
"id": "2572eb1d-b20b-4fec-804e-d93e731b8e84",
"name": "Haftnotiz10",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
-128
],
"parameters": {
"width": 176,
"height": 96,
"content": "Logs video details: product, URL, status, timestamp"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"dac9378f-8080-435e-9574-296d4632c799": {
"main": [
[
{
"node": "61cda299-28ee-4e74-aac7-60aa52099dd1",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "de4fb004-b472-48c0-85f4-dd6b47962a0c",
"type": "main",
"index": 0
}
]
]
},
"61cda299-28ee-4e74-aac7-60aa52099dd1": {
"main": [
[
{
"node": "281e0b7f-d9ed-438e-a6fd-e144feeb8642",
"type": "main",
"index": 0
}
]
]
},
"de4fb004-b472-48c0-85f4-dd6b47962a0c": {
"main": [
[
{
"node": "977bca7d-e89f-4f80-9c9e-4fce547bd6dc",
"type": "main",
"index": 0
}
]
]
},
"7522e1c7-1765-4419-9656-d2e855986913": {
"main": [
[
{
"node": "Add to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Wait & Retry": {
"main": [
[
{
"node": "61cda299-28ee-4e74-aac7-60aa52099dd1",
"type": "main",
"index": 0
}
]
]
},
"977bca7d-e89f-4f80-9c9e-4fce547bd6dc": {
"main": [
[
{
"node": "dac9378f-8080-435e-9574-296d4632c799",
"type": "main",
"index": 0
}
]
]
},
"281e0b7f-d9ed-438e-a6fd-e144feeb8642": {
"main": [
[
{
"node": "c15d9c80-ac8c-4e82-aa6a-417c9a157fe6",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait & Retry",
"type": "main",
"index": 0
}
]
]
},
"c15d9c80-ac8c-4e82-aa6a-417c9a157fe6": {
"main": [
[
{
"node": "7522e1c7-1765-4419-9656-d2e855986913",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Content-Erstellung, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Daniel Shashko
@tomaxAI automation specialist and a marketing enthusiast. More than 6 years of experience in SEO/GEO. Senior SEO at Bright Data.
Diesen Workflow teilen