Recap AI - Veo 3.1 电商产品动画生成器
高级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 18 个节点。主要使用 If, Set, Wait, Limit, SplitOut 等节点。 基于Veo 3.1的电商产品目录AI视频生成器
前置要求
- •Google Drive API 凭证
- •可能需要目标 API 的认证凭证
使用的节点 (18)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "yFjuw9jOUreOhQqX",
"meta": {
"instanceId": "06e5009344f682419c20ccd4ecdcb5223bbb91761882af93ac6d468dbc2cbf8d",
"templateCredsSetupCompleted": true
},
"name": "The Recap AI - Veo 3.1 eCommerce Product Animator",
"tags": [],
"nodes": [
{
"id": "e45c0439-ea4a-40ce-b3ab-b969b8e7260d",
"name": "form_trigger",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
16
],
"webhookId": "6a5a7158-ef35-462f-ad48-fc81e7ec8ed6",
"parameters": {
"options": {},
"formTitle": "eCommerce Catelog Form",
"formFields": {
"values": [
{
"fieldLabel": "Url",
"placeholder": "Enter a product collection url",
"requiredField": true
}
]
}
},
"typeVersion": 2.3
},
{
"id": "70d1e127-5529-4bf0-a805-dcd958f8e088",
"name": "scrape_catalog_collection",
"type": "@mendable/n8n-nodes-firecrawl.firecrawl",
"position": [
336,
16
],
"parameters": {
"url": "={{ $json.Url }}",
"operation": "scrape",
"scrapeOptions": {
"options": {
"formats": {
"format": [
{
"type": "json",
"prompt": "Extract an array of products from this page. For each product, you must extract the EXACT image URL string as it appears in the HTML source code. Look in the <img> tag's src attribute or srcset attribute and copy the complete URL exactly as written in the HTML, including the full domain, path, file extension, and all query parameters. Do not modify, shorten, or transform the URL in any way.",
"schema": "={\n \"type\": \"object\",\n \"properties\": {\n \"products\": {\n \"type\": \"array\",\n \"description\": \"List of e-commerce products found on the page extracted from the main grid or list of products.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\n \"type\": \"string\",\n \"description\": \"The product title or name\"\n },\n \"image_url\": {\n \"type\": \"string\",\n \"description\": \"The main product image URL. Look for the <img> tag within the product container and extract the full URL from the 'src' attribute. If the src is relative (starts with /), look for the absolute URL in 'data-src' or the first URL in 'srcset' attribute before any space or comma. Must be the complete URL as it appears in the HTML.\"\n }\n },\n \"required\": [\n \"title\",\n \"image_url\"\n ]\n }\n }\n },\n \"required\": [\n \"products\"\n ]\n}"
}
]
},
"headers": {},
"timeout": 180000
}
},
"requestOptions": {}
},
"credentials": {
"firecrawlApi": {
"id": "tTXd52Qm4ZR6N7sq",
"name": "Firecrawl"
}
},
"typeVersion": 1
},
{
"id": "5364291b-8129-4a7f-8491-e2995671d306",
"name": "split_products",
"type": "n8n-nodes-base.splitOut",
"position": [
640,
16
],
"parameters": {
"options": {},
"fieldToSplitOut": "data.json.products"
},
"typeVersion": 1
},
{
"id": "51569287-6a9e-41e0-9c87-7dc10dfe33f5",
"name": "limit_products",
"type": "n8n-nodes-base.limit",
"position": [
960,
16
],
"parameters": {},
"typeVersion": 1
},
{
"id": "25f8371f-c753-4154-b1e1-20611236a395",
"name": "iterate_products",
"type": "n8n-nodes-base.splitInBatches",
"position": [
0,
256
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "edb76de8-0373-4209-a2af-a0c179355a2e",
"name": "fetch_image",
"type": "n8n-nodes-base.httpRequest",
"position": [
208,
272
],
"parameters": {
"url": "={{ $json.image_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "552e7fad-093e-4127-af03-e3a6a067ea21",
"name": "generate_video",
"type": "n8n-nodes-base.httpRequest",
"position": [
0,
544
],
"parameters": {
"url": "https://generativelanguage.googleapis.com/v1beta/models/veo-3.1-generate-preview:predictLongRunning",
"method": "POST",
"options": {},
"jsonBody": "={\n \"instances\": [\n {\n \"prompt\": {{ JSON.stringify($node['set_prompt'].json.prompt) }},\n \"image\": {\n \"mimeType\": \"image/png\",\n \"bytesBase64Encoded\": \"{{ $node[\"convert_to_base64\"].json.data }}\"\n },\n \"lastFrame\": {\n \"mimeType\": \"image/png\",\n \"bytesBase64Encoded\": \"{{ $node[\"convert_to_base64\"].json.data }}\"\n }\n }\n ],\n \"parameters\": {\n \"durationSeconds\": 8,\n \"aspectRatio\": \"9:16\",\n \"personGeneration\": \"allow_adult\"\n }\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "abcMckGk9RG9i0Ba",
"name": "Google Gemini"
}
},
"typeVersion": 4.2
},
{
"id": "7d82508e-1616-4a06-801b-ce53f3ffd8e7",
"name": "set_prompt",
"type": "n8n-nodes-base.set",
"position": [
960,
272
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "05043e09-0e28-4052-9172-3af905370437",
"name": "prompt",
"type": "string",
"value": "Generate a video that is going to be featured on a product page of an e-commerce store. This is going to be for a clothing or fashion brand. This video must feature this exact same person that is provided on the first and last frame reference images and the article of clothing in the first and last frame reference images.\n\nIn this video, the model should strike multiple poses to feature the article of clothing so that a person looking at this product on an ecommerce website has a great idea how this article of clothing will look and feel.\n\nConstraints:\n- No music or sound effects.\n- The final output video should NOT have any audio.\n- Muted audio.\n- Muted sound effects."
}
]
}
},
"typeVersion": 3.4
},
{
"id": "aa7b7344-1415-4c4e-ba1a-f1f92c2e0741",
"name": "fetch_status",
"type": "n8n-nodes-base.httpRequest",
"position": [
384,
544
],
"parameters": {
"url": "=https://generativelanguage.googleapis.com/v1beta/{{ $json.name }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "abcMckGk9RG9i0Ba",
"name": "Google Gemini"
}
},
"typeVersion": 4.2
},
{
"id": "f0607976-25d4-4a8a-b20d-e904e7944e8b",
"name": "wait",
"type": "n8n-nodes-base.wait",
"position": [
208,
544
],
"webhookId": "c68c0f13-ed52-4cc2-86f0-a795b67f6b31",
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "6978d89e-0390-4b98-a11d-a456b085c3fc",
"name": "check_response",
"type": "n8n-nodes-base.if",
"position": [
560,
544
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d978d0ad-9e4b-49ad-8992-40ab64744d1e",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.response }}",
"rightValue": ""
},
{
"id": "e4af1378-f9fe-4d4c-9c46-5cb3a9a06f06",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.response.generateVideoResponse.generatedSamples }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ad856564-280a-4cd1-ab73-ccd25f62458c",
"name": "download_video",
"type": "n8n-nodes-base.httpRequest",
"position": [
768,
528
],
"parameters": {
"url": "={{ $json.response.generateVideoResponse.generatedSamples[0].video.uri }}",
"options": {},
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth"
},
"credentials": {
"httpHeaderAuth": {
"id": "abcMckGk9RG9i0Ba",
"name": "Google Gemini"
}
},
"typeVersion": 4.2
},
{
"id": "fa0c2b0f-84a5-49e1-922d-7595157203f8",
"name": "convert_to_base64",
"type": "n8n-nodes-base.extractFromFile",
"position": [
384,
272
],
"parameters": {
"options": {},
"operation": "binaryToPropery"
},
"typeVersion": 1
},
{
"id": "19358bdb-61ce-454e-bf40-6e0760429c6e",
"name": "upload_source_image",
"type": "n8n-nodes-base.googleDrive",
"position": [
768,
272
],
"parameters": {
"name": "=Source Image #{{ $runIndex + 1 }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "url",
"value": "https://drive.google.com/drive/u/0/folders/1_BnKHFYsaar9LvYRQ9B9FJ11lEoK7jyx"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "PgwI1k1VFnoEhOi6",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "bb63dd72-17b0-4416-9939-d9b8b359acd6",
"name": "upload_output_video",
"type": "n8n-nodes-base.googleDrive",
"position": [
960,
560
],
"parameters": {
"name": "=Output Video #{{ $runIndex + 1 }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "url",
"value": "https://drive.google.com/drive/u/0/folders/1_BnKHFYsaar9LvYRQ9B9FJ11lEoK7jyx"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "PgwI1k1VFnoEhOi6",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "8c9f60d6-1b14-4770-a585-0f6aa4c8a9e0",
"name": "convert_to_binary",
"type": "n8n-nodes-base.convertToFile",
"position": [
560,
272
],
"parameters": {
"options": {},
"operation": "toBinary",
"sourceProperty": "data"
},
"typeVersion": 1.1
},
{
"id": "c3c48c6e-0445-4840-84e6-5af4e4c46792",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-96,
-144
],
"parameters": {
"color": 4,
"width": 1296,
"height": 960,
"content": "## Veo 3.1 eCommerce Product Catalog Animator\n1. Input a catalog page url for an online store\n2. Firecrawl scrapes product images and extracts product images\n3. Iterate over each image and make Gemini API call to Veo 3.1 to generate animated product video"
},
"typeVersion": 1
},
{
"id": "c794813d-f350-4bd2-aae1-86c618794872",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-736,
-144
],
"parameters": {
"width": 624,
"height": 960,
"content": "Transform static product images from any online store into engaging animated videos using Google's Veo 3.1 AI. Simply submit a catalog page URL and automatically generate professional product showcase videos where models pose and move to display clothing and fashion items from multiple angles - perfect for elevating product pages with dynamic content that increases conversion rates.\n\n## How it works\n\n* **Submit any eCommerce catalog page URL** through a simple web form (works with Shopify, WooCommerce, and most online stores)\n* **Automatically scrapes product listings** using Firecrawl to extract product titles and high-quality images\n* **Batch processes product images** with intelligent iteration through your catalog inventory\n* **Generates 8-second animated videos** using Google Veo 3.1 where models wearing the clothing strike multiple poses to showcase fit and style\n* **Polls for completion status** and automatically downloads finished videos when ready\n* **Organizes assets in Google Drive** with source images and output videos in a structured folder system\n\nThe workflow creates professional product videos that show garments from different angles with natural model movements, giving shoppers a much better sense of how items look and fit compared to static photos alone.\n\n## Set up steps\n\n1. **Connect API credentials**: Firecrawl account for web scraping, Google Gemini/Veo API for video generation, Google Drive for asset storage\n2. **Create Google Drive output folder** where source images and generated videos will be automatically saved\n3. **Configure folder ID** in the workflow to point to your designated Drive location\n4. **Adjust product limit** (optional) to control how many catalog items to process per run\n5. **Deploy the form webhook** to get your submission URL for catalog page processing\n\n**Time investment**: ~15-20 minutes for API setup and configuration, then just submit catalog URLs to automatically generate video content for your entire product line.\n\n**Requirements**: Firecrawl account for web scraping, Google Cloud account with Veo 3.1 API access (currently in preview), Google Drive account. Works best with fashion and apparel catalogs.\n\n**Note**: Video generation takes approximately 10 seconds per product as Veo processes each request. The workflow includes automatic polling to handle the async video generation process."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "149a657d-edf4-4503-9116-191b20af5464",
"connections": {
"f0607976-25d4-4a8a-b20d-e904e7944e8b": {
"main": [
[
{
"node": "aa7b7344-1415-4c4e-ba1a-f1f92c2e0741",
"type": "main",
"index": 0
}
]
]
},
"7d82508e-1616-4a06-801b-ce53f3ffd8e7": {
"main": [
[
{
"node": "552e7fad-093e-4127-af03-e3a6a067ea21",
"type": "main",
"index": 0
}
]
]
},
"edb76de8-0373-4209-a2af-a0c179355a2e": {
"main": [
[
{
"node": "fa0c2b0f-84a5-49e1-922d-7595157203f8",
"type": "main",
"index": 0
}
]
]
},
"aa7b7344-1415-4c4e-ba1a-f1f92c2e0741": {
"main": [
[
{
"node": "6978d89e-0390-4b98-a11d-a456b085c3fc",
"type": "main",
"index": 0
}
]
]
},
"e45c0439-ea4a-40ce-b3ab-b969b8e7260d": {
"main": [
[
{
"node": "70d1e127-5529-4bf0-a805-dcd958f8e088",
"type": "main",
"index": 0
}
]
]
},
"6978d89e-0390-4b98-a11d-a456b085c3fc": {
"main": [
[
{
"node": "ad856564-280a-4cd1-ab73-ccd25f62458c",
"type": "main",
"index": 0
}
],
[
{
"node": "f0607976-25d4-4a8a-b20d-e904e7944e8b",
"type": "main",
"index": 0
}
]
]
},
"ad856564-280a-4cd1-ab73-ccd25f62458c": {
"main": [
[
{
"node": "bb63dd72-17b0-4416-9939-d9b8b359acd6",
"type": "main",
"index": 0
}
]
]
},
"552e7fad-093e-4127-af03-e3a6a067ea21": {
"main": [
[
{
"node": "f0607976-25d4-4a8a-b20d-e904e7944e8b",
"type": "main",
"index": 0
}
]
]
},
"51569287-6a9e-41e0-9c87-7dc10dfe33f5": {
"main": [
[
{
"node": "25f8371f-c753-4154-b1e1-20611236a395",
"type": "main",
"index": 0
}
]
]
},
"5364291b-8129-4a7f-8491-e2995671d306": {
"main": [
[
{
"node": "51569287-6a9e-41e0-9c87-7dc10dfe33f5",
"type": "main",
"index": 0
}
]
]
},
"25f8371f-c753-4154-b1e1-20611236a395": {
"main": [
[],
[
{
"node": "edb76de8-0373-4209-a2af-a0c179355a2e",
"type": "main",
"index": 0
}
]
]
},
"fa0c2b0f-84a5-49e1-922d-7595157203f8": {
"main": [
[
{
"node": "8c9f60d6-1b14-4770-a585-0f6aa4c8a9e0",
"type": "main",
"index": 0
}
]
]
},
"8c9f60d6-1b14-4770-a585-0f6aa4c8a9e0": {
"main": [
[
{
"node": "19358bdb-61ce-454e-bf40-6e0760429c6e",
"type": "main",
"index": 0
}
]
]
},
"bb63dd72-17b0-4416-9939-d9b8b359acd6": {
"main": [
[
{
"node": "25f8371f-c753-4154-b1e1-20611236a395",
"type": "main",
"index": 0
}
]
]
},
"19358bdb-61ce-454e-bf40-6e0760429c6e": {
"main": [
[
{
"node": "7d82508e-1616-4a06-801b-ce53f3ffd8e7",
"type": "main",
"index": 0
}
]
]
},
"70d1e127-5529-4bf0-a805-dcd958f8e088": {
"main": [
[
{
"node": "5364291b-8129-4a7f-8491-e2995671d306",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
WordPress博客自动化专业版(深度研究)v2.1市场
使用GPT-4o、Perplexity AI和多语言支持自动化SEO优化的博客创建
If
Set
Xml
+
If
Set
Xml
125 节点Daniel Ng
内容创作
使用OpenAI和Firecrawl从产品URL创建AI生成的Meta广告活动
使用OpenAI和Firecrawl从产品URL创建AI生成的Meta广告活动
If
Set
Code
+
If
Set
Code
40 节点Adam Crafts
内容创作
使用OpenAI、RunwayML和ElevenLabs自动化无脸短视频
使用OpenAI、RunwayML和ElevenLabs自动化无脸短视频:从脚本到社交媒体
Set
Code
Wait
+
Set
Code
Wait
56 节点LeeWei
内容创作
LinkedIn和X病毒内容自动引擎
使用AI生成和发布自动创建LinkedIn和X的病毒内容
If
Set
Wait
+
If
Set
Wait
156 节点Diptamoy Barman
内容创作
使用 Apify、GPT-4o 和 Facebook
使用 Apify、GPT-4o 和 Facebook 广告库进行竞争广告研究与图像生成
Set
Wait
Limit
+
Set
Wait
Limit
32 节点Nick Saraev
内容创作
使用 Apify、GPT-4 和 Google Drive 从竞争对手生成 AI
使用 Apify、GPT-4 和 Google Drive 从竞争对手生成 AI Facebook 广告变体
Set
Wait
Limit
+
Set
Wait
Limit
29 节点Electrabot
内容创作
工作流信息
难度等级
高级
节点数量18
分类2
节点类型13
作者
Lucas Walter
@lucaswalterChief Automation Officer at The Recap AI. I build the AI systems and agents that power our business and teach others how to use n8n. Check out our YouTube channel linked below!
外部链接
在 n8n.io 查看 →
分享此工作流