スクリプトからAIボイスを生成してGoogleドライブにアップロード

上級

これはContent Creation, Multimodal AI分野の自動化ワークフローで、20個のノードを含みます。主にSet, Code, Filter, GoogleDrive, HttpRequestなどのノードを使用。 Gemini TTSでスクリプトからAI音声を生成し、Googleドライブにアップロード

前提条件
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "sJP7yYyMUuFkBxhP",
  "meta": {
    "instanceId": "8506a10572bce7322328454a2dc9c1df792a29ed1e0b40db7be90cf055b03a5a",
    "templateCredsSetupCompleted": true
  },
  "name": "Generate AI Voiceovers from Scripts and Upload to Google Drive",
  "tags": [],
  "nodes": [
    {
      "id": "b77d0479-251b-4dde-a8db-70dd5c1dcde9",
      "name": "ワークフロー実行時",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -656,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "420b8504-2cc1-4947-b53d-29fd0ae53d4b",
      "name": "ファイルに変換",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        592,
        32
      ],
      "parameters": {
        "options": {
          "fileName": "={{ $('Code1').item.json.safeFilename }}.pcm",
          "mimeType": "={{ $json.candidates[0].content.parts[0].inlineData.mimeType }}"
        },
        "operation": "toBinary",
        "sourceProperty": "candidates[0].content.parts[0].inlineData.data"
      },
      "typeVersion": 1.1
    },
    {
      "id": "3905f225-4b9d-4e47-bda4-b08002ed635b",
      "name": "ディスクからのファイル読み書き",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        784,
        32
      ],
      "parameters": {
        "options": {},
        "fileName": "=/Users/INSERT_YOUR_LOCAL_STORAGE_HERE/{{ $('Code1').item.json.safeFilename }}.pcm",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "88b59cbf-7949-4fb4-84cb-d36a866bbf43",
      "name": "コード1",
      "type": "n8n-nodes-base.code",
      "position": [
        176,
        32
      ],
      "parameters": {
        "jsCode": "// Get all the items coming into this node\nconst items = $items();\n\n// Loop through each item (this code works even if there's only one)\nfor (const item of items) {\n  \n  // 1. Get the original script text from the 'full_script_text' field.\n  const originalScript = item.json.full_script_text;\n  \n  // Get the row number to make the filename unique\n  const rowNumber = item.json.row_number;\n\n  // 2. Create the clean filename\n  //    - Convert to lowercase for consistency\n  //    - Replace any character that is NOT a letter or number with an underscore\n  //    - Shorten it to the first 60 characters to prevent it from being too long\n  const sanitizedScriptPart = originalScript\n    .toLowerCase()\n    .replace(/[^a-z0-9]/g, '_') \n    .substring(0, 60);\n\n  // 3. Combine the row number and the sanitized text to create a final, unique filename\n  const safeFilename = `${rowNumber}_${sanitizedScriptPart}`;\n\n  // 4. Add the new, safe filename back to the data\n  item.json.safeFilename = safeFilename;\n}\n\n// Return the modified data to the next node\nreturn items;"
      },
      "typeVersion": 2
    },
    {
      "id": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
      "name": "アイテムのループ処理",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -64,
        0
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "8f194775-656e-4687-afbb-507226a8fdb3",
      "name": "フィルター",
      "type": "n8n-nodes-base.filter",
      "position": [
        -272,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "51e34efc-ba22-404f-835a-4324f403bcbe",
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json['Voice Generated?'] }}",
              "rightValue": "Yes"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "be5453fc-c5e8-4591-b7d9-cd5a35b9582a",
      "name": "動画スクリプトの取得",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -464,
        0
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 539540410,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit#gid=539540410",
          "cachedResultName": "Text Overlays"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit?gid=539540410#gid=539540410"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "0XPHdQQ1kHd7hjJ5",
          "name": "thamjiangjun@gmail.com google sheet"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1decede0-d000-4a68-838c-ce708fc49b55",
      "name": "HTTP 音声生成リクエスト",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        384,
        32
      ],
      "parameters": {
        "url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-preview-tts:generateContent\n",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"contents\": [\n    {\n      \"parts\": [\n        {\n          \"text\": \"Say this script in a neutral <INSERT YOUR DESIRED ACCENT HERE> professional accent at a face pace enthusiastically: {{ $json.full_script_text }}\"\n        }\n      ]\n    }\n  ],\n  \"generationConfig\": {\n    \"responseModalities\": [\n      \"AUDIO\"\n    ],\n    \"speechConfig\": {\n      \"voiceConfig\": {\n        \"prebuiltVoiceConfig\": {\n          \"voiceName\": \"Kore\"\n        }\n      }\n    }\n  },\n  \"model\": \"gemini-2.5-flash-preview-tts\"\n}",
        "sendBody": true,
        "sendQuery": true,
        "specifyBody": "json",
        "queryParameters": {
          "parameters": [
            {
              "name": "key",
              "value": "INSERT YOUR API KEY HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3323cc73-9026-48bd-b951-763101a44280",
      "name": "ファイル名の抽出",
      "type": "n8n-nodes-base.set",
      "position": [
        960,
        32
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fe124702-e115-4be8-b5da-df6d01e1ddbe",
              "name": "fileName",
              "type": "string",
              "value": "={{ $json.fileName }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "648b7a61-af32-43d9-97f1-2189560cc47e",
      "name": "FFMPEG ファイル形式変換ローカルコード実行",
      "type": "n8n-nodes-base.code",
      "position": [
        1152,
        32
      ],
      "parameters": {
        "jsCode": "// Get the input data from the previous node\nconst inputData = $input.all()[0].json;\n\n// Use the EXISTING PCM file path from the input\nconst pcmFilePath = inputData.fileName; // \"/Users/jjtham/3_dream_of_a_marriage_free_from_painful_surprises__imagine_a_f.pcm\"\n\n// Generate the WAV output path by replacing .pcm with .wav\nconst wavFilePath = pcmFilePath.replace('.pcm', '.wav');\n\n// Build the ffmpeg command (quotes handle spaces in paths)\nconst ffmpegCommand = `ffmpeg -y -f s16le -ar 24000 -ac 1 -i \"${pcmFilePath}\" \"${wavFilePath}\"`;\n\nreturn {\n  json: {\n    pcmPath: pcmFilePath,\n    wavPath: wavFilePath,\n    command: ffmpegCommand\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "da306259-3612-41bd-99b0-91408c63e400",
      "name": "FFMPEG コード実行",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        1328,
        32
      ],
      "parameters": {
        "command": "={{ $json.command }}"
      },
      "typeVersion": 1
    },
    {
      "id": "2fabed55-983e-4420-b16c-f822697cadfa",
      "name": "ファイル出力をディスクに書き込み",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1520,
        32
      ],
      "parameters": {
        "options": {},
        "fileSelector": "={{ $('Running FFMPEG Local Code To Change Format Of File').item.json.wavPath }}"
      },
      "typeVersion": 1
    },
    {
      "id": "bbc88d97-1edb-4430-8749-2df5594c9dcd",
      "name": "WAVファイルのアップロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1712,
        32
      ],
      "parameters": {
        "name": "={{ $('Code1').item.json.safeFilename }}.wav",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive",
          "cachedResultUrl": "https://drive.google.com/drive/my-drive",
          "cachedResultName": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "root",
          "cachedResultUrl": "https://drive.google.com/drive",
          "cachedResultName": "/ (Root folder)"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "0cagYS3ULKYU3G1N",
          "name": "Quiverx Google Drive Account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d38711cb-420b-4a70-8ec5-b6df27207caf",
      "name": "Google ファイルのドライブリンクをGoogleシートにアップロード",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1920,
        32
      ],
      "parameters": {
        "columns": {
          "value": {
            "Voice Link": "={{ $json.webViewLink }}",
            "Google Drive ID": "={{ $json.id }}",
            "Voice Generated?": "Yes",
            "full_script_text": "={{ $('Loop Over Items').item.json.full_script_text }}",
            "Computer File Name": "={{ $('Writing File Output Onto Disk').item.json.fileName }}",
            "Google Drive Download Link": "={{ $json.webContentLink }}"
          },
          "schema": [
            {
              "id": "script_name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "script_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "psychological_angle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "psychological_angle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "full_script_text",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "full_script_text",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "script_breakdown",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "script_breakdown",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Bucket",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Bucket",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "strategyPillar",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "strategyPillar",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "psychologicalAngle",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "psychologicalAngle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Generated?",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Voice Generated?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Voice Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Voice Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Google Drive ID",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Google Drive ID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Google Drive Download Link",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Google Drive Download Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "File Location",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "File Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Computer File Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Computer File Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Editing Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Editing Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "full_script_text"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 539540410,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit#gid=539540410",
          "cachedResultName": "Text Overlays"
        },
        "documentId": {
          "__rl": true,
          "mode": "url",
          "value": "https://docs.google.com/spreadsheets/d/1tFC1EC863ZwJB0GffCM9BzU5kYo1wITwFoESZ130oP4/edit?gid=539540410#gid=539540410"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "0XPHdQQ1kHd7hjJ5",
          "name": "thamjiangjun@gmail.com google sheet"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "39ec1f9e-a5be-4e9c-b1cf-aa2f958694d7",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1408,
        -224
      ],
      "parameters": {
        "width": 704,
        "height": 1120,
        "content": "## Generate AI Voiceovers from Scripts and Upload to Google Drive\n\nThis is the final piece of the AI content factory. This workflow takes your text-based video scripts and automatically generates high-quality audio voiceovers for each one, turning your text into ready-to-use audio assets for your video ads.\n\nGo from a spreadsheet of text to a folder of audio files, completely on autopilot.\n\n## ⚠️ CRITICAL REQUIREMENTS (Read First!)\nThis is an advanced, self-hosted workflow that requires specific local setup:\n\n*   **Self-Hosted n8n Only:** This workflow uses the `Execute Command` and `Read/Write Files` nodes, which requires you to run your own instance of n8n. It will not work on n8n Cloud.\n*   **FFmpeg Installation:** You must have [FFmpeg](https://ffmpeg.org/download.html) installed on the same machine where your n8n instance is running. This is used to convert the audio files to a standard format.\n\n## What it does\nThis is Part 3 of the AI marketing series. It connects to the Google Sheet where you generated your video scripts (in Part 2). For each script that hasn't been processed, it:\n\n1.  Uses the Google Gemini Text-to-Speech (TTS) API to generate a voiceover.\n2.  Saves the audio file to your local computer.\n3.  Uses FFmpeg to convert the raw audio into a standard `.wav` file.\n4.  Uploads the final `.wav` file to your Google Drive.\n5.  Updates the original Google Sheet with a link to the audio file in Drive and marks the script as complete.\n\n## How to set up\n**IMPORTANT:** This workflow is Part 3 of a series and requires the output from Part 2 (\"Generate AI Video Ad Scripts\").\n\n**If you need Part 1 or Part 2 of this workflow series, you can find them for free on [my n8n Creator Profile](https://n8n.io/creators/jj-tham/).**\n\n1.  **Connect to Your Scripts Sheet:** In the \"Getting Video Scripts\" node, connect your Google Sheets account and provide the URL to the sheet containing your generated video scripts from Part 2.\n2.  **Configure AI Voice Generation (HTTP Request):**\n    *   In the \"HTTP Request To Generate Voice\" node, go to the **Query Parameters** and replace `INSERT YOUR API KEY HERE` with your Google Gemini API key.\n    *   In the **JSON Body**, you can customize the voice prompt (e.g., change `<INSERT YOUR DESIRED ACCENT HERE>`).\n3.  **Set Your Local File Path:** In the first \"Read/Write Files from Disk\" node, update the **File Name** field to a valid directory on your local machine where n8n has permission to write files. Replace `/Users/INSERT_YOUR_LOCAL_STORAGE_HERE/`.\n4.  **Connect Google Drive:** In the \"Uploading Wav File\" node, connect your Google Drive account and choose the folder where your audio files will be saved.\n5.  **Update Your Tracking Sheet:** In the final \"Uploading Google Drive Link...\" node, ensure it's connected to the same Google Sheet from Step 1. This node will update your sheet with the results."
      },
      "typeVersion": 1
    },
    {
      "id": "1cc5dc7d-55c4-4d0a-b356-a8458169dd96",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        -256
      ],
      "parameters": {
        "color": 2,
        "width": 432,
        "height": 240,
        "content": "**👇 STEP 1: CONNECT TO YOUR SCRIPTS**\n\nThis workflow reads the scripts you generated in Part 2.\n\n**Action Required:**\n1. Connect your Google Sheets account.\n2. Paste the URL of the Google Sheet that was the **output** of the \"Generate AI Video Ad Scripts\" workflow.\n\nThe **Filter** node ensures we only process scripts that don't have a voiceover yet."
      },
      "typeVersion": 1
    },
    {
      "id": "a7250930-1359-44ad-865f-48c21f641cf9",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -192
      ],
      "parameters": {
        "color": 4,
        "width": 496,
        "height": 176,
        "content": "**🧠 STEP 2: CONFIGURE AI VOICE**\n\nThis node generates the audio using Google Gemini's TTS API.\n\n**Action Required:**\n1.  Go to **Query Parameters** and insert your Gemini API Key.\n2.  (Optional) In the **JSON Body**, edit the prompt to change the accent or delivery style."
      },
      "typeVersion": 1
    },
    {
      "id": "c53a760c-aaaf-4c39-a564-6b30b8bf52d3",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        272
      ],
      "parameters": {
        "color": 5,
        "width": 432,
        "height": 224,
        "content": "**⚠️ STEP 3: CONFIGURE LOCAL FILE PROCESSING**\n\n**This section is for SELF-HOSTED n8n ONLY and requires FFmpeg to be installed on your machine.**\n\n**Action Required:**\n1.  Click the first **Read/Write Files from Disk** node.\n2.  Update the **File Name** with a real folder path on your computer (e.g., `/home/n8n/audio/` or `C:\\n8n\\audio\\`)."
      },
      "typeVersion": 1
    },
    {
      "id": "7b792b51-908d-485e-8b9b-7066bf344898",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1216,
        -192
      ],
      "parameters": {
        "color": 6,
        "width": 576,
        "height": 192,
        "content": "**✅ STEP 4: SET UPLOAD DESTINATION**\n\nThis node uploads your final `.wav` audio files.\n\n**Action Required:**\n1.  Connect your Google Drive account.\n2.  (Optional) Choose a specific folder to keep your voiceovers organized."
      },
      "typeVersion": 1
    },
    {
      "id": "6ccd0f26-1155-420b-9cad-f140b2d82e13",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1840,
        240
      ],
      "parameters": {
        "width": 432,
        "height": 128,
        "content": "**🚀 STEP 5: UPDATE TRACKING SHEET**\n\nThis final step updates your script sheet with links to the new audio files in Google Drive and marks them as \"Yes\" so they don't get processed again."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8d66a2a2-0e5f-47ba-883d-1a4c6da2d14d",
  "connections": {
    "88b59cbf-7949-4fb4-84cb-d36a866bbf43": {
      "main": [
        [
          {
            "node": "1decede0-d000-4a68-838c-ce708fc49b55",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8f194775-656e-4687-afbb-507226a8fdb3": {
      "main": [
        [
          {
            "node": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "420b8504-2cc1-4947-b53d-29fd0ae53d4b": {
      "main": [
        [
          {
            "node": "3905f225-4b9d-4e47-bda4-b08002ed635b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "383050a4-5d1a-4f80-9ac3-8ab99dd6c121": {
      "main": [
        [],
        [
          {
            "node": "88b59cbf-7949-4fb4-84cb-d36a866bbf43",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbc88d97-1edb-4430-8749-2df5594c9dcd": {
      "main": [
        [
          {
            "node": "d38711cb-420b-4a70-8ec5-b6df27207caf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3323cc73-9026-48bd-b951-763101a44280": {
      "main": [
        [
          {
            "node": "648b7a61-af32-43d9-97f1-2189560cc47e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da306259-3612-41bd-99b0-91408c63e400": {
      "main": [
        [
          {
            "node": "2fabed55-983e-4420-b16c-f822697cadfa",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "be5453fc-c5e8-4591-b7d9-cd5a35b9582a": {
      "main": [
        [
          {
            "node": "8f194775-656e-4687-afbb-507226a8fdb3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3905f225-4b9d-4e47-bda4-b08002ed635b": {
      "main": [
        [
          {
            "node": "3323cc73-9026-48bd-b951-763101a44280",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2fabed55-983e-4420-b16c-f822697cadfa": {
      "main": [
        [
          {
            "node": "bbc88d97-1edb-4430-8749-2df5594c9dcd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1decede0-d000-4a68-838c-ce708fc49b55": {
      "main": [
        [
          {
            "node": "420b8504-2cc1-4947-b53d-29fd0ae53d4b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b77d0479-251b-4dde-a8db-70dd5c1dcde9": {
      "main": [
        [
          {
            "node": "be5453fc-c5e8-4591-b7d9-cd5a35b9582a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "648b7a61-af32-43d9-97f1-2189560cc47e": {
      "main": [
        [
          {
            "node": "da306259-3612-41bd-99b0-91408c63e400",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d38711cb-420b-4a70-8ec5-b6df27207caf": {
      "main": [
        [
          {
            "node": "383050a4-5d1a-4f80-9ac3-8ab99dd6c121",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

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

有料ですか?

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

関連ワークフロー

OpenAI、RunwayML、ElevenLabsを使って無顔の短い動画を自動化
OpenAI、RunwayML、ElevenLabs を使ってアニメ顔の短い動画を自動化:スクリプトからソーシャルメディアへ
Set
Code
Wait
+
Set
Code
Wait
56 ノードLeeWei
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
OpenAI、ElevenLabs、Fal.ai を使用した動画・パ odcast・ASM R向けのウイルス性コンテンツ自動作成
OpenAI、ElevenLabs、そして Fal.ai を使って動画、ポッドキャスト、ASMR に向けたウイルスのコンテンツ作成を自動化
Set
Code
Wait
+
Set
Code
Wait
97 ノードAdam Crafts
コンテンツ作成
LinkedInおよびXウイルスのなコンテンツ自動エンジン
AIを使ってLinkedInとXにウイルスのなコンテンツを自動生成して公開する
If
Set
Wait
+
If
Set
Wait
156 ノードDiptamoy Barman
コンテンツ作成
私のワークフロー
Apify、GPT-4o、Facebook 広告ライブラリを使用して競合広告の研究と画像生成
Set
Wait
Limit
+
Set
Wait
Limit
32 ノードNick Saraev
コンテンツ作成
Apify、GPT-4、Google Driveを使用して、競合からAI Facebook広告のバリエーションを生成
Apify、GPT-4、Google Driveを使用して競合他社のAI Facebook広告バリエーションを生成
Set
Wait
Limit
+
Set
Wait
Limit
29 ノードElectrabot
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数20
カテゴリー2
ノードタイプ12
難易度説明

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

作成者
JJ Tham

JJ Tham

@jj-tham

Founder of Osinity. I build AI-powered n8n automations that save businesses 10+ hours a week and grow their revenue. We guarantee results with a 30-day risk-free trial—you only pay when we hit your targets.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34