Recap AI - Veo 3.1 电商produit动画générateur

Avancé

Ceci est unContent Creation, Multimodal AIworkflow d'automatisation du domainecontenant 18 nœuds.Utilise principalement des nœuds comme If, Set, Wait, Limit, SplitOut. 基于Veo 3.1de电商produit目录AI视频générateur

Prérequis
  • Informations d'identification Google Drive API
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "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": "Note adhésive",
      "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": "Note adhésive1",
      "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
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Création de contenu, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

Version professionnelle de l'automatisation de blog WordPress (recherche approfondie) v2.1 sur le marché
Automatisation de la création de blog optimisé pour le SEO avec GPT-4o, Perplexity AI et support multilingue
If
Set
Xml
+
If
Set
Xml
125 NœudsDaniel Ng
Création de contenu
Créer des campagnes publicitaires Meta générées par l'IA à partir d'URL de produits en utilisant OpenAI et Firecrawl
Créer des campagnes publicitaires Meta générées par l'IA à partir d'URL de produits avec OpenAI et Firecrawl
If
Set
Code
+
If
Set
Code
40 NœudsAdam Crafts
Création de contenu
Automatisation de courts métrages sans visage avec OpenAI, RunwayML et ElevenLabs
Automatisation de courts métrages sans visage : du script aux réseaux sociaux avec OpenAI, RunwayML et ElevenLabs
Set
Code
Wait
+
Set
Code
Wait
56 NœudsLeeWei
Création de contenu
Moteur automatisé de contenu viral pour LinkedIn et X
Création et publication automatique de contenu viral pour LinkedIn et X avec l'IA
If
Set
Wait
+
If
Set
Wait
156 NœudsDiptamoy Barman
Création de contenu
Mes workflows
Utiliser Apify, GPT-4o et la bibliothèque d'annonces Facebook pour la recherche concurrentielle publicitaire et la génération d'images
Set
Wait
Limit
+
Set
Wait
Limit
32 NœudsNick Saraev
Création de contenu
Générer des variantes IA de publicités Facebook pour la concurrence avec Apify, GPT-4 et Google Drive
Générer des variantes IA d'annonces Facebook pour la concurrence avec Apify, GPT-4 et Google Drive
Set
Wait
Limit
+
Set
Wait
Limit
29 NœudsElectrabot
Création de contenu
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds18
Catégorie2
Types de nœuds13
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Lucas Walter

Lucas Walter

@lucaswalter

Chief 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!

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34