Gemini、FAL、Google Workspaceを使って製品動画を自動生成

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、16個のノードを含みます。主にWait, Filter, GoogleDrive, HttpRequest, GoogleSheetsなどのノードを使用。 Gemini、FAL、Google Workspaceを使って製品動画の自動生成

前提条件
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "783d2046f405cc6ecb20ef185376ed1023323a3da628b9d8156b1fb75c75e037"
  },
  "nodes": [
    {
      "id": "06fc66f7-c12e-443c-bfdb-1339128e0dec",
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        0,
        368
      ],
      "parameters": {
        "event": "rowAdded",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "=xxxx"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "=xxxxxx"
        }
      },
      "credentials": {
        "googleSheetsTriggerOAuth2Api": {
          "id": "yThtJbXk01Imf6iZ",
          "name": "Google Sheets Trigger account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4f833098-8f46-457f-9e47-5e273b831de4",
      "name": "ファイルをダウンロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        464,
        368
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "={{ $json.link_image }}",
          "__regex": "https:\\/\\/(?:drive|docs)\\.google\\.com(?:\\/.*|)\\/d\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "7ksMk3zwMvT2CToN",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "27356824-4c60-47f8-9c25-846d2716bd25",
      "name": "ファイルから抽出",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        688,
        368
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "8d2848d5-b2e5-49a7-9480-526ae86212b6",
      "name": "ファイルに変換",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1168,
        368
      ],
      "parameters": {
        "options": {},
        "operation": "toBinary",
        "sourceProperty": "=candidates[0].content.parts[0].inlineData.data"
      },
      "typeVersion": 1.1
    },
    {
      "id": "2491f22b-31e8-4190-91ce-b3ef4889ae14",
      "name": "ファイルをアップロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1424,
        368
      ],
      "parameters": {
        "name": "={{ $now }}",
        "driveId": {
          "__rl": true,
          "mode": "id",
          "value": "=My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "=xxxxx"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "7ksMk3zwMvT2CToN",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "dac990c2-64a1-4e13-b9d4-ffbeb890f90c",
      "name": "シートの行を更新",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2816,
        368
      ],
      "parameters": {
        "columns": {
          "value": {
            "STT": "={{ $('Google Sheets Trigger').item.json.STT }}",
            "status": "finished",
            "link_video": "={{ $json.webViewLink }}"
          },
          "schema": [
            {
              "id": "STT",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "STT",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "link_image",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "link_image",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "note",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "note",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "link_video",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "link_video",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "STT"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WCta4mwXQB0vY1Etre78IrVouruy6gRRe1mToswv6v8/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "=xxxx"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "urlO8dciDPm5B2zv",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "82b056de-b2ac-4575-95b0-6bf1a10f4549",
      "name": "付箋 — 概要",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 5,
        "width": 680,
        "height": 320,
        "content": "## Workflow Overview\n**Purpose:** Auto-generate branded product/ad videos directly from Google Sheets rows.\n**Trigger:** A new row is added with an image link (Google Sheets Trigger - rowAdded).\n**Steps:**\n1) Download image from Google Drive → Extract base64.\n2) Call Gemini API to create an ad-style image variant.\n3) Convert & upload the generated image to Drive (images folder).\n4) Send the image to FAL (image-to-video) to create a short clip.\n5) Poll FAL response URL until status = completed, then download the video.\n6) Upload video to Drive (videos folder) and update the sheet with the video link.\n\n**Result:** A fully automated pipeline: a spreadsheet row → final video asset."
      },
      "typeVersion": 1
    },
    {
      "id": "e93e737c-4712-46ed-9511-3a054cd34818",
      "name": "付箋 — セットアップ",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1120,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 680,
        "height": 280,
        "content": "## Setup Checklist\n- APIs & Keys: Google Sheets, Google Drive, **Gemini API key**, **FAL API key** (use Credentials; do not hardcode).\n- Google Drive: set folder IDs in the two **Upload file** nodes (image/video destinations).\n- Sheet columns (minimum): `STT`, `link_image`, `link_video`, `status`, `note`.\n- Trigger: runs when a new row is added.\n- Quick Test: add a row with a valid `link_image` → image generated → video uploaded → `link_video` written back."
      },
      "typeVersion": 1
    },
    {
      "id": "9d4202cd-993b-4f9c-b190-4058e827c9f9",
      "name": "付箋 — 注意点とヒント",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2208,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 680,
        "height": 300,
        "content": "## Notes & Tips\n- Security: keep `x-goog-api-key` and FAL `Authorization` in Credentials (`{{$credentials...}}`).\n- Polling: FAL is async; poll `response_url` until `status == completed` before downloading the video.\n- Links: if an API needs a direct file URL, use Drive direct-download (`uc?export=download&id=<FILE_ID>`).\n- Prompts: tweak Gemini text for brand voice; change FAL `prompt` (e.g., replace \"slow moving\").\n- Error Handling: add `If` + `Wait` + retries; log failures to the sheet (`status`, `note`).\n- Scale: paste multiple rows to batch-generate creatives."
      },
      "typeVersion": 1
    },
    {
      "id": "c1d73203-257e-4988-816d-393a3ca6fb6a",
      "name": "フィルター",
      "type": "n8n-nodes-base.filter",
      "position": [
        208,
        368
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ca5a2759-ec88-45a8-b037-58341ec5da2c",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "run"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "618d9398-d6f6-4b6a-8c8b-de030f213c49",
      "name": "待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        1856,
        368
      ],
      "webhookId": "214d0cab-c68b-473d-8eba-cc1c11420c0a",
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "28ff8eda-a56e-4314-a980-b95ac06cb740",
      "name": "モデルで製品画像を作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        912,
        368
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image-preview:generateContent",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "jsonBody": "={\n  \"contents\": [\n    {\n      \"parts\": [\n        {\n          \"text\": \"Create a image with model and product attached to create ads videos with this require: {{ JSON.stringify($('Filter').item.json.note).slice(1,-1) }}\"\n        },\n        {\n          \"inline_data\": {\n            \"mime_type\": \"image/jpeg\",\n            \"data\": \"{{ $json.data }}\"\n          }\n        }\n      ]\n    }\n  ]\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "x-goog-api-key",
              "value": "xxxxxx"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f6cbccbc-9b32-40c2-9735-0915e44e684e",
      "name": "動画を作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1648,
        368
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/ltxv-13b-098-distilled/image-to-video",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "prompt",
              "value": "=slow motion,  {{ $('Filter').item.json.note }}"
            },
            {
              "name": "image_url",
              "value": "={{ $json.webContentLink }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key xxxxx"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0b700727-2e6b-4ce8-989d-ab18f1a5d887",
      "name": "動画リンクを取得",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2080,
        368
      ],
      "parameters": {
        "url": "={{ $json.response_url }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Key xxxx"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c5c00e9c-b56a-459b-a00c-151316707c4f",
      "name": "動画をダウンロード",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2336,
        368
      ],
      "parameters": {
        "url": "={{ $json.video.url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "306165a7-4320-4fcc-a03f-6cd424074c29",
      "name": "動画をアップロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        2592,
        368
      ],
      "parameters": {
        "name": "={{ $now }}",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "id",
          "value": "=xxxx"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "7ksMk3zwMvT2CToN",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    }
  ],
  "pinData": {},
  "connections": {
    "618d9398-d6f6-4b6a-8c8b-de030f213c49": {
      "main": [
        [
          {
            "node": "0b700727-2e6b-4ce8-989d-ab18f1a5d887",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c1d73203-257e-4988-816d-393a3ca6fb6a": {
      "main": [
        [
          {
            "node": "4f833098-8f46-457f-9e47-5e273b831de4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2491f22b-31e8-4190-91ce-b3ef4889ae14": {
      "main": [
        [
          {
            "node": "f6cbccbc-9b32-40c2-9735-0915e44e684e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6cbccbc-9b32-40c2-9735-0915e44e684e": {
      "main": [
        [
          {
            "node": "618d9398-d6f6-4b6a-8c8b-de030f213c49",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "306165a7-4320-4fcc-a03f-6cd424074c29": {
      "main": [
        [
          {
            "node": "dac990c2-64a1-4e13-b9d4-ffbeb890f90c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4f833098-8f46-457f-9e47-5e273b831de4": {
      "main": [
        [
          {
            "node": "27356824-4c60-47f8-9c25-846d2716bd25",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c5c00e9c-b56a-459b-a00c-151316707c4f": {
      "main": [
        [
          {
            "node": "306165a7-4320-4fcc-a03f-6cd424074c29",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0b700727-2e6b-4ce8-989d-ab18f1a5d887": {
      "main": [
        [
          {
            "node": "c5c00e9c-b56a-459b-a00c-151316707c4f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8d2848d5-b2e5-49a7-9480-526ae86212b6": {
      "main": [
        [
          {
            "node": "2491f22b-31e8-4190-91ce-b3ef4889ae14",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "27356824-4c60-47f8-9c25-846d2716bd25": {
      "main": [
        [
          {
            "node": "28ff8eda-a56e-4314-a980-b95ac06cb740",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "06fc66f7-c12e-443c-bfdb-1339128e0dec": {
      "main": [
        [
          {
            "node": "c1d73203-257e-4988-816d-393a3ca6fb6a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "28ff8eda-a56e-4314-a980-b95ac06cb740": {
      "main": [
        [
          {
            "node": "8d2848d5-b2e5-49a7-9480-526ae86212b6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - コンテンツ作成, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数16
カテゴリー2
ノードタイプ9
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Cong Nguyen

Cong Nguyen

@cong-nguyen

I’m a developer specialized in building web and mobile applications with AI integration and intelligent automation. With a solid background in data science, I help businesses build smarter digital solutions using cutting-edge technologies.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34