Generador automático de videos de UGC
Este es unContent Creation, Multimodal AIflujo de automatización del dominio deautomatización que contiene 21 nodos.Utiliza principalmente nodos como If, Code, Wait, Webhook, GoogleDrive. Generación automática de videos de contenido generado por el usuario con Gemini Images y SORA 2
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Credenciales de API de Google Drive
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (21)
Categoría
{
"meta": {
"instanceId": "db30e8ae4100235addbd4638770997b7ef11878d049073c888ba440ca84c55fc",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "7fae5006-335a-4721-a2ea-16dc02ecaedb",
"name": "Webhook",
"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": "Extraer Imagen",
"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": "Obtener Vídeo",
"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": "¿Vídeo Completado?",
"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": "Esperar y Reintentar",
"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": "Añadir a Google Sheets",
"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": "Descargar Archivo de Vídeo",
"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": "Subir archivo",
"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": "Nota Adhesiva",
"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": "Nota Adhesiva1",
"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": "Nota Adhesiva2",
"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": "Nota Adhesiva3",
"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": "Nota Adhesiva4",
"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": "Nota Adhesiva5",
"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": "Nota Adhesiva6",
"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": "Nota Adhesiva7",
"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": "Nota Adhesiva8",
"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": "Nota Adhesiva9",
"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": "Nota Adhesiva10",
"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
}
]
]
},
"7fae5006-335a-4721-a2ea-16dc02ecaedb": {
"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": "8c7878e6-d8fa-42d5-b253-db967e841e94",
"type": "main",
"index": 0
}
]
]
},
"08038d29-b87c-4348-ace9-e0f26326cbb4": {
"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": "08038d29-b87c-4348-ace9-e0f26326cbb4",
"type": "main",
"index": 0
}
]
]
},
"c15d9c80-ac8c-4e82-aa6a-417c9a157fe6": {
"main": [
[
{
"node": "7522e1c7-1765-4419-9656-d2e855986913",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Creación de contenido, IA Multimodal
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Daniel Shashko
@tomaxAI automation specialist and a marketing enthusiast. More than 6 years of experience in SEO/GEO. Senior SEO at Bright Data.
Compartir este flujo de trabajo