This workflow corresponds to n8n.io template #18117 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "gtzPgjdFVzSJ5gGU",
"name": "\ud83d\ude80 \u98de\u4e66\u89e6\u53d1 \u00b7 DeepSeek\u521b\u610f \u00b7 \u5373\u68a6\u89c6\u9891 \u00b7 Blotato\u5168\u5e73\u53f0\u53d1\u5e03",
"tags": [],
"nodes": [
{
"id": "e6391ded-98c5-48b0-b688-5910f1d39bac",
"name": "\ud83d\udccb \u5de5\u4f5c\u6d41\u603b\u89c8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1120,
-880
],
"parameters": {
"color": 3,
"width": 400,
"height": 620,
"content": "# \ud83d\udcd6 \u5de5\u4f5c\u6d41\u603b\u89c8\n\n## \u8fd9\u4e2a\u5de5\u4f5c\u6d41\u505a\u4ec0\u4e48\uff1f\n\n\u901a\u8fc7\u98de\u4e66\u673a\u5668\u4eba\u53d1\u9001\u300c\u5f00\u59cb\u300d\u6307\u4ee4\uff0c\u81ea\u52a8\u5b8c\u6210\uff1a\n\n**STEP 1** \u2014 \u98de\u4e66\u89e6\u53d1 \u2192 DeepSeek \u751f\u6210\u89c6\u9891\u521b\u610f + \u6587\u6848 \u2192 \u4fdd\u5b58\u5230\u98de\u4e66\u591a\u7ef4\u8868\u683c\n\n**STEP 2** \u2014 \u5373\u68a6AI \u6839\u636e\u521b\u610f\u751f\u6210\u89c6\u9891 \u2192 \u5199\u56de\u98de\u4e66\u591a\u7ef4\u8868\u683c\n\n**STEP 3** \u2014 \u98de\u4e66\u591a\u7ef4\u8868\u683c\u8bfb\u53d6\u89c6\u9891 \u2192 Blotato \u4e0a\u4f20 \u2192 \u53d1\u5e03\u52309\u5927\u793e\u4ea4\u5e73\u53f0\n\n---\n## \ud83d\udd27 \u9700\u8981\u914d\u7f6e\u7684\u8d26\u53f7\n\u2713 \u98de\u4e66\u5f00\u653e\u5e73\u53f0\uff08\u673a\u5668\u4eba + \u591a\u7ef4\u8868\u683c\uff09\n\u2713 DeepSeek API Key\n\u2713 \u5373\u68a6AI API Key\n\u2713 Blotato API Key\n\n---\n\ud83d\udccc \u4ece\u5de6\u4fa7 STEP 1 \u4fbf\u7b7e\u7eb8\u5f00\u59cb\uff0c\u6309\u987a\u5e8f\u914d\u7f6e"
},
"typeVersion": 1
},
{
"id": "ed8c304d-8382-4008-97b1-9b26d8d78f1b",
"name": "\u2705 STEP 1 \u4fbf\u7b7e",
"type": "n8n-nodes-base.stickyNote",
"position": [
1520,
-880
],
"parameters": {
"color": 5,
"width": 848,
"height": 732,
"content": "# \u2705 STEP 1 \u2014 \u98de\u4e66\u89e6\u53d1 + DeepSeek\u751f\u6210\u521b\u610f\n\n## \u914d\u7f6e\u8bf4\u660e\n\n### \u98de\u4e66\u673a\u5668\u4eba\u89e6\u53d1\u5668\n1. \u5728\u98de\u4e66\u5f00\u653e\u5e73\u53f0\u521b\u5efa\u4f01\u4e1a\u81ea\u5efa\u5e94\u7528\n2. \u5f00\u542f\u300c\u673a\u5668\u4eba\u300d\u80fd\u529b\n3. \u5728\u300c\u4e8b\u4ef6\u8ba2\u9605\u300d\u4e2d\u7ed1\u5b9a\u672c\u8282\u70b9\u7684 Webhook URL\n4. \u6dfb\u52a0\u6743\u9650\uff1aim:message\u3001im:resource\n5. \u53d1\u5e03\u5e94\u7528\n\n**\u89e6\u53d1\u65b9\u5f0f\uff1a** \u5411\u673a\u5668\u4eba\u53d1\u9001\u4efb\u610f\u6d88\u606f\u5373\u53ef\u542f\u52a8\n\uff08\u4e5f\u53ef\u4ee5\u53d1\u9001\u5177\u4f53\u4e3b\u9898\uff0c\u5982\u300c\u91ce\u751f\u52a8\u7269\u300d\uff0c\u4f1a\u4f20\u5165 DeepSeek \u4f5c\u4e3a\u521b\u610f\u65b9\u5411\uff09\n\n### DeepSeek \u914d\u7f6e\n- API\u5730\u5740\uff1ahttps://api.deepseek.com\n- \u6a21\u578b\uff1adeepseek-chat\uff08\u5373 DeepSeek-V3\uff09\n- \u5728\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\u8282\u70b9\u586b\u5165 deepseekApiKey\n\n### \u98de\u4e66\u591a\u7ef4\u8868\u683c\uff08\u66ff\u4ee3 Google Sheets\uff09\n1. \u5728\u98de\u4e66\u4e2d\u521b\u5efa\u591a\u7ef4\u8868\u683c\n2. \u6dfb\u52a0\u5b57\u6bb5\uff1aid / idea / caption / production / environment_prompt / final_output\n3. \u83b7\u53d6\u591a\u7ef4\u8868\u683c\u7684 App Token \u548c Table ID\n4. \u586b\u5165\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\u8282\u70b9\n\n**\u98de\u4e66\u591a\u7ef4\u8868\u683c API \u6587\u6863\uff1a**\nhttps://open.feishu.cn/document/server-docs/docs/bitable-v1/"
},
"typeVersion": 1
},
{
"id": "e3bca182-ee05-489b-be1e-fad1f0974880",
"name": "\u2705 STEP 2 \u4fbf\u7b7e",
"type": "n8n-nodes-base.stickyNote",
"position": [
608,
-16
],
"parameters": {
"color": 3,
"width": 496,
"height": 724,
"content": "# \u2705 STEP 2 \u2014 \u5373\u68a6AI \u751f\u6210\u89c6\u9891\n\n## \u5373\u68a6AI \u914d\u7f6e\u8bf4\u660e\n\n### \u83b7\u53d6\u5373\u68a6API Key\n1. \u8bbf\u95ee https://jimeng.jianying.com/ai-tool/home\n2. \u4f7f\u7528\u6296\u97f3/\u526a\u6620\u8d26\u53f7\u767b\u5f55\n3. \u8fdb\u5165\u300c\u5f00\u653e\u5e73\u53f0\u300d\u2192\u300cAPI\u7ba1\u7406\u300d\u2192 \u521b\u5efa\u5bc6\u94a5\n4. \u586b\u5165\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\u8282\u70b9\u7684 jimengApiKey\n\n### \u5373\u68a6 \u56fe\u751f\u89c6\u9891 vs \u6587\u751f\u89c6\u9891\n\u672c\u5de5\u4f5c\u6d41\u4f7f\u7528**\u6587\u751f\u89c6\u9891**\u63a5\u53e3\uff1a\n- \u8f93\u5165\uff1aDeepSeek \u751f\u6210\u7684\u8be6\u7ec6\u89c6\u9891\u63d0\u793a\u8bcd\n- \u8f93\u51fa\uff1a8\u79d2\u77ed\u89c6\u9891\uff0c\u7ad6\u7248 9:16\n- \u753b\u9762\u8d28\u91cf\u9ad8\uff0c\u4e2d\u6587\u573a\u666f\u7406\u89e3\u4f18\u79c0\n\n### \u5373\u68a6API \u7aef\u70b9\n\u63d0\u4ea4\uff1aPOST https://jimeng.jianying.com/mapi/v1/video/generate\n\u67e5\u8be2\uff1aGET https://jimeng.jianying.com/mapi/v1/video/query?task_id=xxx\n\n### \u7b49\u5f85\u65f6\u95f4\n\u5373\u68a6\u751f\u6210 8 \u79d2\u89c6\u9891\u7ea6\u9700 2-4 \u5206\u949f\uff0c\u672c\u8282\u70b9\u7b49\u5f85 **4 \u5206\u949f**\n\uff08\u5982\u9891\u7e41\u5931\u8d25\uff0c\u6539\u4e3a 6 \u5206\u949f\uff09\n\n\u26a0\ufe0f \u5373\u68a6API \u76ee\u524d\u4e3a\u9080\u8bf7\u5236\uff0c\u9700\u7533\u8bf7\u5f00\u53d1\u8005\u6743\u9650"
},
"typeVersion": 1
},
{
"id": "bb25ce9c-3a6c-4214-8eb6-913ebc41886b",
"name": "\u2705 STEP 3 \u4fbf\u7b7e",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
704
],
"parameters": {
"color": 4,
"width": 528,
"height": 712,
"content": "# \u2705 STEP 3 \u2014 \u8bfb\u53d6\u89c6\u9891 \u00b7 \u4e0a\u4f20 Blotato \u00b7 \u53d1\u5e03\u52309\u5927\u5e73\u53f0\n\n## \u914d\u7f6e\u8bf4\u660e\n\n### \u98de\u4e66\u591a\u7ef4\u8868\u683c\u8bfb\u53d6\n\u4ece\u591a\u7ef4\u8868\u683c\u4e2d\u7b5b\u9009 production = 'done' \u4e14\u5c1a\u672a\u53d1\u5e03\u7684\u8bb0\u5f55\uff0c\n\u8bfb\u53d6 final_output \u5b57\u6bb5\u4e2d\u7684\u89c6\u9891URL\u3002\n\n### Blotato \u914d\u7f6e\n1. \u8bbf\u95ee https://blotato.com \u6ce8\u518c\u8d26\u53f7\n2. \u5b89\u88c5\u793e\u533a\u8282\u70b9\uff1aSettings \u2192 Community Nodes\n \u8f93\u5165\uff1a`@blotato/n8n-nodes-blotato`\n3. \u5728 Blotato \u540e\u53f0\u8fde\u63a5\u5404\u793e\u4ea4\u5e73\u53f0\u8d26\u53f7\n4. \u83b7\u53d6 API Key\uff0c\u586b\u5165\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\n5. \u5728\u300c\u5206\u914d\u793e\u4ea4\u5a92\u4f53ID\u300d\u8282\u70b9\u586b\u5165\u5404\u5e73\u53f0\u8d26\u53f7ID\n\n### \u652f\u6301\u7684\u53d1\u5e03\u5e73\u53f0\nINSTAGRAM \u00b7 YOUTUBE \u00b7 TIKTOK \u00b7 FACEBOOK \u00b7 THREADS \u00b7 TWITTER/X \u00b7 LINKEDIN \u00b7 BLUESKY \u00b7 PINTEREST\n\n### \u53d1\u5e03\u5b8c\u6210\u540e\n\u98de\u4e66\u591a\u7ef4\u8868\u683c\u5bf9\u5e94\u8bb0\u5f55\u7684 STATUS \u5b57\u6bb5\u66f4\u65b0\u4e3a\u300c\u5df2\u53d1\u5e03\u300d\n\u540c\u65f6\u98de\u4e66\u673a\u5668\u4eba\u5411\u4f60\u53d1\u9001\u53d1\u5e03\u6210\u529f\u901a\u77e5"
},
"typeVersion": 1
},
{
"id": "323d6dab-b54b-4409-b0e5-b35e5e23ef64",
"name": "\ud83d\udd11 \u5bc6\u94a5\u914d\u7f6e + \u5e38\u89c1\u95ee\u9898",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
-880
],
"parameters": {
"color": 6,
"width": 400,
"height": 860,
"content": "# \ud83d\udd11 \u6240\u6709\u5bc6\u94a5\u914d\u7f6e\u8bf4\u660e\n\n\u5728\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\u8282\u70b9\u4e2d\u586b\u5165\uff1a\n\n| \u5b57\u6bb5 | \u8bf4\u660e | \u83b7\u53d6\u5730\u5740 |\n|------|------|----------|\n| deepseekApiKey | DeepSeek API\u5bc6\u94a5 | https://platform.deepseek.com |\n| jimengApiKey | \u5373\u68a6AI\u5bc6\u94a5 | https://jimeng.jianying.com |\n| blotatoApiKey | Blotato\u5bc6\u94a5 | https://blotato.com/settings |\n| feishuAppId | \u98de\u4e66\u5e94\u7528ID | \u98de\u4e66\u5f00\u653e\u5e73\u53f0 |\n| feishuAppSecret | \u98de\u4e66\u5e94\u7528\u5bc6\u94a5 | \u98de\u4e66\u5f00\u653e\u5e73\u53f0 |\n| feishuBitableAppToken | \u591a\u7ef4\u8868\u683cAppToken | \u591a\u7ef4\u8868\u683cURL\u4e2d |\n| feishuBitableTableId | \u591a\u7ef4\u8868\u683cTableID | \u591a\u7ef4\u8868\u683c\u8bbe\u7f6e |\n\n## \u26a0\ufe0f \u5e38\u89c1\u95ee\u9898\n\n**Q: \u98de\u4e66Webhook\u6536\u4e0d\u5230\u6d88\u606f\uff1f**\nN8N\u5fc5\u987b\u90e8\u7f72\u5728\u516c\u7f51\uff0c\u672c\u5730\u6d4b\u8bd5\u7528 ngrok\uff1a`npx ngrok http 5678`\n\n**Q: \u5373\u68a6\u8fd4\u56de401\uff1f**\nAPI Key\u683c\u5f0f\u68c0\u67e5\uff0c\u786e\u8ba4\u5df2\u5f00\u901a\u5f00\u53d1\u8005\u6743\u9650\n\n**Q: \u89c6\u9891URL\u7a7a\uff1f**\n\u7b49\u5f85\u65f6\u95f4\u4e0d\u591f\uff0c\u5c06\u7b49\u5f85\u8282\u70b9\u6539\u4e3a6\u5206\u949f\n\n**Q: Blotato\u53d1\u5e03\u5931\u8d25\uff1f**\n\u786e\u8ba4\u5404\u5e73\u53f0\u8d26\u53f7\u5df2\u5728Blotato\u540e\u53f0\u8fde\u63a5\u5e76\u6388\u6743"
},
"typeVersion": 1
},
{
"id": "27538ae4-1e27-409f-92b7-7984b4ff8e87",
"name": "\u98de\u4e66\u673a\u5668\u4eba\u89e6\u53d1\u5668",
"type": "n8n-nodes-base.webhook",
"notes": "=== STEP 1 \u00b7 \u8282\u70b9\u2460 \u00b7 \u98de\u4e66\u673a\u5668\u4eba\u89e6\u53d1\u5668 ===\n\n\u3010\u4f5c\u7528\u3011\n\u66ff\u4ee3\u539f\u7248\u7684 Schedule Trigger\uff08\u5b9a\u65f6\u89e6\u53d1\uff09\uff0c\u6539\u4e3a\u7531\u98de\u4e66\u673a\u5668\u4eba\u6d88\u606f\u624b\u52a8\u89e6\u53d1\u3002\n\u8fd9\u6837\u4f60\u53ef\u4ee5\u968f\u65f6\u53d1\u6d88\u606f\u7ed9\u673a\u5668\u4eba\u542f\u52a8\u4e00\u6b21\u89c6\u9891\u521b\u4f5c\uff0c\u800c\u4e0d\u662f\u6bcf\u5929\u56fa\u5b9a\u65f6\u95f4\u8fd0\u884c\u3002\n\n\u3010Webhook URL \u83b7\u53d6\u3011\n1. \u4fdd\u5b58\u672c\u5de5\u4f5c\u6d41\n2. \u70b9\u51fb\u672c\u8282\u70b9\uff0c\u590d\u5236\u9875\u9762\u4e0a\u663e\u793a\u7684 Webhook URL\n3. \u6253\u5f00\u98de\u4e66\u5f00\u653e\u5e73\u53f0 \u2192 \u4f60\u7684\u5e94\u7528 \u2192 \u4e8b\u4ef6\u8ba2\u9605\n4. \u5c06 URL \u7c98\u8d34\u5230\u300c\u8bf7\u6c42\u7f51\u5740\u300d\n5. \u70b9\u51fb\u300c\u9a8c\u8bc1\u300d\uff08N8N \u4f1a\u81ea\u52a8\u54cd\u5e94\u98de\u4e66\u7684 challenge \u9a8c\u8bc1\uff09\n\n\u3010\u6d88\u606f\u683c\u5f0f\u3011\n\u5411\u673a\u5668\u4eba\u53d1\u9001\u4efb\u610f\u6587\u5b57\u6d88\u606f\u5373\u53ef\u89e6\u53d1\u3002\n\u5982\u679c\u53d1\u9001\u5177\u4f53\u4e3b\u9898\uff08\u5982\u300c\u5b87\u5b99\u63a2\u9669\u300d\uff09\uff0c\u8be5\u4e3b\u9898\u4f1a\u4f20\u7ed9 DeepSeek \u4f5c\u4e3a\u521b\u610f\u65b9\u5411\u3002\n\n\u3010\u6ce8\u610f\u3011\n\u98de\u4e66\u9a8c\u8bc1\u56de\u8c03\u8282\u70b9\uff08Respond to Webhook\uff09\u5df2\u8fde\u63a5\uff0c\n\u4f1a\u81ea\u52a8\u5904\u7406\u98de\u4e66\u7684 URL \u9a8c\u8bc1\u63e1\u624b\u3002",
"position": [
1120,
-128
],
"parameters": {
"path": "feishu-veo3-trigger",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "01528fb3-b7b4-430e-a795-ada2de2c5f82",
"name": "\u98de\u4e66Webhook\u9a8c\u8bc1\u54cd\u5e94",
"type": "n8n-nodes-base.respondToWebhook",
"notes": "=== \u8282\u70b9\u8bf4\u660e ===\n\n\u98de\u4e66\u5728\u9996\u6b21\u7ed1\u5b9a Webhook URL \u65f6\uff0c\u4f1a\u53d1\u9001\u5305\u542b challenge \u5b57\u6bb5\u7684\u9a8c\u8bc1\u8bf7\u6c42\u3002\n\u672c\u8282\u70b9\u5c06 challenge \u503c\u539f\u6837\u8fd4\u56de\uff0c\u5b8c\u6210\u9a8c\u8bc1\u63e1\u624b\u3002\n\n\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u98de\u4e66\u624d\u4f1a\u6b63\u5f0f\u63a8\u9001\u6d88\u606f\u4e8b\u4ef6\u3002\n\u6b63\u5e38\u4e1a\u52a1\u6d88\u606f\u4e0d\u7ecf\u8fc7\u6b64\u8282\u70b9\uff0c\u76f4\u63a5\u8fdb\u5165\u4e0b\u4e00\u4e2a\u8282\u70b9\u5904\u7406\u3002",
"position": [
1312,
-224
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{ JSON.stringify({ challenge: $json.body.challenge || 'ok' }) }}"
},
"typeVersion": 1
},
{
"id": "07c457e9-461a-49bd-9b54-f319b827f5f2",
"name": "\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e",
"type": "n8n-nodes-base.set",
"notes": "=== \ud83d\udd11 \u6240\u6709\u5bc6\u94a5\u5728\u6b64\u7edf\u4e00\u914d\u7f6e ===\n\n\u3010deepseekApiKey\u3011\n\u83b7\u53d6\uff1ahttps://platform.deepseek.com \u2192 API Keys\n\u683c\u5f0f\uff1ask-xxxxxxxxxxxxxxxx\n\u7528\u9014\uff1a\u751f\u6210\u89c6\u9891\u521b\u610f\u3001\u6587\u6848\u3001\u89c6\u9891\u63d0\u793a\u8bcd\n\n\u3010jimengApiKey\u3011\n\u83b7\u53d6\uff1ahttps://jimeng.jianying.com \u2192 \u5f00\u653e\u5e73\u53f0 \u2192 API\u7ba1\u7406\n\u7528\u9014\uff1a\u8c03\u7528\u5373\u68a6AI\u6587\u751f\u89c6\u9891\u63a5\u53e3\n\u26a0\ufe0f \u9700\u8981\u7533\u8bf7\u5f00\u53d1\u8005\u6743\u9650\n\n\u3010blotatoApiKey\u3011\n\u83b7\u53d6\uff1ahttps://blotato.com \u2192 Settings \u2192 API Keys\n\u7528\u9014\uff1a\u4e0a\u4f20\u89c6\u9891\u5e76\u53d1\u5e03\u5230\u5404\u793e\u4ea4\u5e73\u53f0\n\n\u3010feishuAppId + feishuAppSecret\u3011\n\u83b7\u53d6\uff1ahttps://open.feishu.cn/app \u2192 \u4f60\u7684\u5e94\u7528 \u2192 \u51ed\u8bc1\u4e0e\u57fa\u7840\u4fe1\u606f\n\u7528\u9014\uff1a\u53d1\u9001\u98de\u4e66\u6d88\u606f\u901a\u77e5 + \u8c03\u7528\u591a\u7ef4\u8868\u683cAPI\n\n\u3010feishuBitableAppToken\u3011\n\u83b7\u53d6\uff1a\u6253\u5f00\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff0cURL\u683c\u5f0f\uff1a\nhttps://xxx.feishu.cn/base/{AppToken}?table={TableId}\nAppToken \u5c31\u662f URL \u4e2d /base/ \u540e\u9762\u7684\u90e8\u5206\n\n\u3010feishuBitableTableId\u3011\n\u591a\u7ef4\u8868\u683c\u4e2d\u6bcf\u5f20\u8868\u6709\u72ec\u7acb\u7684 TableId\uff0c\n\u5728\u8868\u683c\u8bbe\u7f6e\u6216 URL \u7684 table= \u53c2\u6570\u540e\u83b7\u53d6",
"position": [
1312,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "k1",
"name": "deepseekApiKey",
"type": "string",
"value": "YOUR_DEEPSEEK_API_KEY"
},
{
"id": "k2",
"name": "jimengApiKey",
"type": "string",
"value": "YOUR_JIMENG_API_KEY"
},
{
"id": "k3",
"name": "blotatoApiKey",
"type": "string",
"value": "YOUR_BLOTATO_API_KEY"
},
{
"id": "k4",
"name": "feishuAppId",
"type": "string",
"value": "YOUR_FEISHU_APP_ID"
},
{
"id": "k5",
"name": "feishuAppSecret",
"type": "string",
"value": "YOUR_FEISHU_APP_SECRET"
},
{
"id": "k6",
"name": "feishuBitableAppToken",
"type": "string",
"value": "YOUR_BITABLE_APP_TOKEN"
},
{
"id": "k7",
"name": "feishuBitableTableId",
"type": "string",
"value": "YOUR_BITABLE_TABLE_ID"
},
{
"id": "k8",
"name": "deepseekModel",
"type": "string",
"value": "deepseek-chat"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "593046f2-e6cf-449e-93f3-aff4d1fa73d2",
"name": "\u63d0\u53d6\u98de\u4e66\u6d88\u606f\u4e3b\u9898",
"type": "n8n-nodes-base.code",
"notes": "=== \u8282\u70b9\u8bf4\u660e ===\n\n\u4ece\u98de\u4e66\u6d88\u606f\u4f53\u4e2d\u63d0\u53d6\u7528\u6237\u8f93\u5165\u7684\u6587\u5b57\uff0c\u4f5c\u4e3a DeepSeek \u7684\u521b\u610f\u4e3b\u9898\u3002\n\n\u3010\u4f7f\u7528\u65b9\u5f0f\u3011\n- \u53d1\u9001\u300c\u5b87\u5b99\u63a2\u9669\u300d\u2192 DeepSeek \u56f4\u7ed5\u5b87\u5b99\u63a2\u9669\u751f\u6210\u521b\u610f\n- \u53d1\u9001\u300c\u5f00\u59cb\u300d\u6216\u4efb\u610f\u65e0\u610f\u4e49\u6587\u5b57 \u2192 \u4f7f\u7528\u9ed8\u8ba4\u4e3b\u9898\u300c\u6709\u8da3\u7684\u77ed\u89c6\u9891\u521b\u610f\u300d\n\n\u3010\u63d0\u53d6\u903b\u8f91\u3011\n- \u53bb\u9664\u6d88\u606f\u4e2d\u7684 @\u673a\u5668\u4eba \u6807\u8bb0\n- \u53d6\u5269\u4f59\u6587\u5b57\u4f5c\u4e3a\u4e3b\u9898\n- \u5982\u679c\u6587\u5b57\u4e3a\u7a7a\u6216\u53ea\u67091\u4e2a\u5b57\uff0c\u4f7f\u7528\u9ed8\u8ba4\u4e3b\u9898\n\n\u3010\u8f93\u51fa\u5b57\u6bb5\u3011\n- topic\uff1a\u521b\u610f\u4e3b\u9898\uff08\u4f20\u7ed9 DeepSeek\uff09\n- senderId\uff1a\u98de\u4e66\u7528\u6237 open_id\uff08\u7528\u4e8e\u56de\u590d\u901a\u77e5\uff09\n- chatId\uff1a\u5bf9\u8bdd ID\uff08\u7528\u4e8e\u56de\u590d\u901a\u77e5\uff09",
"position": [
1520,
-128
],
"parameters": {
"jsCode": "// \u63d0\u53d6\u98de\u4e66\u6d88\u606f\u4e2d\u7684\u7528\u6237\u8f93\u5165\u6587\u5b57\uff08\u4f5c\u4e3a\u521b\u610f\u4e3b\u9898\uff09\nconst body = $input.first().json.body || {};\nconst event = body.event || {};\nconst message = event.message || {};\n\nlet topic = '\u6709\u8da3\u7684\u77ed\u89c6\u9891\u521b\u610f';\ntry {\n const content = JSON.parse(message.content || '{}');\n const text = (content.text || '').replace(/@[^\\s]*/g, '').trim();\n if (text && text.length > 1) topic = text;\n} catch(e) {}\n\nconst senderId = event.sender?.sender_id?.open_id || '';\nconst chatId = message.chat_id || '';\n\nconsole.log('\u89e6\u53d1\u4e3b\u9898:', topic, '\u6765\u81ea:', senderId);\n\nreturn [{ json: {\n topic,\n senderId,\n chatId,\n triggerTime: new Date().toISOString()\n}}];"
},
"typeVersion": 2
},
{
"id": "710a765b-95de-437f-b040-fe94aeac042a",
"name": "DeepSeek\uff1a\u751f\u6210\u89c6\u9891\u521b\u610f",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 1 \u00b7 \u8282\u70b9\u2464 \u00b7 DeepSeek \u751f\u6210\u521b\u610f ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aAI Agent: Generate Video Concept\uff08GPT-4.1\uff09\n\u65b0\u7248\uff1a\u76f4\u63a5\u8c03\u7528 DeepSeek HTTP API\uff08\u65e0\u9700 LangChain Agent\uff09\n\n\u3010\u4e3a\u4ec0\u4e48\u7528 HTTP \u800c\u4e0d\u662f LangChain \u8282\u70b9\uff1f\u3011\nDeepSeek \u5728 N8N \u7684 LangChain \u8282\u70b9\u4e2d\u652f\u6301\u4e0d\u5b8c\u6574\uff0c\n\u76f4\u63a5\u7528 HTTP Request \u8c03\u7528\u66f4\u7a33\u5b9a\uff0c\u4e5f\u66f4\u76f4\u89c2\u3002\n\n\u3010DeepSeek API \u8bf4\u660e\u3011\n- \u5730\u5740\uff1ahttps://api.deepseek.com/v1/chat/completions\n- \u4e0e OpenAI API \u683c\u5f0f\u5b8c\u5168\u517c\u5bb9\n- \u6a21\u578b\uff1adeepseek-chat\uff08DeepSeek-V3\uff0c\u7efc\u5408\u6700\u5f3a\uff09\n- Temperature 0.9\uff1a\u9ad8\u521b\u610f\u6027\uff0c\u8ba9\u8f93\u51fa\u66f4\u6709\u65b0\u610f\n\n\u3010\u8f93\u51fa\u683c\u5f0f\u3011\nDeepSeek \u4f1a\u8fd4\u56de\u4e25\u683c\u7684 JSON \u6570\u7ec4\uff1a\n[{ Caption, Idea, Environment, Status }]\n\u4e0b\u4e00\u4e2a\u8282\u70b9\u4f1a\u89e3\u6790\u6b64 JSON\u3002\n\n\u3010\u8d39\u7528\u53c2\u8003\u3011\n\u6bcf\u6b21\u8c03\u7528\u7ea6\u6d88\u8017 800 Token\uff0c\u6210\u672c\u7ea6 \u00a50.02",
"position": [
1712,
-128
],
"parameters": {
"url": "https://api.deepseek.com/v1/chat/completions",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"model\": $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.deepseekModel,\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"\u4f60\u662f\u4e00\u4f4d\u4e13\u95e8\u751f\u6210\u77ed\u89c6\u9891\u521b\u610f\u7684AI\u3002\u4f60\u7684\u8f93\u51fa\u5fc5\u987b\u662f\u4e25\u683c\u7684JSON\u6570\u7ec4\u683c\u5f0f\uff0c\u53ea\u5305\u542b1\u4e2a\u521b\u610f\u5bf9\u8c61\uff0c\u4e0d\u8981\u6709\u4efb\u4f55\u989d\u5916\u6587\u5b57\u3001\u4ee3\u7801\u5757\u6807\u8bb0\u6216\u89e3\u91ca\u3002\\n\\n\u8f93\u51fa\u683c\u5f0f\uff08\u4e25\u683c\u9075\u5b88\uff09\uff1a\\n[{\\\"Caption\\\": \\\"\u6587\u6848+\u6807\u7b7e\\\", \\\"Idea\\\": \\\"\u521b\u610f\u6807\u9898\\\", \\\"Environment\\\": \\\"\u573a\u666f\u63cf\u8ff0\\\", \\\"Status\\\": \\\"for production\\\"}]\\n\\n\u89c4\u5219\uff1a\\n1. Idea\uff1a13\u5b57\u4ee5\u5185\uff0c\u63cf\u8ff0\u4e00\u4e2a\u6709\u8da3\u7684\u89c6\u9891\u77ac\u95f4\uff0c\u53ef\u4ee5\u8d85\u73b0\u5b9e\\n2. Caption\uff1a\u7b80\u77ed\u6709\u529b\u7684\u53d1\u5e03\u6587\u6848 + 1\u4e2aemoji + 12\u4e2ahashtag\uff084\u4e2a\u4e3b\u9898\u76f8\u5173 + 4\u4e2a\u4e07\u80fd\u70ed\u95e8 + 4\u4e2a\u5f53\u524d\u6d41\u884c\uff09\\n3. Environment\uff1a20\u5b57\u4ee5\u5185\uff0c\u63cf\u8ff0\u573a\u666f\u548c\u62cd\u6444\u98ce\u683c\\n4. Status\uff1a\u56fa\u5b9a\u4e3a \\\"for production\\\"\"\n },\n {\n \"role\": \"user\",\n \"content\": \"=\u8bf7\u56f4\u7ed5\u4ee5\u4e0b\u4e3b\u9898\u751f\u62101\u4e2a\u77ed\u89c6\u9891\u521b\u610f\uff1a{{ $json.topic }}\"\n }\n ],\n \"max_tokens\": 800,\n \"temperature\": 0.9\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.deepseekApiKey }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "1e305261-bce1-47e1-ad11-caec416b3936",
"name": "\u89e3\u6790\u521b\u610fJSON",
"type": "n8n-nodes-base.code",
"notes": "=== \u8282\u70b9\u8bf4\u660e ===\n\n\u89e3\u6790 DeepSeek \u8fd4\u56de\u7684 JSON \u521b\u610f\u6570\u636e\u3002\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aParser: Extract JSON from Idea\uff08LangChain OutputParserStructured\uff09\n\u65b0\u7248\uff1aCode \u8282\u70b9\u624b\u52a8\u89e3\u6790\uff0c\u66f4\u53ef\u63a7\uff0c\u6709\u964d\u7ea7\u5904\u7406\n\n\u3010\u5904\u7406\u903b\u8f91\u3011\n1. \u63d0\u53d6 DeepSeek \u8fd4\u56de\u7684\u6587\u672c\u5185\u5bb9\n2. \u6e05\u9664\u53ef\u80fd\u7684 ```json \u4ee3\u7801\u5757\u6807\u8bb0\n3. \u89e3\u6790 JSON\n4. \u5982\u679c\u89e3\u6790\u5931\u8d25\uff0c\u4f7f\u7528\u9884\u8bbe\u7684\u964d\u7ea7\u521b\u610f\uff0c\u786e\u4fdd\u6d41\u7a0b\u4e0d\u4e2d\u65ad\n\n\u3010\u8f93\u51fa\u5b57\u6bb5\u3011\n- output[0]\uff1a\u5b8c\u6574\u521b\u610f\u5bf9\u8c61\uff08\u4f20\u7ed9\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff09\n- idea_text\uff1a\u521b\u610f\u6807\u9898\u6587\u5b57\n- caption\uff1a\u53d1\u5e03\u6587\u6848+\u6807\u7b7e\n- environment\uff1a\u573a\u666f\u63cf\u8ff0",
"position": [
1920,
-128
],
"parameters": {
"jsCode": "// \u89e3\u6790 DeepSeek \u8fd4\u56de\u7684 JSON \u521b\u610f\nconst raw = $input.first().json.choices?.[0]?.message?.content || '';\n\nlet idea = null;\ntry {\n // \u6e05\u7406\u53ef\u80fd\u7684\u4ee3\u7801\u5757\u6807\u8bb0\n const clean = raw.replace(/```json|```/g, '').trim();\n const parsed = JSON.parse(clean);\n idea = Array.isArray(parsed) ? parsed[0] : parsed;\n} catch(e) {\n console.error('JSON\u89e3\u6790\u5931\u8d25:', e.message, '\u539f\u59cb\u5185\u5bb9:', raw);\n // \u964d\u7ea7\u5904\u7406\n idea = {\n Caption: '\u7cbe\u5f69\u77ac\u95f4\u6765\u4e86\uff01 \ud83c\udfac #viral #trending #video #ai #shortfilm #fyp #foryou #explore #aiart #creative #shorts #reels',\n Idea: '\u4e00\u53ea\u5317\u6781\u718a\u5728\u51b0\u5ddd\u4e0a\u81ea\u62cd',\n Environment: '\u5317\u6781\u51b0\u5ddd\uff0c\u51b7\u8272\u8c03\uff0c\u7eaa\u5f55\u7247\u98ce\u683c',\n Status: 'for production'\n };\n}\n\nconsole.log('\u89e3\u6790\u5230\u521b\u610f:', idea.Idea);\n\nreturn [{ json: {\n output: [idea],\n idea_text: idea.Idea,\n caption: idea.Caption,\n environment: idea.Environment,\n status: idea.Status\n}}];"
},
"typeVersion": 2
},
{
"id": "f47cac93-2c2e-47b5-b6bb-03ccfb2035bb",
"name": "\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff1a\u4fdd\u5b58\u521b\u610f",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 1 \u00b7 \u8282\u70b9\u2466 \u00b7 \u98de\u4e66\u591a\u7ef4\u8868\u683c\u4fdd\u5b58\u521b\u610f ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aGoogle Sheets: Save Script Idea\n\u65b0\u7248\uff1a\u8c03\u7528\u98de\u4e66\u591a\u7ef4\u8868\u683c API \u65b0\u589e\u8bb0\u5f55\n\n\u3010\u98de\u4e66\u591a\u7ef4\u8868\u683c API\u3011\nPOST https://open.feishu.cn/open-apis/bitable/v1/apps/{appToken}/tables/{tableId}/records\n\n\u9700\u8981\u5148\u901a\u8fc7\u300c\u83b7\u53d6\u98de\u4e66Token\u300d\u8282\u70b9\u62ff\u5230 tenant_access_token\u3002\n\n\u3010\u591a\u7ef4\u8868\u683c\u5b57\u6bb5\u8bf4\u660e\u3011\n\u9700\u8981\u5728\u98de\u4e66\u591a\u7ef4\u8868\u683c\u4e2d\u521b\u5efa\u4ee5\u4e0b\u5b57\u6bb5\uff08\u6587\u672c\u7c7b\u578b\uff09\uff1a\n- idea\uff1a\u89c6\u9891\u521b\u610f\u6807\u9898\n- caption\uff1a\u53d1\u5e03\u6587\u6848+\u6807\u7b7e\n- production\uff1a\u751f\u4ea7\u72b6\u6001\uff08for production / done\uff09\n- environment_prompt\uff1a\u573a\u666f\u63cf\u8ff0\n- final_output\uff1a\u6700\u7ec8\u89c6\u9891URL\uff08\u5148\u4e3a\u7a7a\uff0c\u540e\u7eed\u66f4\u65b0\uff09\n- STATUS\uff1a\u53d1\u5e03\u72b6\u6001\uff08\u5f85\u751f\u6210 / \u5df2\u53d1\u5e03\uff09\n\n\u3010\u8fd4\u56de\u503c\u3011\n\u65b0\u589e\u6210\u529f\u540e\u8fd4\u56de record_id\uff0c\u540e\u7eed\u66f4\u65b0\u8bb0\u5f55\u65f6\u4f7f\u7528\u3002",
"position": [
2320,
-128
],
"parameters": {
"url": "={{ 'https://open.feishu.cn/open-apis/bitable/v1/apps/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableAppToken + '/tables/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableTableId + '/records' }}",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"fields\": {\n \"idea\": $('\u89e3\u6790\u521b\u610fJSON').first().json.idea_text,\n \"caption\": $('\u89e3\u6790\u521b\u610fJSON').first().json.caption,\n \"production\": $('\u89e3\u6790\u521b\u610fJSON').first().json.status,\n \"environment_prompt\": $('\u89e3\u6790\u521b\u610fJSON').first().json.environment,\n \"final_output\": \"\",\n \"STATUS\": \"\u5f85\u751f\u6210\"\n }\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $json.tenant_access_token }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "12d075de-7217-43f5-8078-7b7ba0460e51",
"name": "\u83b7\u53d6\u98de\u4e66\u8bbf\u95ee\u4ee4\u724c",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== \u8282\u70b9\u8bf4\u660e ===\n\n\u83b7\u53d6\u98de\u4e66 tenant_access_token\uff0c\u7528\u4e8e\u540e\u7eed\u8c03\u7528\u98de\u4e66 API\u3002\n\n\u3010\u63a5\u53e3\u8bf4\u660e\u3011\nPOST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal\n\u5165\u53c2\uff1aapp_id + app_secret\n\u8fd4\u56de\uff1a{ tenant_access_token: 'xxx', expire: 7200 }\n\n\u4ee4\u724c\u6709\u6548\u671f 2 \u5c0f\u65f6\uff0c\u6bcf\u6b21\u5de5\u4f5c\u6d41\u8fd0\u884c\u91cd\u65b0\u83b7\u53d6\u5373\u53ef\u3002",
"position": [
2112,
-128
],
"parameters": {
"url": "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ { \"app_id\": $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuAppId, \"app_secret\": $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuAppSecret } }}",
"sendBody": true,
"specifyBody": "json"
},
"typeVersion": 4.2
},
{
"id": "ac157fe4-fb4f-4e22-84a3-27dfcd8d3874",
"name": "DeepSeek\uff1a\u751f\u6210\u5373\u68a6\u63d0\u793a\u8bcd",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 1 \u00b7 \u8282\u70b9\u2467 \u00b7 DeepSeek \u751f\u6210\u5373\u68a6\u63d0\u793a\u8bcd ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aAI Agent: Create Veo3-Compatible Prompt\uff08GPT-4.1\uff09\n\u65b0\u7248\uff1aDeepSeek HTTP API\uff0c\u4e13\u95e8\u9488\u5bf9\u5373\u68a6AI\u4f18\u5316\u63d0\u793a\u8bcd\u683c\u5f0f\n\n\u3010\u4e3a\u4ec0\u4e48\u8981\u5355\u72ec\u751f\u6210\u5373\u68a6\u63d0\u793a\u8bcd\uff1f\u3011\n\u5373\u68a6AI \u548c Veo3 \u7684\u63d0\u793a\u8bcd\u98ce\u683c\u4e0d\u540c\uff1a\n- Veo3\uff1a\u82f1\u6587\uff0c\u5f3a\u8c03\u7535\u5f71\u672f\u8bed\uff08lens\u3001audio\u7b49\uff09\n- \u5373\u68a6AI\uff1a\u4e2d\u6587\u6700\u4f73\uff0c\u5f3a\u8c03\u573a\u666f\u63cf\u8ff0\u548c\u60c5\u611f\u8868\u8fbe\n\n\u672c\u8282\u70b9\u5c06\u82f1\u6587 Veo3 \u98ce\u683c\u63d0\u793a\u8bcd\u6539\u4e3a\u4e2d\u6587\u5373\u68a6\u98ce\u683c\u3002\n\n\u3010Temperature 0.75\u3011\n\u63d0\u793a\u8bcd\u751f\u6210\u9700\u8981\u521b\u610f\u4e0e\u51c6\u786e\u6027\u7684\u5e73\u8861\uff0c\n0.75 \u6bd4\u751f\u6210\u521b\u610f\uff080.9\uff09\u66f4\u7a33\u5b9a\uff0c\u786e\u4fdd\u63d0\u793a\u8bcd\u7ed3\u6784\u5b8c\u6574\u3002\n\n\u3010\u8f93\u51fa\u3011\n$json.choices[0].message.content \u2192 \u5373\u68a6\u63d0\u793a\u8bcd\u6587\u5b57",
"position": [
2512,
-128
],
"parameters": {
"url": "https://api.deepseek.com/v1/chat/completions",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"model\": $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.deepseekModel,\n \"messages\": [\n {\n \"role\": \"system\",\n \"content\": \"\u4f60\u662f\u4e00\u4f4d\u4e13\u4e3a\u5373\u68a6AI\uff08Jimeng\uff09\u5199\u89c6\u9891\u63d0\u793a\u8bcd\u7684\u4e13\u5bb6\u3002\\n\\n\u5373\u68a6AI\u662f\u5b57\u8282\u8df3\u52a8\u51fa\u54c1\u7684\u6587\u751f\u89c6\u9891\u6a21\u578b\uff0c\u5bf9\u4e2d\u6587\u63d0\u793a\u8bcd\u7406\u89e3\u6781\u4f73\u3002\\n\\n\u4f60\u9700\u8981\u5c06\u4e00\u4e2a\u521b\u610f\u60f3\u6cd5\uff0c\u8f6c\u5316\u4e3a\u4e00\u6bb5\u7ed3\u6784\u5b8c\u6574\u7684\u5373\u68a6\u89c6\u9891\u63d0\u793a\u8bcd\u3002\\n\\n\u8f93\u51fa\u683c\u5f0f\uff08\u7eaf\u6587\u5b57\uff0c\u65e0\u4efb\u4f55\u6807\u9898\u6216\u5e8f\u53f7\uff09\uff1a\\n\u4e00\u6bb5\u8fde\u8d2f\u7684\u4e2d\u6587\u573a\u666f\u63cf\u8ff0\uff0850-100\u5b57\uff09\uff0c\u5305\u542b\uff1a\\n- \u4e3b\u89d2\u5916\u8c8c\u548c\u52a8\u4f5c\\n- \u573a\u666f\u73af\u5883\u548c\u65f6\u95f4\\n- \u955c\u5934\u8fd0\u52a8\uff08\u5982\uff1a\u624b\u6301\u955c\u5934\u3001\u63a8\u8fdb\u955c\u5934\u3001\u822a\u62cd\uff09\\n- \u753b\u9762\u98ce\u683c\uff08\u5199\u5b9e/\u7535\u5f71\u611f/\u7eaa\u5f55\u7247\uff09\\n- \u5149\u5f71\u548c\u8272\u8c03\u63cf\u8ff0\\n- \u4e3b\u89d2\u8bf4\u7684\u4e00\u53e5\u53f0\u8bcd\uff08\u7528\u5f15\u53f7\u6807\u51fa\uff09\\n\\n\u6ce8\u610f\uff1a\u76f4\u63a5\u8f93\u51fa\u63d0\u793a\u8bcd\uff0c\u4e0d\u8981\u4efb\u4f55\u89e3\u91ca\u6216\u524d\u8a00\u3002\"\n },\n {\n \"role\": \"user\",\n \"content\": \"=\u521b\u610f\uff1a{{ $('\u89e3\u6790\u521b\u610fJSON').first().json.idea_text }}\\n\u573a\u666f\u53c2\u8003\uff1a{{ $('\u89e3\u6790\u521b\u610fJSON').first().json.environment }}\"\n }\n ],\n \"max_tokens\": 600,\n \"temperature\": 0.75\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.deepseekApiKey }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "0a4ab4d1-41d8-4328-9ae4-859179759e6d",
"name": "\u5373\u68a6AI\uff1a\u63d0\u4ea4\u89c6\u9891\u4efb\u52a1",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 2 \u00b7 \u8282\u70b9\u2468 \u00b7 \u5373\u68a6AI \u63d0\u4ea4\u89c6\u9891\u751f\u6210\u4efb\u52a1 ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aCall Veo3 API to Generate Video\uff08FAL.ai Veo3\uff09\n\u65b0\u7248\uff1a\u5373\u68a6AI \u6587\u751f\u89c6\u9891 HTTP API\n\n\u3010\u5373\u68a6AI \u6587\u751f\u89c6\u9891\u63a5\u53e3\u3011\nPOST https://jimeng.jianying.com/mapi/v1/video/generate\n\n\u3010\u8bf7\u6c42\u53c2\u6570\u8bf4\u660e\u3011\n- req_key\uff1ajimeng_video_t2v\uff08\u6587\u751f\u89c6\u9891\uff0cText to Video\uff09\n \u5982\u9700\u56fe\u751f\u89c6\u9891\u6539\u4e3a\uff1ajimeng_video_s2v\uff08Image to Video\uff09\n- prompt\uff1aDeepSeek \u751f\u6210\u7684\u4e2d\u6587\u5373\u68a6\u63d0\u793a\u8bcd\n- aspect_ratio\uff1a9:16\uff08\u7ad6\u7248\uff0c\u9002\u5408\u6296\u97f3/TikTok/Reels\uff09\n- duration\uff1a8\uff08\u79d2\uff09\uff0c\u652f\u6301 4/8/16 \u79d2\n- fps\uff1a24\uff08\u7535\u5f71\u5e27\u7387\uff0c\u6d41\u7545\u81ea\u7136\uff09\n- resolution\uff1a1080p\uff08\u9ad8\u6e05\uff0c\u5373\u68a6\u652f\u6301\u6700\u9ad8 1080P\uff09\n\n\u3010\u8fd4\u56de\u6570\u636e\u3011\n{ code: 0, data: { task_id: 'xxx' } }\ntask_id \u7528\u4e8e\u67e5\u8be2\u89c6\u9891\u751f\u6210\u72b6\u6001\n\n\u3010\u26a0\ufe0f \u6ce8\u610f\u3011\n\u5373\u68a6 API \u5c5e\u4e8e\u5f02\u6b65\u63a5\u53e3\uff0c\u63d0\u4ea4\u540e\u7acb\u5373\u8fd4\u56de task_id\uff0c\n\u89c6\u9891\u5728\u540e\u53f0\u6e32\u67d3\uff0c\u9700\u8981\u7b49\u5f85\u540e\u624d\u80fd\u67e5\u8be2\u7ed3\u679c\u3002",
"position": [
1216,
272
],
"parameters": {
"url": "https://jimeng.jianying.com/mapi/v1/video/generate",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"req_key\": \"jimeng_video_t2v\",\n \"prompt\": $json.choices[0].message.content,\n \"aspect_ratio\": \"9:16\",\n \"duration\": 8,\n \"fps\": 24,\n \"resolution\": \"1080p\"\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.jimengApiKey }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "7ec88bf9-4c0f-492b-be53-cb08bfce0a74",
"name": "\u7b49\u5f85\u5373\u68a6\u6e32\u67d3\uff084\u5206\u949f\uff09",
"type": "n8n-nodes-base.wait",
"notes": "=== STEP 2 \u00b7 \u8282\u70b9\u2469 \u00b7 \u7b49\u5f85\u6e32\u67d3 ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aWait for Veo3 Processing\uff085\u5206\u949f\uff09\n\u65b0\u7248\uff1a\u7b49\u5f85\u5373\u68a6AI\u6e32\u67d3\uff084\u5206\u949f\uff0c\u5373\u68a6\u901f\u5ea6\u66f4\u5feb\uff09\n\n\u3010\u7b49\u5f85\u65f6\u95f4\u8bf4\u660e\u3011\n- 8\u79d2\u89c6\u9891\uff0c1080P\uff1a\u901a\u5e38 2-4 \u5206\u949f\n- 4\u5206\u949f\u662f\u4fdd\u5b88\u4f30\u8ba1\uff0c\u786e\u4fdd\u6e32\u67d3\u5b8c\u6210\n\n\u3010\u5982\u4f55\u8c03\u6574\u3011\n- \u5982\u679c\u7ecf\u5e38\u83b7\u53d6\u4e0d\u5230\u89c6\u9891\uff08status \u8fd8\u662f processing\uff09\u2192 \u6539\u4e3a 6 \u5206\u949f\n- \u5982\u679c\u60f3\u66f4\u5feb\uff08\u63a5\u53d7\u5076\u5c14\u5931\u8d25\uff09\u2192 \u6539\u4e3a 2 \u5206\u949f\n\n\u3010\u8fdb\u9636\u4f18\u5316\u3011\n\u53ef\u4ee5\u7528\u5faa\u73af\u8282\u70b9\u6bcf 30 \u79d2\u8f6e\u8be2\u4e00\u6b21\u72b6\u6001\uff0c\nstatus = completed \u65f6\u7acb\u5373\u7ee7\u7eed\uff0c\u8282\u7701\u7b49\u5f85\u65f6\u95f4\u3002",
"position": [
1472,
272
],
"parameters": {
"unit": "minutes",
"amount": 4
},
"typeVersion": 1.1
},
{
"id": "ffe29202-edca-424b-aaf5-e7fcf6bdf3cf",
"name": "\u5373\u68a6AI\uff1a\u83b7\u53d6\u89c6\u9891\u7ed3\u679c",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 2 \u00b7 \u8282\u70b9\u246a \u00b7 \u5373\u68a6AI \u67e5\u8be2\u89c6\u9891\u7ed3\u679c ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aRetrieve Final Video URL from Veo3\n\u65b0\u7248\uff1a\u5373\u68a6AI \u89c6\u9891\u72b6\u6001\u67e5\u8be2\u63a5\u53e3\n\n\u3010\u67e5\u8be2\u63a5\u53e3\u3011\nGET https://jimeng.jianying.com/mapi/v1/video/query?task_id={task_id}\n\n\u3010\u8fd4\u56de\u7ed3\u6784\u3011\n{\n code: 0,\n data: {\n task_id: 'xxx',\n status: 'completed', \u2190 \u5b8c\u6210\u6807\u5fd7\n video_url: 'https://...' \u2190 \u89c6\u9891\u4e0b\u8f7d\u5730\u5740\n }\n}\n\n\u3010status \u8bf4\u660e\u3011\n- processing\uff1a\u6e32\u67d3\u4e2d\uff08\u589e\u52a0\u7b49\u5f85\u65f6\u95f4\uff09\n- completed\uff1a\u5b8c\u6210\uff08video_url \u6709\u503c\uff09\n- failed\uff1a\u5931\u8d25\uff08\u68c0\u67e5 prompt \u662f\u5426\u8fdd\u89c4\uff09\n\n\u3010\u5173\u952e\u5b57\u6bb5\u5f15\u7528\u3011\n$json.data.video_url \u2192 \u89c6\u9891URL\uff0c\u4f20\u5165\u4e0b\u4e00\u4e2a\u8282\u70b9",
"position": [
1856,
272
],
"parameters": {
"url": "={{ 'https://jimeng.jianying.com/mapi/v1/video/query?task_id=' + $('\u5373\u68a6AI\uff1a\u63d0\u4ea4\u89c6\u9891\u4efb\u52a1').first().json.data.task_id }}",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.jimengApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "532be3d9-4856-4ac9-bb00-26aef6c0ba0a",
"name": "\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff1a\u8bb0\u5f55\u89c6\u9891URL",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 2 \u00b7 \u8282\u70b9\u246b \u00b7 \u66f4\u65b0\u98de\u4e66\u591a\u7ef4\u8868\u683c ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aGoogle Sheets: Log Final Video Output\n\u65b0\u7248\uff1a\u98de\u4e66\u591a\u7ef4\u8868\u683c PUT \u66f4\u65b0\u8bb0\u5f55\n\n\u3010\u63a5\u53e3\u8bf4\u660e\u3011\nPUT https://open.feishu.cn/open-apis/bitable/v1/apps/{appToken}/tables/{tableId}/records/{recordId}\n\n\u901a\u8fc7 record_id\uff08\u4fdd\u5b58\u521b\u610f\u65f6\u8fd4\u56de\uff09\u7cbe\u786e\u66f4\u65b0\u5bf9\u5e94\u884c\u3002\n\n\u3010\u66f4\u65b0\u5b57\u6bb5\u3011\n- production \u2192 'done'\uff08\u6807\u8bb0\u89c6\u9891\u5df2\u751f\u6210\uff09\n- final_output \u2192 \u5373\u68a6\u8fd4\u56de\u7684\u89c6\u9891URL\n- STATUS \u2192 '\u5f85\u53d1\u5e03'\n\n\u3010record_id \u6765\u6e90\u3011\n$('\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff1a\u4fdd\u5b58\u521b\u610f').first().json.data.record.record_id\n\u8fd9\u662f\u7b2c STEP 1 \u4fdd\u5b58\u521b\u610f\u65f6\u98de\u4e66\u8fd4\u56de\u7684\u8bb0\u5f55ID\u3002",
"position": [
2336,
272
],
"parameters": {
"url": "={{ 'https://open.feishu.cn/open-apis/bitable/v1/apps/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableAppToken + '/tables/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableTableId + '/records/' + $('\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff1a\u4fdd\u5b58\u521b\u610f').first().json.data.record.record_id }}",
"method": "PUT",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"fields\": {\n \"production\": \"done\",\n \"final_output\": $('\u5373\u68a6AI\uff1a\u83b7\u53d6\u89c6\u9891\u7ed3\u679c').first().json.data.video_url,\n \"STATUS\": \"\u5f85\u53d1\u5e03\"\n }\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u83b7\u53d6\u98de\u4e66\u8bbf\u95ee\u4ee4\u724c').first().json.tenant_access_token }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "77605bcd-7031-4f09-9ea5-f2a9915f9f36",
"name": "\u98de\u4e66\u591a\u7ef4\u8868\u683c\uff1a\u8bfb\u53d6\u5f85\u53d1\u5e03\u89c6\u9891",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 3 \u00b7 \u8282\u70b9\u246c \u00b7 \u4ece\u98de\u4e66\u591a\u7ef4\u8868\u683c\u8bfb\u53d6\u89c6\u9891 ===\n\n\u3010\u66ff\u4ee3\u539f\u8282\u70b9\u3011\n\u539f\u7248\uff1aGet my video\uff08Google Sheets \u8bfb\u53d6\uff09\n\u65b0\u7248\uff1a\u98de\u4e66\u591a\u7ef4\u8868\u683c\u641c\u7d22 API\uff0c\u7b5b\u9009\u5f85\u53d1\u5e03\u8bb0\u5f55\n\n\u3010\u63a5\u53e3\u8bf4\u660e\u3011\nPOST .../records/search\n\n\u3010\u7b5b\u9009\u6761\u4ef6\u3011\n- production = 'done'\uff1a\u89c6\u9891\u5df2\u751f\u6210\n- STATUS = '\u5f85\u53d1\u5e03'\uff1a\u5c1a\u672a\u53d1\u5e03\u5230\u793e\u4ea4\u5e73\u53f0\n\n\u3010\u8fd4\u56de\u6570\u636e\u7ed3\u6784\u3011\n{\n data: {\n items: [{\n record_id: 'xxx',\n fields: {\n idea: '...',\n caption: '...',\n final_output: 'https://video.url',\n ...\n }\n }]\n }\n}\n\n\u3010\u540e\u7eed\u5f15\u7528\u89c6\u9891URL\u3011\n$json.data.items[0].fields.final_output",
"position": [
1120,
752
],
"parameters": {
"url": "={{ 'https://open.feishu.cn/open-apis/bitable/v1/apps/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableAppToken + '/tables/' + $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.feishuBitableTableId + '/records/search' }}",
"method": "POST",
"options": {
"response": {
"response": {
"responseFormat": "json"
}
}
},
"jsonBody": "={{ {\n \"filter\": {\n \"conjunction\": \"and\",\n \"conditions\": [\n { \"field_name\": \"production\", \"operator\": \"is\", \"value\": [\"done\"] },\n { \"field_name\": \"STATUS\", \"operator\": \"is\", \"value\": [\"\u5f85\u53d1\u5e03\"] }\n ]\n },\n \"page_size\": 1\n} }}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "={{ 'Bearer ' + $('\u83b7\u53d6\u98de\u4e66\u8bbf\u95ee\u4ee4\u724c').first().json.tenant_access_token }}"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "e4f31e3e-5eda-44fb-8424-54a574482119",
"name": "\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e",
"type": "n8n-nodes-base.code",
"notes": "=== \u8282\u70b9\u8bf4\u660e ===\n\n\u5c06\u98de\u4e66\u591a\u7ef4\u8868\u683c\u8fd4\u56de\u7684\u8bb0\u5f55\u6574\u7406\u4e3a\u7edf\u4e00\u683c\u5f0f\uff0c\n\u4fdd\u6301\u4e0e\u539f\u7248 Google Sheets \u8282\u70b9\u8f93\u51fa\u5b57\u6bb5\u540d\u4e00\u81f4\uff0c\n\u786e\u4fdd\u4e0b\u6e38\u7684 Blotato \u53d1\u5e03\u8282\u70b9\u65e0\u9700\u4fee\u6539\u5f15\u7528\u8def\u5f84\u3002\n\n\u3010\u8f93\u51fa\u5b57\u6bb5\uff08\u517c\u5bb9\u539f\u7248\u5b57\u6bb5\u540d\uff09\u3011\n- final_output\uff1a\u89c6\u9891URL\uff08\u4e0a\u4f20Blotato\u7528\uff09\n- DESCRIPTION\uff1a\u53d1\u5e03\u6587\u6848\uff08\u5404\u5e73\u53f0\u53d1\u5e03\u7528\uff09\n- Titre\uff1a\u89c6\u9891\u6807\u9898\uff08YouTube\u7528\uff09\n- record_id\uff1a\u8bb0\u5f55ID\uff08\u66f4\u65b0\u72b6\u6001\u7528\uff09",
"position": [
1312,
752
],
"parameters": {
"jsCode": "// \u6574\u7406\u98de\u4e66\u591a\u7ef4\u8868\u683c\u8fd4\u56de\u7684\u8bb0\u5f55\uff0c\u65b9\u4fbf\u540e\u7eed\u8282\u70b9\u5f15\u7528\nconst items = $input.first().json.data?.items || [];\nif (!items.length) {\n throw new Error('\u6ca1\u6709\u627e\u5230\u5f85\u53d1\u5e03\u7684\u89c6\u9891\u8bb0\u5f55\uff0c\u8bf7\u68c0\u67e5\u591a\u7ef4\u8868\u683c\u6570\u636e');\n}\nconst record = items[0];\nconst fields = record.fields || {};\n\nreturn [{ json: {\n record_id: record.record_id,\n final_output: fields.final_output || '',\n DESCRIPTION: fields.caption || '',\n Titre: fields.idea || '',\n idea: fields.idea || '',\n caption: fields.caption || ''\n}}];"
},
"typeVersion": 2
},
{
"id": "2e5d1945-105a-4c83-a7d3-ff95ccef8c78",
"name": "\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID",
"type": "n8n-nodes-base.set",
"notes": "=== STEP 3 \u00b7 \u8282\u70b9\u246e \u00b7 \u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID\u914d\u7f6e ===\n\n\u3010\u4e0e\u539f\u7248\u5b8c\u5168\u76f8\u540c\uff0c\u4fdd\u7559\u6240\u6709\u5b57\u6bb5\u3011\n\n\u3010\u5982\u4f55\u83b7\u53d6\u5404\u5e73\u53f0 Account ID\u3011\n1. \u767b\u5f55 https://blotato.com\n2. \u8fdb\u5165 Settings \u2192 Connected Accounts\n3. \u8fde\u63a5\u5404\u5e73\u53f0\u8d26\u53f7\u540e\uff0c\u6bcf\u4e2a\u8d26\u53f7\u90fd\u6709\u4e00\u4e2a ID\n4. \u5c06\u5bf9\u5e94 ID \u586b\u5165\u672c\u8282\u70b9\n\n\u3010\u5b57\u6bb5\u8bf4\u660e\u3011\n- instagram_id\uff1aInstagram \u8d26\u53f7ID\n- youtube_id\uff1aYouTube \u9891\u9053ID\n- threads_id\uff1aThreads \u8d26\u53f7ID\n- tiktok_id\uff1aTikTok \u8d26\u53f7ID\n- facebook_id\uff1aFacebook \u8d26\u53f7ID\n- facebook_page_id\uff1aFacebook \u4e3b\u9875ID\uff08\u53d1\u4e3b\u9875\u7528\uff09\n- twitter_id\uff1aTwitter/X \u8d26\u53f7ID\n- linkedin_id\uff1aLinkedIn \u8d26\u53f7ID\n- pinterest_id\uff1aPinterest \u8d26\u53f7ID\n- pinterest_board_id\uff1aPinterest \u753b\u677fID\n- bluesky_id\uff1aBluesky \u8d26\u53f7ID\n\n\u3010\u4e0d\u9700\u8981\u53d1\u5e03\u7684\u5e73\u53f0\u3011\n\u5c06\u5bf9\u5e94\u53d1\u5e03\u8282\u70b9\u4ece\u5de5\u4f5c\u6d41\u4e2d\u65ad\u5f00\u8fde\u63a5\u5373\u53ef\uff0c\u65e0\u9700\u5220\u9664\u3002",
"position": [
1520,
752
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "s1",
"name": "instagram_id",
"type": "string",
"value": "YOUR_INSTAGRAM_ID"
},
{
"id": "s2",
"name": "youtube_id",
"type": "string",
"value": "YOUR_YOUTUBE_ID"
},
{
"id": "s3",
"name": "threads_id",
"type": "string",
"value": "YOUR_THREADS_ID"
},
{
"id": "s4",
"name": "tiktok_id",
"type": "string",
"value": "YOUR_TIKTOK_ID"
},
{
"id": "s5",
"name": "facebook_id",
"type": "string",
"value": "YOUR_FACEBOOK_ID"
},
{
"id": "s6",
"name": "facebook_page_id",
"type": "string",
"value": "YOUR_FACEBOOK_PAGE_ID"
},
{
"id": "s7",
"name": "twitter_id",
"type": "string",
"value": "YOUR_TWITTER_ID"
},
{
"id": "s8",
"name": "linkedin_id",
"type": "string",
"value": "YOUR_LINKEDIN_ID"
},
{
"id": "s9",
"name": "pinterest_id",
"type": "string",
"value": "YOUR_PINTEREST_ID"
},
{
"id": "s10",
"name": "pinterest_board_id",
"type": "string",
"value": "YOUR_PINTEREST_BOARD_ID"
},
{
"id": "s11",
"name": "bluesky_id",
"type": "string",
"value": "YOUR_BLUESKY_ID"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "ef384184-1505-4b84-a490-925894ecbbf9",
"name": "\u4e0a\u4f20\u89c6\u9891\u5230Blotato",
"type": "n8n-nodes-base.httpRequest",
"notes": "=== STEP 3 \u00b7 \u8282\u70b9\u246f \u00b7 \u4e0a\u4f20\u89c6\u9891\u5230 Blotato \u5a92\u4f53\u5e93 ===\n\n\u3010\u4e0e\u539f\u7248\u903b\u8f91\u76f8\u540c\uff0c\u4ec5\u4fee\u6539\u4e86API Key\u6765\u6e90\u548c\u89c6\u9891URL\u5f15\u7528\u8def\u5f84\u3011\n\n\u3010\u63a5\u53e3\u8bf4\u660e\u3011\nPOST https://backend.blotato.com/v2/media\n\u8bf7\u6c42\u4f53\uff1a{ url: '\u89c6\u9891\u4e0b\u8f7d\u5730\u5740' }\n\u8fd4\u56de\uff1a{ url: 'blotato\u5a92\u4f53URL' }\uff08\u540e\u7eed\u5404\u5e73\u53f0\u53d1\u5e03\u4f7f\u7528\u6b64URL\uff09\n\n\u3010\u89c6\u9891URL\u6765\u6e90\u3011\n$('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.final_output\n\u5373\u98de\u4e66\u591a\u7ef4\u8868\u683c\u4e2d final_output \u5b57\u6bb5\u7684\u5373\u68a6\u89c6\u9891URL\n\n\u3010Blotato API Key \u6765\u6e90\u3011\n\u4ece\u300c\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e\u300d\u8282\u70b9\u7edf\u4e00\u8bfb\u53d6\uff0c\u65e0\u9700\u5728\u6bcf\u4e2a\u8282\u70b9\u5355\u72ec\u586b\u5199\n\n\u3010\u6ce8\u610f\u3011\n\u89c6\u9891URL\u5fc5\u987b\u662f\u53ef\u76f4\u63a5\u8bbf\u95ee\u7684 MP4 \u94fe\u63a5\uff0c\n\u5373\u68a6\u8fd4\u56de\u7684 video_url \u6ee1\u8db3\u6b64\u8981\u6c42\u3002",
"position": [
1712,
752
],
"parameters": {
"url": "https://backend.blotato.com/v2/media",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "url",
"value": "={{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.final_output }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "e4ad6617-86de-42e5-b1b5-168d9ff1d6fb",
"name": "INSTAGRAM",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 Instagram Reels\u3002\n\u586b\u5165 Blotato \u540e\u53f0\u5bf9\u5e94\u7684 Instagram \u8d26\u53f7 ID\u3002",
"position": [
1520,
880
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.instagram_id }}\",\n \"target\": { \"targetType\": \"instagram\" },\n \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"instagram\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "8568f34d-40b1-40ed-aa8a-15d3363d9ad6",
"name": "YOUTUBE",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 YouTube Shorts\u3002\n\u9ed8\u8ba4\u4e3a unlisted\uff08\u4e0d\u516c\u5f00\uff09\uff0c\u6539\u4e3a public \u5373\u53ef\u516c\u5f00\u53d1\u5e03\u3002",
"position": [
1728,
880
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.youtube_id }}\",\n \"target\": {\n \"targetType\": \"youtube\",\n \"title\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.Titre }}\",\n \"privacyStatus\": \"unlisted\",\n \"shouldNotifySubscribers\": \"false\"\n },\n \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"youtube\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "0a10344d-9221-422b-a745-dd446fcdfc1b",
"name": "TIKTOK",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 TikTok\u3002\u5df2\u6807\u8bb0 isAiGenerated: true\uff0c\u7b26\u5408TikTok AI\u5185\u5bb9\u62ab\u9732\u8981\u6c42\u3002",
"position": [
1936,
880
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').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 \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"tiktok\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "6e01ebf6-1f02-4931-9a8f-9fd207020bcf",
"name": "FACEBOOK",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 Facebook \u4e3b\u9875\u3002\u9700\u540c\u65f6\u63d0\u4f9b facebook_id\uff08\u8d26\u53f7\uff09\u548c facebook_page_id\uff08\u4e3b\u9875\uff09\u3002",
"position": [
1520,
1024
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.facebook_id }}\",\n \"target\": {\n \"targetType\": \"facebook\",\n \"pageId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.facebook_page_id }}\"\n },\n \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"facebook\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "1161fb96-af7a-48a0-9bda-75fcb6f66681",
"name": "THREADS",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 Threads\uff08Meta\uff09\u3002",
"position": [
1728,
1024
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.threads_id }}\",\n \"target\": { \"targetType\": \"threads\" },\n \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"threads\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "d9d1705c-04f9-4911-bc66-4645a8058499",
"name": "TWETTER",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 Twitter/X\u3002\uff08\u8282\u70b9\u540d\u79f0\u4fdd\u7559\u539f\u7248\u62fc\u5199 TWETTER\uff0c\u65b9\u4fbf\u4e0e\u539f\u7248\u5bf9\u5e94\uff09",
"position": [
1936,
1024
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.twitter_id }}\",\n \"target\": { \"targetType\": \"twitter\" },\n \"content\": {\n \"text\": \"{{ $('\u6574\u7406\u89c6\u9891\u8bb0\u5f55\u6570\u636e').first().json.DESCRIPTION }}\",\n \"platform\": \"twitter\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n }\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "={{ $('\u5de5\u4f5c\u6d41\u5bc6\u94a5\u914d\u7f6e').first().json.blotatoApiKey }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "eba58c18-ba83-421d-87ec-c4d3b00ad279",
"name": "LINKEDIN",
"type": "n8n-nodes-base.httpRequest",
"notes": "\u53d1\u5e03\u5230 LinkedIn\u3002",
"position": [
1520,
1168
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"{{ $('\u5206\u914d\u793e\u4ea4\u5a92\u4f53\u8d26\u53f7ID').item.json.linkedin_id }}\",\n \"target\": { \"targetTyp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow turns Feishu bot messages into a human-in-the-loop short-video production pipeline, using Tavily for web search, DeepSeek for topic and script generation, Jimeng AI for text-to-video, and Blotato to publish the approved video to TikTok, Instagram, and YouTube…
Source: https://n8n.io/workflows/18117/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automates bulk email campaigns with built-in validation, deliverability protection, and smart send-time optimization.
Universal Lead Processing Workflow. Uses googleSheets, gmail, httpRequest, gmailTrigger. Webhook trigger; 34 nodes.
This workflow is designed to manage the assignment and validation of unique QR code coupons within a lead generation system with SuiteCRM.
This workflow acts as an instant SDR that replies to new inbound leads across multiple channels in real time. It first captures and normalizes all incoming lead data into a unified structure. The work
AI Lead Qualification & Roting System. Uses httpRequest, twilio, airtable. Webhook trigger; 26 nodes.