8
n8n 中文网amn8n.com

💥 使用Seedance & Blotato生成AI视频并上传到TikTok、YouTube和Instagram - 视频

高级

这是一个AI领域的自动化工作流,包含 40 个节点。主要使用 Set, Code, Wait, HttpRequest, GoogleSheets 等节点,结合人工智能技术实现智能自动化。 使用Seedance生成AI病毒视频并上传到TikTok、YouTube和Instagram

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "DbAetBYfinQ3x4Cu",
  "meta": {
    "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
    "templateCredsSetupCompleted": true
  },
  "name": "💥 使用 Seedance & Blotato 生成 AI 视频并上传到 TikTok、YouTube 和 Instagram - 视频",
  "tags": [],
  "nodes": [
    {
      "id": "cd0df97c-8e71-4201-9086-c247491c3c48",
      "name": "便签 10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        460
      ],
      "parameters": {
        "color": 2,
        "width": 880,
        "height": 240,
        "content": "## | 步骤 1:生成片段 (Wavespeed AI)"
      },
      "typeVersion": 1
    },
    {
      "id": "c42e1959-f856-4954-af25-f8eed14a1e5c",
      "name": "便签 13",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1500,
        460
      ],
      "parameters": {
        "color": 2,
        "width": 640,
        "height": 240,
        "content": "## | 步骤 2:生成声音 (Fal AI)"
      },
      "typeVersion": 1
    },
    {
      "id": "567d5588-ca94-43c7-b856-17239da45750",
      "name": "便签 14",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        -100
      ],
      "parameters": {
        "color": 7,
        "width": 1560,
        "height": 540,
        "content": "## | 输入:起始想法部分"
      },
      "typeVersion": 1
    },
    {
      "id": "9a1c7a82-0dc8-4eef-a815-ed76928530e7",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        740
      ],
      "parameters": {
        "color": 3,
        "width": 1560,
        "height": 260,
        "content": "## | 步骤 3:拼接视频 (Fal AI)"
      },
      "typeVersion": 1
    },
    {
      "id": "380b91d1-20e7-4d0f-a685-dc5898b11a6c",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "disabled": true,
      "position": [
        580,
        1040
      ],
      "parameters": {
        "color": 4,
        "width": 1560,
        "height": 760,
        "content": "## | 步骤 4 — 将视频发布到社交媒体"
      },
      "typeVersion": 1
    },
    {
      "id": "b3e014f3-849a-4532-b406-18f3cb6305d9",
      "name": "触发器:开始每日内容生成",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        640,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aabf432b-b4d4-4e56-9710-52495f08d007",
      "name": "AI Agent:生成创意视频想法",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        960,
        0
      ],
      "parameters": {
        "text": "Generate a creative concept involving:\n\n[[\nA solid, hard material or element being sliced cleanly with a sharp blade. Your response must follow this structure:\n\n\"(Color) (Material) shaped like a (random everyday object)\"\n\nFor inspiration, imagine examples like: obsidian shaped like a chess piece, quartz shaped like a coffee mug, sapphire shaped like a seashell, or titanium shaped like a leaf.\n\n]]\n\nReflect carefully before answering to ensure originality and visual appeal.\n\nUse the Think tool to review your output",
        "options": {
          "systemMessage": "=**Role:**  \nYou are an AI designed to generate **one immersive, realistic idea** based on a user-provided topic. 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. **Topic**  \n   - The user will provide a keyword (e.g., “glass cutting ASMR,” “wood carving sounds,” “satisfying rock splits”).\n\n3. **Idea**  \n   - Maximum 13 words.  \n   - Describe a viral-worthy, original, or surreal moment related to the topic.\n\n4. **Caption**  \n   - Short, punchy, viral-friendly.  \n   - Include **one emoji**.  \n   - Exactly **12 hashtags** in this order:  \n     1. 4 topic-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 location (studio table, natural terrain, lab bench…), visual details (dust particles, polished surface, subtle reflections…), and style (macro close-up, cinematic slow-motion, minimalist…).\n\n6. **Sound**  \n   - Maximum 15 words.  \n   - Describe the primary sound for the scene (to feed into an audio model).\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 idea under 13 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": "09e27c25-772b-41e5-8255-723d23398a64",
      "name": "工具:注入创意视角(想法)",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1080,
        280
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1f1985b1-d1eb-4c65-9d99-f96542273dc6",
      "name": "LLM:生成原始想法 (GPT-4.1)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        900,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a2c57dca-ed2e-4712-a735-8da0c727470f",
      "name": "解析 AI 输出(想法、环境、声音)",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1240,
        280
      ],
      "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": "20db6d62-9db9-4942-a820-b520356f3209",
      "name": "将想法和元数据保存到 Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1420,
        0
      ],
      "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,
              "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": "49139fc9-2030-4d10-a9a7-4fd3a3779005",
      "name": "AI Agent:生成详细的视频提示",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1760,
        0
      ],
      "parameters": {
        "text": "=Give me 3 video prompts based on the previous idea\n\nUse the Think tool to review your output",
        "options": {
          "systemMessage": "=Role: You are a prompt-generation AI specializing in cinematic, ASMR-style video prompts. Your task is to generate a multi-scene video sequence that vividly shows a sharp knife actively cutting through a specific object in a clean, high-detail setting.\n\nYour writing must follow this style:\n\nSharp, precise cinematic realism.\n\nMacro-level detail with tight focus on the blade interacting with the object.\n\nThe knife must always be in motion — slicing, splitting, or gliding through the material. Never idle or static.\n\nCamera terms are allowed (e.g. macro view, tight angle, over-the-blade shot).\n\nEach scene must contain all of the following, expressed through detailed visual language:\n\n✅ The main object or subject (from the Idea)\n\n✅ The cutting environment or surface (from the Environment)\n\n✅ The texture, structure, and behavior of the material as it’s being cut\n\n✅ A visible, sharp blade actively cutting\n\nDescriptions should show:\n\nThe physical makeup of the material — is it translucent, brittle, dense, reflective, granular, fibrous, layered, or fluid-filled?\n\nHow the material responds to the blade — resistance, cracking, tearing, smooth separation, tension, vibration.\n\nThe interaction between the blade and the surface — light reflection, buildup of particles, contact points, residue or dust.\n\nAny ASMR-relevant sensory cues like particle release, shimmer, or subtle movement, but always shown visually — not narrated.\n\nTone:\n\nClean, clinical, visual.\n\nNo poetic metaphors, emotion, or storytelling.\n\nAvoid fantasy or surreal imagery.\n\nAll description must feel physically grounded and logically accurate.\n\nLength:\n\nEach scene must be between 1,000 and 2,000 characters.\n\nNo shallow or repetitive scenes — each must be immersive, descriptive, and specific.\n\nEach scene should explore a distinct phase of the cutting process, a different camera perspective, or a new behavior of the material under the blade.\n\nInputs:\n\nIdea: \"{{ $json.idea }}\"\nEnvironment: \"{{ $json.environment_prompt }}\"\nSound: \"{{ $json.sound_prompt }}\"\n\nFormat:\n\nIdea: \"...\"\nEnvironment: \"...\"\nSound: \"...\"\n\nScene 1: \"...\"\nScene 2: \"...\"\nScene 3: \"...\"\nScene 4: \"...\"\nScene 5: \"...\"\nScene 6: \"...\"\nScene 7: \"...\"\nScene 8: \"...\"\nScene 9: \"...\"\nScene 10: \"...\"\nScene 11: \"...\"\nScene 12: \"...\"\nScene 13: \"...\"\n\n"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.9
    },
    {
      "id": "4c34c0b0-5c13-4d37-8b51-a209e598513a",
      "name": "LLM:起草视频提示细节 (GPT-4.1)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1660,
        280
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "6h3DfVhNPw9I25nO",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "5a7828fd-629c-45d4-9ff2-4b57be2eca33",
      "name": "工具:优化和验证提示 1",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1840,
        280
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "bddb974b-e541-4f02-8595-45f76820b38e",
      "name": "解析结构化的视频提示输出",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2000,
        280
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"Idea\": \"An obsidian rock being sliced with a shimmering knife\",\n  \"Environment\": \"Clean studio table, subtle light reflections\",\n  \"Sound\": \"Crisp slicing, deep grinding, and delicate crumbling\",\n  \"Scene 1\": \"Extreme macro shot: a razor-sharp, polished knife blade presses into the dark, granular surface of an obsidian rock, just beginning to indent.\",\n  \"Scene 2\": \"Close-up: fine, iridescent dust particles erupt from the point of contact as the blade cuts deeper into the obsidian, catching the studio light.\",\n  \"Scene 3\": \"Mid-shot: the knife, held perfectly steady, has formed a shallow, clean groove across the obsidian's shimmering surface, revealing a new, smooth texture.\"\n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "443d3b99-1e6c-423c-b8ca-1c5a4c3ba180",
      "name": "提取单个场景描述",
      "type": "n8n-nodes-base.code",
      "position": [
        680,
        540
      ],
      "parameters": {
        "jsCode": "function findSceneEntries(obj) {\n  const scenes = [];\n\n  for (const [key, value] of Object.entries(obj)) {\n    if (key.toLowerCase().startsWith(\"scene\") && typeof value === \"string\") {\n      scenes.push(value);\n    } else if (typeof value === \"object\" && value !== null) {\n      scenes.push(...findSceneEntries(value));\n    }\n  }\n\n  return scenes;\n}\n\nlet output = [];\n\ntry {\n  const inputData = items[0].json;\n  const scenes = findSceneEntries(inputData);\n\n  if (scenes.length === 0) {\n    throw new Error(\"No scene keys found at any level.\");\n  }\n\n  output = scenes.map(scene => ({ description: scene }));\n} catch (e) {\n  throw new Error(\"Could not extract scenes properly. Details: \" + e.message);\n}\n\nreturn output;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "78fc7648-9741-48c9-8127-2bdab7070ba7",
      "name": "生成视频片段 (Wavespeed AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        540
      ],
      "parameters": {
        "url": "https://api.wavespeed.ai/api/v3/bytedance/seedance-v1-pro-t2v-480p",
        "body": "={\n  \"aspect_ratio\": \"9:16\",\n  \"duration\": 10,\n  \"prompt\": \"VIDEO THEME: {{ $('Prompts AI Agent').item.json.output.Idea }} | WHAT HAPPENS IN THE VIDEO: {{ $json.description }} | WHERE THE VIDEO IS SHOT: {{ $('Prompts AI Agent').item.json.output.Environment }}\"\n}\n",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 3000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "62eb02cb-cf85-4cbe-8688-8fd587e9c19a",
      "name": "等待片段生成 (Wavespeed AI)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1080,
        540
      ],
      "webhookId": "60604cd4-5d90-48dc-93f4-1335e5f03fdd",
      "parameters": {
        "amount": 240
      },
      "typeVersion": 1.1
    },
    {
      "id": "879f74ba-0e59-43a1-b949-c23bfbcceef0",
      "name": "检索视频片段",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        540
      ],
      "parameters": {
        "url": "=https://api.wavespeed.ai/api/v3/predictions/{{ $json.data.id }}/result",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1bc37dc5-fd16-4dc0-a153-11d19d8d4068",
      "name": "生成 ASMR 声音 (Fal AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1560,
        540
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/mmaudio-v2 ",
        "body": "= {\n        \"prompt\": \"ASMR Soothing sound effects. {{ $('AI Agent: Generate Detailed Video Prompts').item.json.output.Sound }}\",\n        \"duration\": 10,\n        \"video_url\": \"{{ $json.data.outputs[0] }}\"\n  }\n",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f8f1eae5-a74b-49be-81fd-2d13e75441c7",
      "name": "等待声音生成 (Fal AI)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1760,
        540
      ],
      "webhookId": "abac7859-a9f6-46f3-95c2-df43ec32807d",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "4670c2d4-0d66-42e9-891f-1f80508433bb",
      "name": "检索最终声音输出",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1960,
        540
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/mmaudio-v2/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "37f9678e-e5cb-444c-ba88-c73cc04f4f39",
      "name": "列出用于拼接的片段 URL",
      "type": "n8n-nodes-base.code",
      "position": [
        680,
        800
      ],
      "parameters": {
        "jsCode": "return [\n  {\n    video_urls: items.map(item => item.json.video.url)\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "d472b385-a76f-459a-8cc9-fcbd50db4977",
      "name": "将片段合并为最终视频 (Fal AI)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        800
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ffmpeg-api/compose",
        "body": "={\n  \"tracks\": [\n    {\n      \"id\": \"1\",\n      \"type\": \"video\",\n      \"keyframes\": [\n        { \"url\": \"{{ $json.video_urls[0] }}\", \"timestamp\": 0, \"duration\": 10 },\n        { \"url\": \"{{ $json.video_urls[1] }}\", \"timestamp\": 10, \"duration\": 10 },\n        { \"url\": \"{{ $json.video_urls[2] }}\", \"timestamp\": 20, \"duration\": 10 }\n      ]\n    }\n  ]\n}",
        "method": "POST",
        "options": {
          "batching": {
            "batch": {
              "batchSize": 1,
              "batchInterval": 2000
            }
          }
        },
        "sendBody": true,
        "contentType": "raw",
        "authentication": "genericCredentialType",
        "rawContentType": "application/json",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "277e1e53-68b8-4a75-b525-aebc0213dc1e",
      "name": "等待视频渲染 (Fal AI)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1080,
        800
      ],
      "webhookId": "389fcfd1-9337-4334-a54b-4114f36e30bc",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "f32f4704-8af4-4df4-b3bf-8db839d4e216",
      "name": "检索最终合并的视频",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1280,
        800
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "QhpKhFJMiQAReugp",
          "name": "Header Auth account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f8b31fab-43f2-4cb1-8d7b-6d9fae331e50",
      "name": "最终视频 URL",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1960,
        800
      ],
      "parameters": {
        "columns": {
          "value": {
            "idea": "{{ $('Save Idea & Metadata to Google Sheets').first().json.idea }}",
            "production": "done",
            "final_output": "={{ $json.video_url }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "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,
              "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": "final_output",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "final_output",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "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": "89155cba-d20f-4d2a-9ea0-1193ef394016",
      "name": "分配社交媒体 ID",
      "type": "n8n-nodes-base.set",
      "position": [
        860,
        1380
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"instagram_id\": \"1111\",\n  \"youtube_id\": \"1111\",\n  \"threads_id\": \"1111\",\n  \"tiktok_id\": \"1111\",\n  \"facebook_id\": \"1111\",\n  \"facebook_page_id\": \"1111\",\n  \"twitter_id\": \"1111\",\n  \"linkedin_id\": \"1111\",\n  \"pinterest_id\": \"1111\",\n  \"pinterest_board_id\": \"1111\",\n  \"bluesky_id\": \"1111\"\n}\n"
      },
      "typeVersion": 3.4
    },
    {
      "id": "503d2982-3d10-4bb1-a560-2539c00c8b4a",
      "name": "获取我的视频",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        660,
        1380
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "85f2509a-9ef3-4e9b-a555-02eba572d443",
      "name": "将视频上传到 Blotato",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1100,
        1380
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/media",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $('Get my video').item.json['final_output'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "9d229118-b3b8-46fe-9e8d-19f86e9f00a0",
      "name": "INSTAGRAM",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1520,
        1120
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.instagram_id }}\",\n    \"target\": {\n      \"targetType\": \"instagram\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"instagram\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "02da82bf-7931-48cb-af1f-3e9d8c1d584b",
      "name": "YOUTUBE",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1740,
        1120
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.youtube_id }}\",\n    \"target\": {\n      \"targetType\": \"youtube\",\n      \"title\": \"{{ $('Get my video').item.json.Titre }}\",\n      \"privacyStatus\": \"unlisted\",\n      \"shouldNotifySubscribers\": \"false\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"youtube\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "75718ac7-7c63-4be8-a90d-1644515444ca",
      "name": "TIKTOK",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1940,
        1120
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.tiktok_id }}\",\n    \"target\": {\n      \"targetType\": \"tiktok\",\n      \"isYourBrand\": \"false\", \n      \"disabledDuet\": \"false\",\n      \"privacyLevel\": \"PUBLIC_TO_EVERYONE\",\n      \"isAiGenerated\": \"true\",\n      \"disabledStitch\": \"false\",\n      \"disabledComments\": \"false\",\n      \"isBrandedContent\": \"false\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"tiktok\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "=YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "32654f5a-e2dc-4d36-983d-d4c4d0e592a9",
      "name": "FACEBOOK",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1520,
        1360
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.facebook_id }}\",\n    \"target\": {\n      \"targetType\": \"facebook\",\n      \"pageId\": \"{{ $('Assign Social Media IDs').item.json.facebook_page_id }}\"\n\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"facebook\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "=YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e0955970-2ccf-4f8f-91d5-6e795ad10c1a",
      "name": "THREADS",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1740,
        1360
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.threads_id }}\",\n    \"target\": {\n      \"targetType\": \"threads\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"threads\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "92b8a14a-c13b-45da-8e5a-fb6390c4e819",
      "name": "LINKEDIN",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1520,
        1600
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.linkedin_id }}\",\n    \"target\": {\n      \"targetType\": \"linkedin\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"linkedin\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "682edc00-f41c-442e-80a6-ff707e0ecd8b",
      "name": "BLUESKY",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1740,
        1600
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "= {\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.bluesky_id }}\",\n    \"target\": {\n      \"targetType\": \"bluesky\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"bluesky\",\n      \"mediaUrls\": [\n        \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ad4ecbfa-8db8-48f5-b86a-2524fa7dd52d",
      "name": "PINTEREST",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1940,
        1600
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_id }}\",\n    \"target\": {\n      \"targetType\": \"pinterest\",\n      \"boardId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_board_id }}\"      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"pinterest\",\n      \"mediaUrls\": [\n        \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n      ]\n    }\n  }\n}\n\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "174013c3-f8bd-4b3e-8171-d8699a95de95",
      "name": "更新生产",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1100,
        1600
      ],
      "parameters": {
        "columns": {
          "value": {
            "STATUS": "Publish",
            "row_number": "={{ $('Get my video').item.json.row_number }}"
          },
          "schema": [
            {
              "id": "PROMPT",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "PROMPT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "DESCRIPTION",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "DESCRIPTION",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "URL VIDEO",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "URL VIDEO",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Titre",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Titre",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "STATUS",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "STATUS",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "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": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "d9c1859f-99c3-4cc7-8b65-ebeddba88489",
      "name": "TWITTER",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1940,
        1360
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.twitter_id }}\",\n    \"target\": {\n      \"targetType\": \"twitter\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"twitter\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  }\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API_HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4206156d-487f-4193-b199-3623ead784c7",
  "connections": {
    "Get my video": {
      "main": [
        [
          {
            "node": "Assign Social Media IDs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "URL Final Video": {
      "main": [
        [
          {
            "node": "Get my video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Video Clips": {
      "main": [
        [
          {
            "node": "Generate ASMR Sound (Fal AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Assign Social Media IDs": {
      "main": [
        [
          {
            "node": "Upload Video to Blotato",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to Blotato": {
      "main": [
        [
          {
            "node": "INSTAGRAM",
            "type": "main",
            "index": 0
          },
          {
            "node": "YOUTUBE",
            "type": "main",
            "index": 0
          },
          {
            "node": "TIKTOK",
            "type": "main",
            "index": 0
          },
          {
            "node": "FACEBOOK",
            "type": "main",
            "index": 0
          },
          {
            "node": "THREADS",
            "type": "main",
            "index": 0
          },
          {
            "node": "TWITTER",
            "type": "main",
            "index": 0
          },
          {
            "node": "LINKEDIN",
            "type": "main",
            "index": 0
          },
          {
            "node": "BLUESKY",
            "type": "main",
            "index": 0
          },
          {
            "node": "PINTEREST",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update Production",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Final Merged Video": {
      "main": [
        [
          {
            "node": "URL Final Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Final Sound Output": {
      "main": [
        [
          {
            "node": "List Clip URLs for Stitching",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate ASMR Sound (Fal AI)": {
      "main": [
        [
          {
            "node": "Wait for Sound Generation (Fal AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List Clip URLs for Stitching": {
      "main": [
        [
          {
            "node": "Merge Clips into Final Video (Fal AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM: Generate Raw Idea (GPT-4.1)": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent: Generate Creative Video Idea",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Video Rendering (Fal AI)": {
      "main": [
        [
          {
            "node": "Retrieve Final Merged Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tool: Refine and Validate Prompts1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent: Generate Detailed Video Prompts",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Sound Generation (Fal AI)": {
      "main": [
        [
          {
            "node": "Retrieve Final Sound Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Video Clips (Wavespeed AI)": {
      "main": [
        [
          {
            "node": "Wait for Clip Generation (Wavespeed AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Structured Video Prompt Output": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent: Generate Detailed Video Prompts",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Extract Individual Scene Descriptions": {
      "main": [
        [
          {
            "node": "Generate Video Clips (Wavespeed AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Clips into Final Video (Fal AI)": {
      "main": [
        [
          {
            "node": "Wait for Video Rendering (Fal AI)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Idea & Metadata to Google Sheets": {
      "main": [
        [
          {
            "node": "AI Agent: Generate Detailed Video Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent: Generate Creative Video Idea": {
      "main": [
        [
          {
            "node": "Save Idea & Metadata to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger: Start Daily Content Generation": {
      "main": [
        [
          {
            "node": "AI Agent: Generate Creative Video Idea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait for Clip Generation (Wavespeed AI)": {
      "main": [
        [
          {
            "node": "Retrieve Video Clips",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Tool: Inject Creative Perspective (Idea)": {
      "ai_tool": [
        [
          {
            "node": "AI Agent: Generate Creative Video Idea",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent: Generate Detailed Video Prompts": {
      "main": [
        [
          {
            "node": "Extract Individual Scene Descriptions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM: Draft Video Prompt Details (GPT-4.1)": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent: Generate Detailed Video Prompts",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output (Idea, Environment, Sound)": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent: Generate Creative Video Idea",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 人工智能

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量40
分类1
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Dr. Firas

Dr. Firas

@drfiras

Automation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. 🚀

外部链接
在 n8n.io 查看

分享此工作流