Instagram ReelsをGoogle Sheets、Drive、Cloudinaryを使って本地時刻で配信

中級

これはSocial Media分野の自動化ワークフローで、14個のノードを含みます。主にSet, Wait, GoogleDrive, HttpRequest, GoogleSheetsなどのノードを使用。 Instagram Reelsを自動のに公開するには、Google Drive、Cloudinary、およびSheetsを使用

前提条件
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "JEi8YuD1uPNaoepv",
  "meta": {
    "instanceId": "2df08f928998d4e5d8b5a6b8a989bb8e91873e1415dd987955b920ab774cea97",
    "templateCredsSetupCompleted": true
  },
  "name": "N0006_Schedule Instagram Reels (local timezone) with Google Sheets, Drive & Cloudinary",
  "tags": [],
  "nodes": [
    {
      "id": "0357178e-fb26-4964-8228-921f83aaef06",
      "name": "スケジュールトリガー",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -660,
        200
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8b542a21-1ee8-45d7-adbb-d1708b349355",
      "name": "Instagramコンテンツの実行データ取得",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -420,
        200
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "Reel",
              "lookupColumn": "Type"
            },
            {
              "lookupValue": "Scheduled to post",
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1315784118,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TjZL_eWbs01DdRYs8pJNDr5UMXzYe8u311o6rVUwjdg/edit#gid=1315784118",
          "cachedResultName": "Execute "
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1TjZL_eWbs01DdRYs8pJNDr5UMXzYe8u311o6rVUwjdg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1TjZL_eWbs01DdRYs8pJNDr5UMXzYe8u311o6rVUwjdg/edit?usp=drivesdk",
          "cachedResultName": "0006_Master"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "fYJtZaGhyPBxT6ua",
          "name": "Google Drive/Sheet account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f83b5a42-73b6-452a-998e-d7f47e73feb7",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -180,
        60
      ],
      "parameters": {
        "width": 284,
        "height": 354,
        "content": "### Note: \nThe Google Drive folder needs to be shared publicly (Anyone with the link can view)"
      },
      "typeVersion": 1
    },
    {
      "id": "32dc3be3-b6ba-41f4-af15-ac9e5f36ff58",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        340,
        60
      ],
      "parameters": {
        "width": 304,
        "height": 354,
        "content": "After creating account and folder on Cloudinary, make sure to update the following:\n<your-cloud-name>\n<your_upload_preset>\nto match your settings"
      },
      "typeVersion": 1
    },
    {
      "id": "288d81c8-3f6c-4404-9ad5-c70f28fae05f",
      "name": "Instagramのセットアップ(アクセストークン、ig_business_id)",
      "type": "n8n-nodes-base.set",
      "position": [
        780,
        200
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "5b2dad43-2ec9-4bc0-8427-c9bab6a5fc2c",
              "name": "access_token",
              "type": "string",
              "value": "<your-instagram-access-token>"
            },
            {
              "id": "55b08009-fd62-44b8-b21e-6dde6aa9594f",
              "name": "ig_user_id",
              "type": "string",
              "value": "<your-ig_user_id>"
            },
            {
              "id": "53127a63-5583-4a5b-84bf-d2efd439af2b",
              "name": "image_url",
              "type": "string",
              "value": "={{ $json.url }}"
            },
            {
              "id": "90a680ca-49c2-4b83-bbf4-45614e882c01",
              "name": "caption",
              "type": "string",
              "value": "={{ $('Get video list from a Google Drive folder').item.json['Expected content'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "68f4f02d-011b-42cd-937f-6f2aa55d5f04",
      "name": "実行ステータスを「処理済み」に更新",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1620,
        200
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Processed",
            "ExecuteId": "={{ $json.ExecuteId }}"
          },
          "schema": [
            {
              "id": "ExecuteId",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ExecuteId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Folder",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Folder",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Expected content",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Expected content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Language",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Language",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Type",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Type",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "schedule_at",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "schedule_at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "ExecuteId"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1315784118,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WEUHeQXFMYsWVAW3DykWwpANxxD3DxH-S6c0i06dW1g/edit#gid=1315784118",
          "cachedResultName": "Execute "
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1vkawOzltRju_g313gM6ysbn-n2TkMrMtvwCfTizQU4Y",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1vkawOzltRju_g313gM6ysbn-n2TkMrMtvwCfTizQU4Y/edit?usp=drivesdk",
          "cachedResultName": "0005_Master"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "fYJtZaGhyPBxT6ua",
          "name": "Google Drive/Sheet account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "ccad3cfd-4158-4ba7-bfb9-0855c5286e6e",
      "name": "Google Driveから動画(Reel)をダウンロード(カルーセル)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        180,
        200
      ],
      "parameters": {
        "url": "=https://drive.google.com/uc?export=download&id={{ $json.id }}",
        "options": {
          "response": {
            "response": {
              "fullResponse": true,
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "988c111d-38c8-4e97-b962-db65d9731f39",
      "name": "動画をCloudinaryにアップロード",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        440,
        200
      ],
      "parameters": {
        "url": "https://api.cloudinary.com/v1_1/<your-cloud-name>/video/upload",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "=data"
            },
            {
              "name": "upload_preset",
              "value": "<your_upload_preset>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "fed72c81-9760-4349-ad6d-7571083ec69a",
      "name": "メディアコンテナの作成(Reels)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1040,
        200
      ],
      "parameters": {
        "url": "=https://graph.instagram.com/v23.0/{{ $json.ig_user_id }}/media",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        },
        "sendBody": true,
        "contentType": "form-urlencoded",
        "bodyParameters": {
          "parameters": [
            {
              "name": "video_url",
              "value": "={{ $json.video_url }}"
            },
            {
              "name": "caption",
              "value": "={{ $json.caption }}"
            },
            {
              "name": "access_token",
              "value": "={{ $json.access_token }}"
            },
            {
              "name": "media_type",
              "value": "REELS"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ec04e6e4-b2ec-4d0b-9642-ac016778b711",
      "name": "Instagram Reelsを公開",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1400,
        200
      ],
      "parameters": {
        "url": "=https://graph.instagram.com/v23.0/{{ $('Setup for Instagram (access token, ig_business_id)').first().json.ig_user_id }}/media_publish",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "json"
            }
          }
        },
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "creation_id",
              "value": "={{ $json.body.id }}"
            },
            {
              "name": "access_token",
              "value": "={{ $('Setup for Instagram (access token, ig_business_id)').first().json.access_token }}"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8dec47fa-58a6-43c3-89da-769acc7818dc",
      "name": "待機",
      "type": "n8n-nodes-base.wait",
      "position": [
        1220,
        200
      ],
      "webhookId": "6756ecda-85e9-4fb7-8871-86fd12b1fa3c",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "4d87caa0-01fd-45b0-a1fc-b0cfda42278c",
      "name": "Google Driveフォルダから動画リストを取得",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -80,
        200
      ],
      "parameters": {
        "filter": {
          "folderId": {
            "__rl": true,
            "mode": "url",
            "value": "={{ $json.Folder }}"
          }
        },
        "options": {
          "fields": [
            "id",
            "name",
            "thumbnailLink",
            "webViewLink"
          ]
        },
        "resource": "fileFolder",
        "returnAll": true,
        "queryString": "="
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "4TPyxdrYHCrliUg8",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "781d5f70-566f-4389-bac1-717fc41d3f14",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1620,
        -220
      ],
      "parameters": {
        "width": 884,
        "height": 1114,
        "content": "# 📹 Instagram Reels Auto-Posting Workflow\n\nThis n8n workflow automates the process of downloading a video from Google Drive, uploading it to Cloudinary, and posting it as a Reel to Instagram.\n\n## 🧭 Flow Overview\n\n1. **Schedule Trigger**  \n   - Runs the workflow at regular intervals (e.g., hourly, daily).\n\n2. **Google Sheet: Get Scheduled Content**  \n   - Retrieves rows with Reel that are Scheduled to post. ([Sample link](https://docs.google.com/spreadsheets/d/1TjZL_eWbs01DdRYs8pJNDr5UMXzYe8u311o6rVUwjdg/edit?usp=sharing))\n\n3. **Google Drive: Get Video Info**  \n   - Note: The video folders need to be set as \"Anyone with the link can view\"\n\n4. **HTTP Request: Download Video**  \n\n5. **HTTP Request: Upload to Cloudinary**  \n\n6. **Set Instagram Post Data**  \n   - Prepares the following parameters:\n     - `video_url`: from Cloudinary response\n     - `caption`: from Google Sheet content\n     - `access_token`, `ig_user_id`: from credentials or variables\n\n7. **HTTP Request: Create Media Container**  \n\n8. **Wait**  \n   - Adds a short delay (e.g., 5 seconds) for media processing.\n\n9. **HTTP Request: Publish Reels**  \n\n10. **Google Sheet: Update Status**  \n    - Marks the content as `Posted` or `Processed` in your spreadsheet.\n\n---\n\n## ⚙️ Example Setup\n\n- Google Drive: A shared folder with `.mp4` videos (The folders need to be set as \"Anyone with the link can view\"\n- Cloudinary: Active account with video upload preset\n- Instagram: Business account connected to Facebook Page\n- Sheets: A list of planned posts with columns like:\n  - `Video Name`, `Type`, `Caption`, `Status`\n"
      },
      "typeVersion": 1
    },
    {
      "id": "63c5ef3e-d582-4bc4-8ce5-d44d8cf57256",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        680,
        60
      ],
      "parameters": {
        "width": 304,
        "height": 354,
        "content": "Update your Instagram's access token and user_id:\n<your-instagram-access-token>\n<your-ig_user_id>\nto match your settings"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "ce4fedad-e92f-4352-875e-6ca7044106ed",
  "connections": {
    "8dec47fa-58a6-43c3-89da-769acc7818dc": {
      "main": [
        [
          {
            "node": "ec04e6e4-b2ec-4d0b-9642-ac016778b711",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0357178e-fb26-4964-8228-921f83aaef06": {
      "main": [
        [
          {
            "node": "8b542a21-1ee8-45d7-adbb-d1708b349355",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec04e6e4-b2ec-4d0b-9642-ac016778b711": {
      "main": [
        [
          {
            "node": "68f4f02d-011b-42cd-937f-6f2aa55d5f04",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "988c111d-38c8-4e97-b962-db65d9731f39": {
      "main": [
        [
          {
            "node": "288d81c8-3f6c-4404-9ad5-c70f28fae05f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fed72c81-9760-4349-ad6d-7571083ec69a": {
      "main": [
        [
          {
            "node": "8dec47fa-58a6-43c3-89da-769acc7818dc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b542a21-1ee8-45d7-adbb-d1708b349355": {
      "main": [
        [
          {
            "node": "4d87caa0-01fd-45b0-a1fc-b0cfda42278c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4d87caa0-01fd-45b0-a1fc-b0cfda42278c": {
      "main": [
        [
          {
            "node": "ccad3cfd-4158-4ba7-bfb9-0855c5286e6e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ccad3cfd-4158-4ba7-bfb9-0855c5286e6e": {
      "main": [
        [
          {
            "node": "988c111d-38c8-4e97-b962-db65d9731f39",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "288d81c8-3f6c-4404-9ad5-c70f28fae05f": {
      "main": [
        [
          {
            "node": "fed72c81-9760-4349-ad6d-7571083ec69a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

中級 - ソーシャルメディア

有料ですか?

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

ワークフロー情報
難易度
中級
ノード数14
カテゴリー1
ノードタイプ7
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34