Регистрация

Форма для регистрации пользователей. Кнопка «Сгенерировать тестовые данные» создаёт демонстрационные (тестовые) значения — не используйте их для создания реальных аккаунтов в других сервисах.

Подсказка: email генерируется как пример; замените домен на ваш.
Формат: международный (пример: +7...) — используйте реальную верификацию SMS на сервере.
Минимум 8 символов. На проде — хранить хеши на сервере.

Примечание: Для реальной регистрации используйте серверную обработку, защиту от ботов, SMS-верификацию и соответствие правилам сервисов.

 
В связи с большой загруженностью ,
временно не принимаем заказы
приносим извинения за доставленные
неудобства.
Для пред заказа звоните 933-900

Регистрация

Форма для регистрации пользователей. Кнопка «Сгенерировать тестовые данные» создаёт демонстрационные (тестовые) значения — не используйте их для создания реальных аккаунтов в других сервисах.

Подсказка: email генерируется как пример; замените домен на ваш.
Формат: международный (пример: +7...) — используйте реальную верификацию SMS на сервере.
Минимум 8 символов. На проде — хранить хеши на сервере.

Примечание: Для реальной регистрации используйте серверную обработку, защиту от ботов, SMS-верификацию и соответствие правилам сервисов.

{ "id": "AtyhZTTVbhFDWFhM", "meta": { "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44" }, "name": "???? Generate AI Viral Videos with VEO 3 and Upload to TikTok ", "tags": [], "nodes": [ { "id": "958b1b16-4eb0-436a-ac87-b5d529e414bc", "name": "Trigger: Start Daily Content Generation", "type": "n8n-nodes-base.scheduleTrigger", "position": [ -240, 112 ], "parameters": { "rule": { "interval": [ {} ] } }, "typeVersion": 1.2 }, { "id": "3d6bbc87-c411-434a-aa74-7e8e9893acc7", "name": "Tool: Inject Creative Perspective (Idea)", "type": "@n8n/n8n-nodes-langchain.toolThink", "position": [ 240, 384 ], "parameters": {}, "typeVersion": 1 }, { "id": "824f3d5a-c7c2-42b4-ba28-24ba4cbc972b", "name": "Parse AI Output (Idea, Environment, Sound)", "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "position": [ 416, 384 ], "parameters": { "jsonSchemaExample": "[\n {\n \"Caption\": \"Diver Removes Nets Off Whale ???? #whalerescue #marinelife #oceanrescue #seahelpers #love #nature #instagood #explore #viral #savenature #oceanguardians #cleanoceans\",\n \"Idea\": \"Diver carefully cuts tangled net from distressed whale in open sea\",\n \"Environment\": \"Open ocean, sunlight beams through water, diver and whale, cinematic realism\",\n \"Sound\": \"Primary sound description under 15 words\",\n \"Status\": \"for production\"\n }\n]\n" }, "typeVersion": 1.2 }, { "id": "4fc884ca-3611-4148-9f22-e6f6543363d0", "name": "Save Idea & Metadata to Google Sheets", "type": "n8n-nodes-base.googleSheets", "position": [ 592, 112 ], "parameters": { "columns": { "value": { "id": "==ROW()-1", "idea": "={{ $json.output[0].Idea }}", "caption": "={{ $json.output[0].Caption }}", "production": "={{ $json.output[0].Status }}", "sound_prompt": "={{ $json.output[0].Sound }}", "environment_prompt": "={{ $json.output[0].Environment }}" }, "schema": [ { "id": "id", "type": "string", "display": true, "removed": false, "required": false, "displayName": "id", "defaultMatch": true, "canBeUsedToMatch": true }, { "id": "idea", "type": "string", "display": true, "required": false, "displayName": "idea", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "caption", "type": "string", "display": true, "required": false, "displayName": "caption", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "production", "type": "string", "display": true, "required": false, "displayName": "production", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "environment_prompt", "type": "string", "display": true, "required": false, "displayName": "environment_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "sound_prompt", "type": "string", "display": true, "required": false, "displayName": "sound_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "final_output", "type": "string", "display": true, "removed": true, "required": false, "displayName": "final_output", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "id" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "append", "sheetName": { "__rl": true, "mode": "id", "value": "=" }, "documentId": { "__rl": true, "mode": "id", "value": "=" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "51us92xkOlrvArhV", "name": "Google Sheets account" } }, "typeVersion": 4.5 }, { "id": "5017f6ed-03cb-408c-bd47-97008e2d7352", "name": "Generate Creative Video Idea", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ 160, 112 ], "parameters": { "text": "=Generate a creative concept involving:\n\n[[\nA striking BEFORE/AFTER transformation of a single non-human subject (object, environment, or natural phenomenon). The concept must specify:\n- BEFORE state: clear, visually distinct\n- AFTER state: contrasting outcome\n- TRANSITION: one word (e.g., morph, hard cut, timelapse, glitch, wipe, burst)\n- STYLE tags: 2–3 visual adjectives (e.g., cinematic, macro, neon, minimalist)\n- PALETTE: 2–3 color keywords\n- CAMERA: one movement (e.g., slow push-in, top-down, dolly-in)\n- LIGHTING: one descriptor (e.g., soft backlight, moody rim light)\n\nAvoid humans, brands, and clichés (messy→clean room, burger→salad, generic glow-up). Ensure novelty and immediate visual clarity suitable for vertical 9:16.\n\nYour response must follow this exact one-line structure:\n\n\"BEFORE: [short phrase] → AFTER: [short phrase] | TRANSITION: [style] | STYLE: [tag1, tag2] | PALETTE: [color1, color2] | CAMERA: [movement] | LIGHTING: [descriptor]\"\n]]\n\nReflect carefully before answering to ensure originality and visual appeal.\n\nUse the Think tool to review your output\n", "options": { "systemMessage": "=**Role:** \nYou are an AI designed to generate **one original BEFORE/AFTER transformation video concept** optimized for TikTok and the VEO 3 API. Your output must be formatted as a **single-line JSON array** and follow the rules below exactly.\n\n---\n\n### RULES\n\n1. **Number of ideas** \n - Return **only one idea**.\n\n2. **Theme** \n - The user will always provide the theme: “Before/After transformation.” \n - Every idea must clearly show a striking **contrast** between the BEFORE and AFTER states.\n\n3. **Idea** \n - Maximum 15 words. \n - Describe the transformation in a cinematic, visually appealing way.\n\n4. **Caption** \n - Short, punchy, viral-friendly. \n - Include **one emoji**. \n - Exactly **12 hashtags** in this order: \n 1. 4 transformation-relevant hashtags \n 2. 4 all-time most popular hashtags \n 3. 4 currently trending hashtags (based on live research) \n - All in lowercase.\n\n5. **Environment** \n - Maximum 20 words. \n - Must match the action in the Idea exactly. \n - Specify setting (room, landscape, lab…), visual details (lighting, textures, transitions…), and style (cinematic, stylized, timelapse, slow-motion…).\n\n6. **Sound** \n - Maximum 15 words. \n - Describe the sound design (e.g., “beat drop at transition,” “soft rain before, energetic music after”).\n\n7. **Status** \n - Always set to `\"for production\"`.\n\n---\n\n### OUTPUT FORMAT (single-line JSON array)\n\n```json\n[\n {\n \"Caption\": \"Your short viral title with emoji #4_topic_hashtags #4_all_time_popular_hashtags #4_trending_hashtags\",\n \"Idea\": \"Your before/after transformation idea under 15 words\",\n \"Environment\": \"Your vivid setting under 20 words matching the action\",\n \"Sound\": \"Your primary sound description under 15 words\",\n \"Status\": \"for production\"\n }\n]\n" }, "promptType": "define", "hasOutputParser": true }, "typeVersion": 1.9 }, { "id": "d167d2b8-320e-4ea8-9f83-fae9840db585", "name": "LLM: Generate Raw Idea (GPT-5)", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [ 64, 384 ], "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-5-mini", "cachedResultName": "gpt-5-mini" }, "options": {} }, "credentials": { "openAiApi": { "id": "6h3DfVhNPw9I25nO", "name": "OpenAi account" } }, "typeVersion": 1.2 }, { "id": "9c487748-bee0-40b8-b8d4-0deff7294f60", "name": "OpenAI Chat Model", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "position": [ -224, 816 ], "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4.1-mini" }, "options": {} }, "credentials": { "openAiApi": { "id": "6h3DfVhNPw9I25nO", "name": "OpenAi account" } }, "typeVersion": 1.2 }, { "id": "6434e3ed-7f71-467c-9a7c-625feb9024c9", "name": "Think", "type": "@n8n/n8n-nodes-langchain.toolThink", "position": [ -80, 816 ], "parameters": {}, "typeVersion": 1 }, { "id": "854036f1-bca7-4252-be3a-1095526ee614", "name": "Structured Output Parser", "type": "@n8n/n8n-nodes-langchain.outputParserStructured", "position": [ 48, 816 ], "parameters": { "jsonSchemaExample": "{\n \"title\": \"string\",\n \"final_prompt\": \"string\"\n}\n" }, "typeVersion": 1.3 }, { "id": "be8ad1f9-2de7-4c61-810a-fa3ab483835d", "name": "Set Master Prompt", "type": "n8n-nodes-base.set", "position": [ 592, 352 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "cc2e0500-57b1-4615-82cb-1c950e5f2ec4", "name": "json_master", "type": "string", "value": "={\n \"description\": \"Brief narrative description of the scene, focusing on key visual storytelling and product transformation.\",\n \"style\": \"cinematic | photorealistic | stylized | gritty | elegant\",\n \"camera\": {\n \"type\": \"fixed | dolly | Steadicam | crane combo\",\n \"movement\": \"describe any camera moves like slow push-in, pan, orbit\",\n \"lens\": \"optional lens type or focal length for cinematic effect\"\n },\n \"lighting\": {\n \"type\": \"natural | dramatic | high-contrast\",\n \"sources\": \"key lighting sources (sunset, halogen, ambient glow...)\",\n \"FX\": \"optional VFX elements like fog, reflections, flares\"\n },\n \"environment\": {\n \"location\": \"describe location or room (kitchen, desert, basketball court...)\",\n \"set_pieces\": [\n \"list of key background or prop elements\",\n \"e.g. hardwood floors, chain-link fence, velvet surface\"\n ],\n \"mood\": \"describe the ambient atmosphere (moody, clean, epic...)\"\n },\n \"elements\": [\n \"main physical items involved (product box, accessories, vehicles...)\",\n \"include brand visibility (logos, packaging, texture...)\"\n ],\n \"subject\": {\n \"character\": {\n \"description\": \"optional – physical description, outfit\",\n \"pose\": \"optional – position or gesture\",\n \"lip_sync_line\": \"optional – spoken line if there’s a voiceover\"\n },\n \"product\": {\n \"brand\": \"Brand name\",\n \"model\": \"Product model or name\",\n \"action\": \"description of product transformation or assembly\"\n }\n },\n \"motion\": {\n \"type\": \"e.g. transformation, explosion, vortex\",\n \"details\": \"step-by-step visual flow of how elements move or evolve\"\n },\n \"VFX\": {\n \"transformation\": \"optional – describe style (neon trails, motion blur...)\",\n \"impact\": \"optional – e.g. shockwave, glow, distortion\",\n \"particles\": \"optional – embers, sparks, thread strands...\",\n \"environment\": \"optional – VFX affecting the scene (ripples, wind...)\"\n },\n \"audio\": {\n \"music\": \"optional – cinematic score, trap beat, ambient tone\",\n \"sfx\": [\n \"list of sound effects (zip, pop, woosh...)\"\n ],\n \"ambience\": \"optional – background soundscape (traffic, wind...)\",\n \"voiceover\": {\n \"delivery\": \"tone and style (confident, whisper, deep...)\",\n \"line\": \"text spoken if applicable\"\n }\n },\n \"ending\": \"Final shot description – what is seen or felt at the end (freeze frame, logo pulse, glow...)\",\n \"text\": \"none | overlay | tagline | logo pulse at end only\",\n \"format\": \"16:9 | 4k | vertical\",\n \"keywords\": [\n \"brand\",\n \"scene style\",\n \"motion type\",\n \"camera style\",\n \"sound mood\",\n \"target theme\"\n ]\n}\n" }, { "id": "3c6ea609-e426-46d3-8617-2e289a833a64", "name": "model", "type": "string", "value": "veo3_fast" }, { "id": "f15acf81-840c-4e09-9ff3-1647b634875f", "name": "aspectRatio", "type": "string", "value": "9:16" } ] } }, "typeVersion": 3.4 }, { "id": "d823f8e0-f1fe-48d3-bcd8-d312c23c06dc", "name": "AI Agent: Generate Video Script", "type": "@n8n/n8n-nodes-langchain.agent", "position": [ -176, 592 ], "parameters": { "text": "=Create a BEFORE/AFTER transformation video prompt using the provided idea.\n\n**Inputs**\n\n- idea : {{ $('Save Idea & Metadata to Google Sheets').item.json.idea }}\n- environment : {{ $('Save Idea & Metadata to Google Sheets').item.json.environment_prompt }}\n- sound : {{ $('Save Idea & Metadata to Google Sheets').item.json.sound_prompt }}\n\n**Rules**\n- The style must be cinematic, visually striking, and optimized for vertical 9:16 TikTok content.\n- Explicitly include: BEFORE scene, AFTER scene, TRANSITION style, CAMERA movement, LIGHTING, COLOR PALETTE, and MOOD.\n- Default model: `veo3_fast` (unless otherwise specified).\n- Output only **one JSON object** with the keys: `title` and `final_prompt`.\n- Use the Think tool to review your output\n", "options": { "systemMessage": "=\"system_prompt:\n ## SYSTEM PROMPT: Structured Transformation Video Prompt Generator\n A - Ask:\n Generate a structured BEFORE/AFTER transformation video prompt for VEO 3 cinematic generation, strictly based on the master schema provided in: {{ $json.json_master }}.\n The final result must be a JSON object with exactly two top-level keys: `title` and `final_prompt`.\n\n G - Guidance:\n role: Creative Director\n output_count: 1\n character_limit: None\n constraints:\n - The output must be valid JSON.\n - The `title` field should contain a short, descriptive and unique title (max 15 words).\n - The `final_prompt` field must contain a **single-line JSON string** that follows the exact structure of {{ $json.json_master }} with all fields preserved.\n - The `final_prompt` string must clearly describe: BEFORE scene, AFTER scene, TRANSITION, CAMERA, LIGHTING, PALETTE, STYLE, and SOUND.\n - Do not include any explanations, markdown, or extra text — only the JSON object.\n - Escape all inner quotes in the `final_prompt` string so it is valid as a stringified JSON inside another JSON.\n tool_usage:\n - Ensure consistent alignment across all fields (camera, lighting, transition, palette, etc.).\n - Maintain full structure even for optional fields (use \"none\", \"\", or [] as needed).\n\n N - Notation:\n format: JSON\n expected_output:\n {\n \"title\": \"A unique short title for the transformation\",\n \"final_prompt\": \"{...stringified JSON of the full prompt...}\"\n }\n\"\n" }, "promptType": "define", "hasOutputParser": true }, "typeVersion": 2 }, { "id": "ca35eeb6-ad4a-43a4-932d-982ea8c5b34c", "name": "Generate Video with VEO3", "type": "n8n-nodes-base.httpRequest", "position": [ 592, 592 ], "parameters": { "url": "https://api.kie.ai/api/v1/veo/generate", "body": "={\n \"prompt\": {{ $json.prompt }},\n \"model\": \"{{ $('Set Master Prompt').item.json.model }}\",\n \"aspectRatio\": \"{{ $('Set Master Prompt').item.json.aspectRatio }}\"\n}", "method": "POST", "options": {}, "sendBody": true, "contentType": "raw", "authentication": "genericCredentialType", "rawContentType": "application/json", "genericAuthType": "httpHeaderAuth" }, "credentials": { "httpHeaderAuth": { "id": "ho8ZjaYj1SY0icGT", "name": "Kie AI" } }, "typeVersion": 4.2 }, { "id": "58b989a8-21a0-41a3-b6b0-1962720e0440", "name": "Wait for VEO3 Rendering", "type": "n8n-nodes-base.wait", "position": [ 320, 784 ], "webhookId": "f8f1a8a7-0870-4f09-b732-425a8937f229", "parameters": { "unit": "minutes", "amount": 3 }, "typeVersion": 1.1 }, { "id": "e7a619a0-035f-4506-a92e-c501a7e63786", "name": "Download Video from VEO3", "type": "n8n-nodes-base.httpRequest", "position": [ -256, 1024 ], "parameters": { "url": "https://api.kie.ai/api/v1/veo/record-info", "options": {}, "sendQuery": true, "authentication": "genericCredentialType", "genericAuthType": "httpHeaderAuth", "queryParameters": { "parameters": [ { "name": "taskId", "value": "={{ $('Generate Video with VEO3').item.json.data.taskId }}" } ] } }, "credentials": { "httpHeaderAuth": { "id": "ho8ZjaYj1SY0icGT", "name": "Kie AI" } }, "typeVersion": 4.2 }, { "id": "4fdbd573-2ff1-48e5-8a60-0138900ca4ab", "name": "Format Prompt", "type": "n8n-nodes-base.code", "position": [ 320, 592 ], "parameters": { "jsCode": "const structuredPrompt = $input.first().json.output.final_prompt;\nreturn {\n json: {\n prompt: JSON.stringify(structuredPrompt), // this escapes it correctly!\n model: \"veo3_fast\",\n aspectRatio: \"9:16\"\n }\n};\n" }, "typeVersion": 2 }, { "id": "b2090577-e3e8-46e2-861d-5ad595335324", "name": "URL Final Video", "type": "n8n-nodes-base.googleSheets", "position": [ -48, 1024 ], "parameters": { "columns": { "value": { "idea": "={{ $('Save Idea & Metadata to Google Sheets').item.json.idea }}", "production": "done", "final_output": "={{ $json.data.response.resultUrls[0] }}" }, "schema": [ { "id": "id", "type": "string", "display": true, "removed": true, "required": false, "displayName": "id", "defaultMatch": true, "canBeUsedToMatch": true }, { "id": "idea", "type": "string", "display": true, "removed": false, "required": false, "displayName": "idea", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "caption", "type": "string", "display": true, "removed": true, "required": false, "displayName": "caption", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "production", "type": "string", "display": true, "required": false, "displayName": "production", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "environment_prompt", "type": "string", "display": true, "removed": true, "required": false, "displayName": "environment_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "sound_prompt", "type": "string", "display": true, "removed": true, "required": false, "displayName": "sound_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "final_output", "type": "string", "display": true, "required": false, "displayName": "final_output", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "row_number", "type": "number", "display": true, "removed": true, "readOnly": true, "required": false, "displayName": "row_number", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "idea" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "update", "sheetName": { "__rl": true, "mode": "id", "value": "=" }, "documentId": { "__rl": true, "mode": "id", "value": "=" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "51us92xkOlrvArhV", "name": "Google Sheets account" } }, "typeVersion": 4.5 }, { "id": "5133195b-ccd0-4749-a871-26c56c68b019", "name": "Upload Video to BLOTATO", "type": "@blotato/n8n-nodes-blotato.blotato", "position": [ 160, 1024 ], "parameters": { "mediaUrl": "={{ $json.final_output }}", "resource": "media" }, "credentials": { "blotatoApi": { "id": "NtMnRSKAAN5u9lyc", "name": "Blotato account" } }, "typeVersion": 2 }, { "id": "2f892860-6576-4c64-89a7-213162a623c2", "name": "Update Status to \"DONE\"", "type": "n8n-nodes-base.googleSheets", "position": [ 592, 1024 ], "parameters": { "columns": { "value": { "idea": "={{ $('Save Idea & Metadata to Google Sheets').first().json.idea }}", "production": "Publish" }, "schema": [ { "id": "id", "type": "string", "display": true, "removed": true, "required": false, "displayName": "id", "defaultMatch": true, "canBeUsedToMatch": true }, { "id": "idea", "type": "string", "display": true, "removed": false, "required": false, "displayName": "idea", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "caption", "type": "string", "display": true, "removed": true, "required": false, "displayName": "caption", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "production", "type": "string", "display": true, "required": false, "displayName": "production", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "environment_prompt", "type": "string", "display": true, "removed": true, "required": false, "displayName": "environment_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "sound_prompt", "type": "string", "display": true, "removed": true, "required": false, "displayName": "sound_prompt", "defaultMatch": false, "canBeUsedToMatch": true }, { "id": "final_output", "type": "string", "display": true, "removed": true, "required": false, "displayName": "final_output", "defaultMatch": false, "canBeUsedToMatch": true } ], "mappingMode": "defineBelow", "matchingColumns": [ "idea" ], "attemptToConvertTypes": false, "convertFieldsToString": false }, "options": {}, "operation": "appendOrUpdate", "sheetName": { "__rl": true, "mode": "id", "value": "=" }, "documentId": { "__rl": true, "mode": "id", "value": "=" } }, "credentials": { "googleSheetsOAuth2Api": { "id": "51us92xkOlrvArhV", "name": "Google Sheets account" } }, "typeVersion": 4.5 }, { "id": "1825853b-1c3e-479b-acff-4d2804cf10d9", "name": "TikTok", "type": "@blotato/n8n-nodes-blotato.blotato", "position": [ 368, 1024 ], "parameters": { "options": {}, "platform": "tiktok", "accountId": { "__rl": true, "mode": "id", "value": "=" }, "postContentText": "={{ $('Save Idea & Metadata to Google Sheets').first().json.caption }}", "postContentMediaUrls": "={{ $json.url }}", "postCreateTiktokOptionIsAiGenerated": true }, "credentials": { "blotatoApi": { "id": "NtMnRSKAAN5u9lyc", "name": "Blotato account" } }, "typeVersion": 2 }, { "id": "007b1c04-31b3-4b5d-aceb-a5a650908dee", "name": "Sticky Note8", "type": "n8n-nodes-base.stickyNote", "position": [ -864, -80 ], "parameters": { "width": 528, "height": 1328, "content": "## ???? Watch This Tutorial\n\n@[youtube](E-_8KZ_FSeY)\n\n\n### ???? [Open full documentation on Notion](https://automatisation.notion.site/Generate-AI-Viral-Videos-with-VEO-3-and-Upload-to-TikTok-2703d6550fd980aa9ea1dd7867c1cccf?source=copy_link)\n\n---\n### 1. Set Up OpenAI Connection\n#### Get Your API Key\n1. Visit the [OpenAI API Keys](https://platform.openai.com/api-keys) page.\n2. Go to [OpenAI Billing](https://platform.openai.com/settings/organization/billing/overview).\n3. Add funds to your billing account.\n4. Copy your API key into your **OpenAI credentials** in n8n (or your chosen platform).\n\n---\n### 2. Setup\n1. Import this workflow into your n8n instance. \n2. Connect your Google Sheets, Gmail, and Google Calendar credentials. Tutorial: Configure Your Google Sheets, Gmail, Calendar [Credentials](https://youtu.be/fDzVmdw7bNU)\n3. Connect Your Data in Google Sheets. Data must follow this format: [Sample Sheets Data](https://docs.google.com/spreadsheets/d/1pdMs3jWqiYQn3BNdmPhFYhbelQD3jRVtm72ECoCxo0o/copy)\n4. Test the workflow using the **Connected Chat Trigger** node to start conversations with the AI Agent. \n\n---\n### 3. Integrate VEO 3 (Kie) into n8n\n1. Sign up or log in to the **Kie (VEO 3)** dashboard. \n2. Go to **API Keys** → **Create new key** → copy the key (keep it secret). \n3. Base API URL: `https://api.kie.ai/api/v1/veo/generate`.\n\n---\n### 4. Install the Blotato node in n8n (Community Nodes)\n1. In n8n, open **Settings → Community Nodes**.\n2. Click **Install**, then add: `@blotato/n8n-nodes-blotato`. \n3. Log in to **Blotato**.\n4. Go to **Settings → API Keys**.\n5. Go to **Credentials → New**.\n6. Choose **Blotato API** (provided by the community node you installed).\n\n\n---\n## ???? Need Help or Want to Customize This?\n**Contact me for consulting and support:** [LinkedIn](https://www.linkedin.com/in/dr-firas/) / [YouTube](https://www.youtube.com/@DRFIRASS) \n\n" }, "typeVersion": 1 }, { "id": "98797c5f-7a99-4f61-ab61-47772925ed0b", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -336, -80 ], "parameters": { "color": 7, "width": 1152, "height": 1328, "content": "## Generate AI Viral Videos with VEO3 and Upload to TikTok (By Dr. Firas)\n### What problem is this workflow solving? / Use case\nCreating short-form video content that stands out takes time: ideation, scriptwriting, video generation, and publishing. This workflow automates the entire pipeline — from idea generation to TikTok upload — enabling you to scale your content strategy and focus on creativity rather than repetitive tasks.\n" }, "typeVersion": 1 }, { "id": "c13b5356-80d0-4d62-a3e8-a65a32f730f9", "name": "Sticky Note7", "type": "n8n-nodes-base.stickyNote", "position": [ -304, 48 ], "parameters": { "color": 7, "width": 1104, "height": 480, "content": "## | INPUT: Starting Idea Section\n\n" }, "typeVersion": 1 }, { "id": "f7433a4a-89e0-41c7-a0b2-55fcdeeac374", "name": "Sticky Note9", "type": "n8n-nodes-base.stickyNote", "position": [ -304, 960 ], "parameters": { "color": 3, "width": 1104, "height": 256, "content": "## | Step 2 — Publish Video to TikTok\n" }, "typeVersion": 1 }, { "id": "7412d83f-e434-4e72-ae12-fd2d97ba05e6", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ -304, 528 ], "parameters": { "color": 7, "width": 1104, "height": 432, "content": "## | Step 1 — Generate Video with VEO3" }, "typeVersion": 1 } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1" }, "versionId": "b1fa6d8c-9f83-4ae1-8c99-952ef3e97229", "connections": { "Think": { "ai_tool": [ [ { "node": "AI Agent: Generate Video Script", "type": "ai_tool", "index": 0 } ] ] }, "TikTok": { "main": [ [ { "node": "Update Status to \"DONE\"", "type": "main", "index": 0 } ] ] }, "Format Prompt": { "main": [ [ { "node": "Generate Video with VEO3", "type": "main", "index": 0 } ] ] }, "URL Final Video": { "main": [ [ { "node": "Upload Video to BLOTATO", "type": "main", "index": 0 } ] ] }, "OpenAI Chat Model": { "ai_languageModel": [ [ { "node": "AI Agent: Generate Video Script", "type": "ai_languageModel", "index": 0 } ] ] }, "Set Master Prompt": { "main": [ [ { "node": "AI Agent: Generate Video Script", "type": "main", "index": 0 } ] ] }, "Upload Video to BLOTATO": { "main": [ [ { "node": "TikTok", "type": "main", "index": 0 } ] ] }, "Wait for VEO3 Rendering": { "main": [ [ { "node": "Download Video from VEO3", "type": "main", "index": 0 } ] ] }, "Download Video from VEO3": { "main": [ [ { "node": "URL Final Video", "type": "main", "index": 0 } ] ] }, "Generate Video with VEO3": { "main": [ [ { "node": "Wait for VEO3 Rendering", "type": "main", "index": 0 } ] ] }, "Structured Output Parser": { "ai_outputParser": [ [ { "node": "AI Agent: Generate Video Script", "type": "ai_outputParser", "index": 0 } ] ] }, "Generate Creative Video Idea": { "main": [ [ { "node": "Save Idea & Metadata to Google Sheets", "type": "main", "index": 0 } ] ] }, "LLM: Generate Raw Idea (GPT-5)": { "ai_languageModel": [ [ { "node": "Generate Creative Video Idea", "type": "ai_languageModel", "index": 0 } ] ] }, "AI Agent: Generate Video Script": { "main": [ [ { "node": "Format Prompt", "type": "main", "index": 0 } ] ] }, "Save Idea & Metadata to Google Sheets": { "main": [ [ { "node": "Set Master Prompt", "type": "main", "index": 0 } ] ] }, "Trigger: Start Daily Content Generation": { "main": [ [ { "node": "Generate Creative Video Idea", "type": "main", "index": 0 } ] ] }, "Tool: Inject Creative Perspective (Idea)": { "ai_tool": [ [ { "node": "Generate Creative Video Idea", "type": "ai_tool", "index": 0 } ] ] }, "Parse AI Output (Idea, Environment, Sound)": { "ai_outputParser": [ [ { "node": "Generate Creative Video Idea", "type": "ai_outputParser", "index": 0 } ] ] } } }