8
n8n ํ•œ๊ตญ์–ดamn8n.com

๐Ÿ’ฅ Klap์„ ์‚ฌ์šฉํ•˜์—ฌ YouTube ๋น„๋””์˜ค๋ฅผ ๋ฐ”์ด๋Ÿฌ์Šค์„ฑ็Ÿญ่ง†้ข‘์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  Blotato๋ฅผ ํ†ตํ•ด ์ž๋™์œผ๋กœ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค - VIDE

๊ณ ๊ธ‰

์ด๊ฒƒ์€Content Creation, Multimodal AI๋ถ„์•ผ์˜์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ๋กœ, 35๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.์ฃผ๋กœ If, Set, Code, Wait, Telegram ๋“ฑ์˜ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ. Klap์„ ์‚ฌ์šฉํ•˜์—ฌ YouTube ๋น„๋””์˜ค๋ฅผ็Ÿญ่ง†้ข‘์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์†Œ์…œ ํ”Œ๋žซํผ์— ์ž๋™์œผ๋กœ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ „ ์š”๊ตฌ์‚ฌํ•ญ
  • โ€ขTelegram Bot Token
  • โ€ข๋Œ€์ƒ API์˜ ์ธ์ฆ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ
  • โ€ขGoogle Sheets API ์ธ์ฆ ์ •๋ณด
์›Œํฌํ”Œ๋กœ์šฐ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
๋…ธ๋“œ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, ํ™•๋Œ€/์ถ•์†Œ ๋ฐ ์ด๋™์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค
์›Œํฌํ”Œ๋กœ์šฐ ๋‚ด๋ณด๋‚ด๊ธฐ
๋‹ค์Œ JSON ๊ตฌ์„ฑ์„ ๋ณต์‚ฌํ•˜์—ฌ n8n์— ๊ฐ€์ ธ์˜ค๋ฉด ์ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
{
  "id": "iicQhN2T4dTs1xcU",
  "meta": {
    "instanceId": "a2b23892dd6989fda7c1209b381f5850373a7d2b85609624d7c2b7a092671d44",
    "templateCredsSetupCompleted": true
  },
  "name": "๐Ÿ’ฅ Convert YouTube videos to viral Shorts with Klap and auto-post with Blotato -VIDE",
  "tags": [],
  "nodes": [
    {
      "id": "0c87598f-852e-4c50-a81b-30cd0ee48c37",
      "name": "์†Œ์…œ ๋ฏธ๋””์–ด ID ํ• ๋‹น",
      "type": "n8n-nodes-base.set",
      "position": [
        340,
        680
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "{\n  \"instagram_id\": \"111\",\n  \"youtube_id\": \"222\",\n  \"tiktok_id\": \"333\",\n  \"facebook_id\": \"444\",\n  \"facebook_page_id\": \"555\",\n  \"threads_id\": \"666\",\n  \"twitter_id\": \"777\",\n  \"linkedin_id\": \"888\",\n  \"pinterest_id\": \"999\",\n  \"pinterest_board_id\": \"101010\",\n  \"bluesky_id\": \"111111\"\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "3fb3c2da-8ebb-42a4-9c21-7009061c8232",
      "name": "Blotato์— ๋™์˜์ƒ ์—…๋กœ๋“œ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        560,
        680
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/media",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Clip URL'] }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "53aa0026-2305-49c3-8598-83f332e6a8d8",
      "name": "INSTAGRAM",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        420
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.instagram_id }}\",\n    \"target\": {\n      \"targetType\": \"instagram\"\n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"instagram\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "dddca94b-5cf3-492e-9348-6f297e90eb33",
      "name": "YOUTUBE",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1060,
        420
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.youtube_id }}\",\n    \"target\": {\n      \"targetType\": \"youtube\",\n      \"title\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Video Title'] }}\",\n      \"privacyStatus\": \"public\",\n      \"shouldNotifySubscribers\": true,\n      \"isMadeForKids\": false\n    },\n    \"content\": {\n      \"text\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Clip Caption'] }}\",\n      \"platform\": \"youtube\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n},\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "886befdc-80c5-4a05-961e-0398c38a7d89",
      "name": "TIKTOK",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1260,
        420
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.tiktok_id }}\",\n    \"target\": {\n      \"targetType\": \"tiktok\",\n      \"isYourBrand\": \"false\", \n      \"disabledDuet\": \"false\",\n      \"privacyLevel\": \"PUBLIC_TO_EVERYONE\",\n      \"isAiGenerated\": \"true\",\n      \"disabledStitch\": \"false\",\n      \"disabledComments\": \"false\",\n      \"isBrandedContent\": \"false\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Clip Caption'] }}\",\n      \"platform\": \"tiktok\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6bd21195-5c01-4915-9a19-bbfa6965f311",
      "name": "FACEBOOK",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        680
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.facebook_id }}\",\n    \"target\": {\n      \"targetType\": \"facebook\",\n      \"pageId\": \"{{ $('Assign Social Media IDs').item.json.facebook_page_id }}\"\n\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"facebook\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b9916566-1f7d-4481-a55f-656e821650f7",
      "name": "THREADS",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1060,
        680
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.threads_id }}\",\n    \"target\": {\n      \"targetType\": \"threads\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"threads\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d148a2b1-c97c-4a52-a18d-b21358006f11",
      "name": "LINKEDIN",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        840,
        920
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.linkedin_id }}\",\n    \"target\": {\n      \"targetType\": \"linkedin\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"linkedin\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "0cd669ba-a985-4d42-a9c9-162a6bf3866e",
      "name": "BLUESKY",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1060,
        920
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "= {\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.bluesky_id }}\",\n    \"target\": {\n      \"targetType\": \"bluesky\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"bluesky\",\n      \"mediaUrls\": [\n        \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a6fa19f7-cb8f-4a06-821f-d7df760bbe4c",
      "name": "PINTEREST",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1260,
        920
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_id }}\",\n    \"target\": {\n      \"targetType\": \"pinterest\",\n      \"boardId\": \"{{ $('Assign Social Media IDs').item.json.pinterest_board_id }}\"      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"pinterest\",\n      \"mediaUrls\": [\n        \"https://pbs.twimg.com/media/GE8MgIiWEAAfsK3.jpg\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bc234c37-1a36-4f47-bdde-25cde260f751",
      "name": "์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -200
      ],
      "parameters": {
        "width": 2300,
        "height": 500,
        "content": "# โœ… Step 1 โ€” Convert YouTube Video to Shorts\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8d18f741-0eab-44f2-9cd3-54f3da5a375c",
      "name": "์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        340
      ],
      "parameters": {
        "color": 3,
        "width": 1080,
        "height": 760,
        "content": "# โœ… Step 2 โ€” Schedule Shorts for Publication\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4002b90c-5225-486f-b02b-8bf4bd3fff01",
      "name": "์Šคํ‹ฐ์ปค ๋ฉ”๋ชจ2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        340
      ],
      "parameters": {
        "color": 5,
        "width": 1180,
        "height": 760,
        "content": "# โœ… Step 3 โ€” Publish Shorts to Social Media with Blotato\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bb53bd16-b23b-42c1-94c3-0c4de579ace0",
      "name": "ํŠธ๋ฆฌ๊ฑฐ: Telegram์„ ํ†ตํ•ด YouTube URL ์ˆ˜์‹ ",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -760,
        -100
      ],
      "webhookId": "a35f885c-4c5a-48fd-a2a2-c0ae7e52fe0c",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "QJ4Pnum56LmvCx9q",
          "name": "Telegram account 6"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "fae0fa5c-7879-4dc2-8ef7-a899b79a9fd5",
      "name": "YouTube URL ๋ฐ ์ˆํผ ๊ฐœ์ˆ˜ ์ถ”์ถœ",
      "type": "n8n-nodes-base.code",
      "position": [
        -580,
        -100
      ],
      "parameters": {
        "jsCode": "const message = $input.first().json.message.text;\nconst chatId = $input.first().json.message.chat.id;\n\n// Split by space to get URL and number\nconst parts = message.trim().split(/\\s+/);\n\n// Find the URL part\nconst urlPart = parts.find(part => part.includes('youtube.com') || part.includes('youtu.be'));\n\n// Find the number part\nconst numberPart = parts.find(part => /^\\d+$/.test(part));\n\nif (urlPart && numberPart) {\n\tconst number = parseInt(numberPart);\n\n\t// Validate number range\n\tif (number >= 1 && number <= 10) {\n\t\treturn [{\n\t\t\tjson: {\n\t\t\t\taction: 'process',\n\t\t\t\t'YouTube URL': urlPart,\n\t\t\t\t'How many shorts to generate?': number,\n\t\t\t\tchat_id: chatId\n\t\t\t}\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\tjson: {\n\t\t\t\taction: 'invalid_number',\n\t\t\t\tchat_id: chatId,\n\t\t\t\tmessage: 'Please use a number between 1 and 10'\n\t\t\t}\n\t\t}];\n\t}\n} else {\n\treturn [{\n\t\tjson: {\n\t\t\taction: 'invalid_format',\n\t\t\tchat_id: chatId,\n\t\t\tmessage: `Send: YouTube_URL Number\\nExample:\\nhttps://youtu.be/abc123 5`\n\t\t}\n\t}];\n}\n"
      },
      "typeVersion": 2
    },
    {
      "id": "941ee622-2a82-414a-a710-992d19321505",
      "name": "Klap์œผ๋กœ ์ˆํผ ์ƒ์„ฑ ์š”์ฒญ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -400,
        -100
      ],
      "parameters": {
        "url": "https://api.klap.app/v2/tasks/video-to-shorts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"source_video_url\": \"{{ $json['YouTube URL'] }}\",\n  \"language\": \"en\",\n  \"target_clip_count\": {{ $json['How many shorts to generate?'] }},\n  \"max_clip_count\": {{ $json['How many shorts to generate?'] }},\n  \"editing_options\": {\n    \"captions\": true,\n    \"reframe\": true,\n    \"emojis\": true,\n    \"remove_silences\": true,\n    \"intro_title\": true\n  },\n  \"min_duration\": 15,\n  \"max_duration\": 60,\n  \"target_duration\": 30\n} ",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "dd36f27f-e34d-47cc-b288-40bdd62e9c67",
      "name": "์ˆํผ ์ƒ์„ฑ ์ƒํƒœ ํ™•์ธ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -200,
        -100
      ],
      "parameters": {
        "url": "=https://api.klap.app/v2/tasks/{{ $json.id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6c969e03-9fe8-4dbf-9654-83ac551c34fe",
      "name": "๋™์˜์ƒ ์ฒ˜๋ฆฌ ์™„๋ฃŒ ์—ฌ๋ถ€?",
      "type": "n8n-nodes-base.if",
      "position": [
        20,
        -100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ffa318cf-7bdc-4ea5-bb02-ac69ae94a8c7",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "ready"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "445b66de-d201-45e0-8920-ab7fcafa8814",
      "name": "์ƒํƒœ ์žฌํ™•์ธ ์ „ ๋Œ€๊ธฐ",
      "type": "n8n-nodes-base.wait",
      "position": [
        240,
        80
      ],
      "webhookId": "1a54337d-9f1e-4432-84c2-df2bfb731bb8",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "d5587a02-4d66-4180-86eb-8b604f94f458",
      "name": "์ƒ์„ฑ๋œ ํด๋ฆฝ ์•„์ด๋””์–ด ๋ชฉ๋ก",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        -100
      ],
      "parameters": {
        "url": "=https://api.klap.app/v2/projects/{{ $json.output_id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "18d45b4a-fe47-45fd-b904-43495e3b79b2",
      "name": "Klap์—์„œ HD ์ˆํผ ๋‚ด๋ณด๋‚ด๊ธฐ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        460,
        -100
      ],
      "parameters": {
        "url": "=https://api.klap.app/v2/projects/{{ $('Check Shorts Generation Status').item.json.output_id }}/{{ $json.id }}/exports",
        "method": "POST",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "00796fb5-12c9-43dc-8ccc-48e40919b197",
      "name": "์ตœ์ข… ์ˆํผ URL ๊ฐ€์ ธ์˜ค๊ธฐ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        -100
      ],
      "parameters": {
        "url": "=https://api.klap.app/v2/projects/{{ $('Check Shorts Generation Status').item.json.output_id }}/{{ $('List Generated Clip Ideas').item.json.id }}/exports/{{ $json.id }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "YOUR_API"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b1f6e0e1-0900-49d1-a66c-60da05495ce0",
      "name": "๋ชจ๋“  ์ˆํผ ์ค€๋น„ ์™„๋ฃŒ?",
      "type": "n8n-nodes-base.code",
      "position": [
        980,
        -100
      ],
      "parameters": {
        "jsCode": "const allVideos = $input.all();\n\nconst totalExpected = allVideos.length;\nconst readyCount = allVideos.filter(v => v.json.status === 'ready').length;\n\n// Si tous les items sont prรฉsents et tous sont 'ready', alors true\nconst allReady = totalExpected > 0 && readyCount === totalExpected;\n\nreturn allVideos.map(video => ({\n  json: {\n    ...video.json,\n    is_everything_ready: allReady\n  }\n}));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "f6b740c3-efb9-4d03-8a45-5cb0aa0b270c",
      "name": "์ˆํผ ์˜ˆ์•ฝ ์ค€๋น„?",
      "type": "n8n-nodes-base.if",
      "position": [
        1200,
        -100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "4d35bf8e-906d-45dd-883e-570a91f06f41",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.is_everything_ready }}",
              "rightValue": "true"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5b0218d3-7449-45e2-98e2-cc7d0aa21318",
      "name": "์ตœ์ข… ์ˆํผ ์žฌํ™•์ธ ์ „ ๋Œ€๊ธฐ",
      "type": "n8n-nodes-base.wait",
      "position": [
        1200,
        60
      ],
      "webhookId": "40e3258c-a486-49b2-b18d-71770ef50173",
      "parameters": {
        "amount": 60
      },
      "typeVersion": 1.1
    },
    {
      "id": "af4d701f-a957-4b96-818e-105a5beeefac",
      "name": "YouTube ๋™์˜์ƒ ์ œ๋ชฉ ๊ฐ€์ ธ์˜ค๊ธฐ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -760,
        540
      ],
      "parameters": {
        "url": "=https://www.youtube.com/oembed?url={{ $('Extract YouTube URL & Number of Shorts').item.json['YouTube URL'] }}&format=json ",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "aabb8208-c624-496e-a2fc-acda25e73cb2",
      "name": "Google ์‹œํŠธ์—์„œ ๊ฒŒ์‹œ ์ผ์ • ๋ถˆ๋Ÿฌ์˜ค๊ธฐ",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -500,
        540
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "a05b791e-fb08-4b9a-b197-44ae5ba9f7da",
      "name": "์˜ˆ์•ฝ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ถ”์ถœ (์ผ์ผ ๊ฒŒ์‹œ ์ˆ˜, ์‹œ๊ฐ„๋Œ€)",
      "type": "n8n-nodes-base.code",
      "position": [
        -240,
        540
      ],
      "parameters": {
        "jsCode": "let postsPerDay;\nlet startHour;\nlet endHour;\nfor (const item of items) {\nconst setting = item.json[\"Publishing Settings\"];\nconst value = item.json[\"col_2\"];\nif (setting === \"Post per Day\") {\npostsPerDay = parseInt(value, 10);\n} else if (setting === \"Start Time\") {\nstartHour = parseInt(value.split(\":\")[0], 10);\n} else if (setting === \"End Time\") {\nendHour = parseInt(value.split(\":\")[0], 10);\n}\n}\nreturn [\n{\njson: {\npostsPerDay,\nstartHour,\nendHour\n}\n}\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "a9d6fc11-e802-4fe5-98d6-433e818e4c6c",
      "name": "์ด๋ฏธ ์˜ˆ์•ฝ๋œ ์ˆํผ ์กฐํšŒ",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        40,
        540
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6,
      "alwaysOutputData": true
    },
    {
      "id": "e627a05b-bda2-43fb-8791-c885dbc4dd90",
      "name": "๋งˆ์ง€๋ง‰ ์˜ˆ์•ฝ ์‹œ๊ฐ„ ํ™•์ธ",
      "type": "n8n-nodes-base.code",
      "position": [
        -760,
        800
      ],
      "parameters": {
        "jsCode": "// Get existing scheduled posts\nconst existingPosts = $input.all();\n// Safe fallback: if the sheet is empty, use an empty object\nconst scheduleSettings = ($('Fetch Already Scheduled Shorts').first() || {\njson: {} }).json;\n// Find the latest scheduled time\nlet lastScheduledTime = new Date();\nif (existingPosts.length > 0) {\n// Get all scheduled times and find the latest\nconst scheduledTimes = existingPosts\n.map(post => new Date(post.json['Schedule Time']))\n.filter(date => !isNaN(date))\n.sort((a, b) => b - a); // Sort descending\nif (scheduledTimes.length > 0) {\nlastScheduledTime = scheduledTimes[0];\n}\n}\n// Pass this to the next node\nreturn [{\njson: {\nlastScheduledTime: lastScheduledTime.toISOString(),\npostsPerDay: scheduleSettings.postsPerDay,\nstartHour: scheduleSettings.startHour,\nendHour: scheduleSettings.endHour\n}\n}];"
      },
      "typeVersion": 2
    },
    {
      "id": "09f97fab-b396-411e-a33d-e845be8d7935",
      "name": "์ƒˆ ์ˆํผ ๊ฒŒ์‹œ ์‹œ๊ฐ„ ๊ณ„์‚ฐ",
      "type": "n8n-nodes-base.code",
      "position": [
        -500,
        800
      ],
      "parameters": {
        "jsCode": "const postsPerDay = parseInt($('Extract Scheduling Parameters (Posts/Day, Hours)').first().json.postsPerDay);\nconst startHour = parseInt($('Extract Scheduling Parameters (Posts/Day, Hours)').first().json.startHour);\nconst endHour = parseInt($('Extract Scheduling Parameters (Posts/Day, Hours)').first().json.endHour);\nconst lastScheduledTime = new\nDate($input.first().json.lastScheduledTime);\n// Get video data\nconst videos = $('List Generated Clip Ideas').all();\nconst finalShorts = $('Fetch Final Shorts URLs').all();\nconst now = new Date();\nconst totalHours = endHour - startHour;\nconst intervalMs = (totalHours * 60 * 60 * 1000) / postsPerDay;\n// Start from the day after the last scheduled post\nlet startDate = new Date(lastScheduledTime);\nstartDate.setDate(startDate.getDate() + 1);\nstartDate.setHours(startHour, 0, 0, 0);\n// If starting date is in the past, use tomorrow\nif (startDate < now) {\nstartDate = new Date();\nstartDate.setDate(startDate.getDate() + 1);\nstartDate.setHours(startHour, 0, 0, 0);\n}\nconst result = [];\nlet videoIndex = 0;\nlet currentDate = new Date(startDate);\nlet dailyPostCount = 0;\nwhile (videoIndex < videos.length) {\n// Calculate time slot\nconst baseTime = new Date(currentDate);\nbaseTime.setHours(startHour + (dailyPostCount * (totalHours /\npostsPerDay)), 0, 0, 0);\n// Add randomness ยฑ30 min\nconst offset = (Math.random() - 0.5) * 60 * 60 * 1000;\nconst scheduledTime = new Date(baseTime.getTime() + offset);\n// Get video data\nconst video = videos[videoIndex].json;\nconst finalShort = finalShorts[videoIndex].json;\nresult.push({\njson: {\nscheduled_at: scheduledTime.toISOString(),\nvideo_name: video.name,\nvideo_virality_score: video.virality_score,\nvideo_caption: video.publication_captions.youtube,\nvideo_tiktok_caption: video.publication_captions.tiktok,\nvideo_url: finalShort.src_url,\nvideo_id: video.id\n}\n});\nvideoIndex++;\ndailyPostCount++;\n// Move to next day if daily limit reached\nif (dailyPostCount >= postsPerDay) {\ncurrentDate.setDate(currentDate.getDate() + 1);\ndailyPostCount = 0;\n}\n}\nreturn result;"
      },
      "typeVersion": 2
    },
    {
      "id": "d6c651b7-59c9-4f9e-a7ef-b71da871a381",
      "name": "ํ˜„์ง€ ์‹œ๊ฐ„๋Œ€(ํŒŒ๋ฆฌ)๋กœ ์‹œ๊ฐ„ ๋ณ€ํ™˜",
      "type": "n8n-nodes-base.code",
      "position": [
        -240,
        800
      ],
      "parameters": {
        "jsCode": "return $input.all().map(item => {\nconst utc = item.json.scheduled_at;\nconst local = new Date(utc).toLocaleString(\"en-US\", {\ntimeZone: \"Europe/Paris\",\ntimeZoneName: \"short\",\nhour12: false\n});\nreturn {\njson: {\n...item.json, // This includes all the video data\nlocal_time: local\n}\n};\n});"
      },
      "typeVersion": 2
    },
    {
      "id": "67b6658d-4f87-42af-a487-8f24b3744965",
      "name": "Google ์‹œํŠธ์— ์ˆํผ ๋ฐ ์ผ์ • ์ •๋ณด ๊ธฐ๋ก",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        40,
        800
      ],
      "parameters": {
        "columns": {
          "value": {
            "Clip URL": "={{ $json.video_url }}",
            "Video URL": "={{ $('Extract YouTube URL & Number of Shorts').first().json['YouTube URL'] }}",
            "Video Title": "={{ $('Fetch YouTube Video Title').first().json.title }}",
            "Clip Caption": "={{ $json.video_tiktok_caption }}",
            "Schedule Time": "={{ $json.scheduled_at }}",
            "Video Clip Idea": "={{ $json.video_name }}",
            "Clip Virality Score": "={{ $json.video_virality_score }}",
            "Schedule Time (local)": "={{ $json.local_time }}"
          },
          "schema": [
            {
              "id": "Video Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Video Clip Idea",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Video Clip Idea",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Clip Virality Score",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Clip Virality Score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Clip Caption",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Clip Caption",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Clip URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Clip URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Schedule Time",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Schedule Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Schedule Time (local)",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Schedule Time (local)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "id",
          "value": "="
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "="
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "51us92xkOlrvArhV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "1fb02be6-b65e-48f3-8d0d-45bb64630aed",
      "name": "Telegram์— ๊ฒŒ์‹œ ์š”์•ฝ ์ „์†ก",
      "type": "n8n-nodes-base.telegram",
      "position": [
        560,
        420
      ],
      "webhookId": "7b1f7dbf-c8dc-4cb7-b538-19b6d8d0ea72",
      "parameters": {
        "text": "=Your YouTube video \"{{ $('Fetch YouTube Video Title').first().json.title }}\"\nwas converted into {{ $('Extract YouTube URL & Number of Shorts').first().json['How many shorts to generate?'] }} shorts and scheduled for publication on Tiktok,\nInstagram, Facebook, LinkedIn, Twitter and YouTube at these\ntimes:\n{{ $('Convert Times to Local Timezone (Paris)').all().map(item =>\nitem.json.local_time).join('\\n') }}",
        "chatId": "={{ $('Trigger: Receive YouTube URL via Telegram').first().json.message.chat.id }}",
        "additionalFields": {}
      },
      "credentials": {
        "telegramApi": {
          "id": "QJ4Pnum56LmvCx9q",
          "name": "Telegram account 6"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "295a47d5-3521-46da-99eb-35d52ecf4f56",
      "name": "TWITTER",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1260,
        680
      ],
      "parameters": {
        "url": "https://backend.blotato.com/v2/posts",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"post\": {\n    \"accountId\": \"{{ $('Assign Social Media IDs').item.json.twitter_id }}\",\n    \"target\": {\n      \"targetType\": \"twitter\"\n      \n    },\n    \"content\": {\n      \"text\": \"{{ $('Get my video').item.json.DESCRIPTION }}\",\n      \"platform\": \"twitter\",\n      \"mediaUrls\": [\n        \"{{ $json.url }}\"\n      ]\n    }\n  },\n  \"scheduledTime\": \"{{ $('Log Shorts & Schedule Info to Google Sheets').item.json['Schedule Time'] }}\"\n}\n",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "blotato-api-key",
              "value": "your_api"
            }
          ]
        }
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "pinData": {
    "Assign Social Media IDs": [
      {
        "json": {
          "tiktok_id": "2079",
          "bluesky_id": "932",
          "threads_id": "507",
          "twitter_id": "1289",
          "youtube_id": "873",
          "facebook_id": "1759",
          "linkedin_id": "1446",
          "instagram_id": "1687",
          "pinterest_id": "363",
          "facebook_page_id": "101603614680195",
          "pinterest_board_id": "1146658823815436667"
        }
      },
      {
        "json": {
          "tiktok_id": "2079",
          "bluesky_id": "932",
          "threads_id": "507",
          "twitter_id": "1289",
          "youtube_id": "873",
          "facebook_id": "1759",
          "linkedin_id": "1446",
          "instagram_id": "1687",
          "pinterest_id": "363",
          "facebook_page_id": "101603614680195",
          "pinterest_board_id": "1146658823815436667"
        }
      },
      {
        "json": {
          "tiktok_id": "2079",
          "bluesky_id": "932",
          "threads_id": "507",
          "twitter_id": "1289",
          "youtube_id": "873",
          "facebook_id": "1759",
          "linkedin_id": "1446",
          "instagram_id": "1687",
          "pinterest_id": "363",
          "facebook_page_id": "101603614680195",
          "pinterest_board_id": "1146658823815436667"
        }
      },
      {
        "json": {
          "tiktok_id": "2079",
          "bluesky_id": "932",
          "threads_id": "507",
          "twitter_id": "1289",
          "youtube_id": "873",
          "facebook_id": "1759",
          "linkedin_id": "1446",
          "instagram_id": "1687",
          "pinterest_id": "363",
          "facebook_page_id": "101603614680195",
          "pinterest_board_id": "1146658823815436667"
        }
      },
      {
        "json": {
          "tiktok_id": "2079",
          "bluesky_id": "932",
          "threads_id": "507",
          "twitter_id": "1289",
          "youtube_id": "873",
          "facebook_id": "1759",
          "linkedin_id": "1446",
          "instagram_id": "1687",
          "pinterest_id": "363",
          "facebook_page_id": "101603614680195",
          "pinterest_board_id": "1146658823815436667"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "07f8bb30-431e-4f84-977c-edb26a7c4da0",
  "connections": {
    "886befdc-80c5-4a05-961e-0398c38a7d89": {
      "main": [
        []
      ]
    },
    "b1f6e0e1-0900-49d1-a66c-60da05495ce0": {
      "main": [
        [
          {
            "node": "f6b740c3-efb9-4d03-8a45-5cb0aa0b270c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0c87598f-852e-4c50-a81b-30cd0ee48c37": {
      "main": [
        [
          {
            "node": "3fb3c2da-8ebb-42a4-9c21-7009061c8232",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "00796fb5-12c9-43dc-8ccc-48e40919b197": {
      "main": [
        [
          {
            "node": "b1f6e0e1-0900-49d1-a66c-60da05495ce0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3fb3c2da-8ebb-42a4-9c21-7009061c8232": {
      "main": [
        [
          {
            "node": "53aa0026-2305-49c3-8598-83f332e6a8d8",
            "type": "main",
            "index": 0
          },
          {
            "node": "dddca94b-5cf3-492e-9348-6f297e90eb33",
            "type": "main",
            "index": 0
          },
          {
            "node": "886befdc-80c5-4a05-961e-0398c38a7d89",
            "type": "main",
            "index": 0
          },
          {
            "node": "6bd21195-5c01-4915-9a19-bbfa6965f311",
            "type": "main",
            "index": 0
          },
          {
            "node": "b9916566-1f7d-4481-a55f-656e821650f7",
            "type": "main",
            "index": 0
          },
          {
            "node": "295a47d5-3521-46da-99eb-35d52ecf4f56",
            "type": "main",
            "index": 0
          },
          {
            "node": "d148a2b1-c97c-4a52-a18d-b21358006f11",
            "type": "main",
            "index": 0
          },
          {
            "node": "0cd669ba-a985-4d42-a9c9-162a6bf3866e",
            "type": "main",
            "index": 0
          },
          {
            "node": "a6fa19f7-cb8f-4a06-821f-d7df760bbe4c",
            "type": "main",
            "index": 0
          },
          {
            "node": "1fb02be6-b65e-48f3-8d0d-45bb64630aed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "18d45b4a-fe47-45fd-b904-43495e3b79b2": {
      "main": [
        [
          {
            "node": "00796fb5-12c9-43dc-8ccc-48e40919b197",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "af4d701f-a957-4b96-818e-105a5beeefac": {
      "main": [
        [
          {
            "node": "aabb8208-c624-496e-a2fc-acda25e73cb2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d5587a02-4d66-4180-86eb-8b604f94f458": {
      "main": [
        [
          {
            "node": "18d45b4a-fe47-45fd-b904-43495e3b79b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f6b740c3-efb9-4d03-8a45-5cb0aa0b270c": {
      "main": [
        [
          {
            "node": "af4d701f-a957-4b96-818e-105a5beeefac",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "5b0218d3-7449-45e2-98e2-cc7d0aa21318",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e627a05b-bda2-43fb-8791-c885dbc4dd90": {
      "main": [
        [
          {
            "node": "09f97fab-b396-411e-a33d-e845be8d7935",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6c969e03-9fe8-4dbf-9654-83ac551c34fe": {
      "main": [
        [
          {
            "node": "d5587a02-4d66-4180-86eb-8b604f94f458",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "445b66de-d201-45e0-8920-ab7fcafa8814",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "dd36f27f-e34d-47cc-b288-40bdd62e9c67": {
      "main": [
        [
          {
            "node": "6c969e03-9fe8-4dbf-9654-83ac551c34fe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a9d6fc11-e802-4fe5-98d6-433e818e4c6c": {
      "main": [
        [
          {
            "node": "e627a05b-bda2-43fb-8791-c885dbc4dd90",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "445b66de-d201-45e0-8920-ab7fcafa8814": {
      "main": [
        [
          {
            "node": "dd36f27f-e34d-47cc-b288-40bdd62e9c67",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5b0218d3-7449-45e2-98e2-cc7d0aa21318": {
      "main": [
        [
          {
            "node": "00796fb5-12c9-43dc-8ccc-48e40919b197",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fae0fa5c-7879-4dc2-8ef7-a899b79a9fd5": {
      "main": [
        [
          {
            "node": "941ee622-2a82-414a-a710-992d19321505",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d6c651b7-59c9-4f9e-a7ef-b71da871a381": {
      "main": [
        [
          {
            "node": "67b6658d-4f87-42af-a487-8f24b3744965",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "941ee622-2a82-414a-a710-992d19321505": {
      "main": [
        [
          {
            "node": "dd36f27f-e34d-47cc-b288-40bdd62e9c67",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bb53bd16-b23b-42c1-94c3-0c4de579ace0": {
      "main": [
        [
          {
            "node": "fae0fa5c-7879-4dc2-8ef7-a899b79a9fd5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09f97fab-b396-411e-a33d-e845be8d7935": {
      "main": [
        [
          {
            "node": "d6c651b7-59c9-4f9e-a7ef-b71da871a381",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aabb8208-c624-496e-a2fc-acda25e73cb2": {
      "main": [
        [
          {
            "node": "a05b791e-fb08-4b9a-b197-44ae5ba9f7da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "67b6658d-4f87-42af-a487-8f24b3744965": {
      "main": [
        [
          {
            "node": "0c87598f-852e-4c50-a81b-30cd0ee48c37",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a05b791e-fb08-4b9a-b197-44ae5ba9f7da": {
      "main": [
        [
          {
            "node": "a9d6fc11-e802-4fe5-98d6-433e818e4c6c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋‚˜์š”?

์œ„์˜ JSON ๊ตฌ์„ฑ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ n8n ์ธ์Šคํ„ด์Šค์—์„œ ์ƒˆ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  "JSON์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ"๋ฅผ ์„ ํƒํ•œ ํ›„, ๊ตฌ์„ฑ์„ ๋ถ™์—ฌ๋„ฃ๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ธ์ฆ ์„ค์ •์„ ์ˆ˜์ •ํ•˜์„ธ์š”.

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์–ด๋–ค ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•œ๊ฐ€์š”?

๊ณ ๊ธ‰ - ์ฝ˜ํ…์ธ  ์ œ์ž‘, ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ AI

์œ ๋ฃŒ์ธ๊ฐ€์š”?

์ด ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ์™„์ „ํžˆ ๋ฌด๋ฃŒ์ด๋ฉฐ ์ง์ ‘ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์‚ฌ ์„œ๋น„์Šค(์˜ˆ: OpenAI API)๋Š” ์‚ฌ์šฉ์ž ์ง์ ‘ ๋น„์šฉ์„ ์ง€๋ถˆํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ์›Œํฌํ”Œ๋กœ์šฐ ์ถ”์ฒœ

๋ฐ”์ด๋Ÿด TikTok ๋น„๋””์˜ค ์ƒ์„ฑ๊ธฐ: VEED ์•„๋ฐ”ํƒ€๋ฅผ ์‚ฌ์šฉํ•œ UGC ๋น„๋””์˜ค ์ž๋™ ์ƒ์„ฑ
VEED.io AI ์•„๋ฐ”ํƒ€, ElevenLabs, GPT-4๋กœ TikTok ๋น„๋””์˜ค ์ž๋™ ์ƒ์„ฑ
Set
Code
Wait
+
Set
Code
Wait
35 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
๐Ÿ’ฅ NanoBanana, Seedream 4, ChatGPT Image ๋ฐ Veo 3๋ฅผ ์‚ฌ์šฉํ•œ ๋™์˜์ƒ ๊ด‘๊ณ  ์ž๋™ํ™” - VIDE
AI(NanoBanana, Seedream, GPT-4o, Veo 3)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋””์˜ค ๊ด‘๊ณ  ์บ ํŽ˜์ธ ์ž๋™ํ™” ๋ฐ ๊ฒŒ์‹œ
Set
Code
Wait
+
Set
Code
Wait
63 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
๐Ÿ’ฅ HeyGen II - ๋‚˜๋ฅผ ๋ณต์ œํ•˜๋ผ - ์•„์ด๋””์–ด๋ถ€ํ„ฐ ๊ฒŒ์‹œ๊นŒ์ง€: YouTube, TikTok, Instagram์„ ์œ„ํ•œ GPT-5 ๋น„๋””์˜ค ์ž๋™ํ™” - ๋น„๋””์˜ค
HeyGen, GPT-5 ๋ฐ ์†Œ์…œ ๊ฒŒ์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ์Œ์„ฑ ์ž…๋ ฅ ๋น„๋””์˜ค ์ œ์ž‘ ์ž๋™ํ™”
If
Set
Wait
+
If
Set
Wait
41 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
๐Ÿ’ฅ ๋น„๋””์˜ค ๋งํฌ์—์„œ YouTube ์ธ๋„ค์ผ ์ž๋™ ์ƒ์„ฑ
Templated.io ๋ฐ Blotato๋ฅผ ์‚ฌ์šฉํ•œ YouTube ์ธ๋„ค์ผ ์ƒ์„ฑ ๋ฐ ์†Œ์…œ ๋ฏธ๋””์–ด ๊ฒŒ์‹œ ์ž๋™ํ™”
Set
Code
Wait
+
Set
Code
Wait
25 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
HeyGen๊ณผ Google Sheets ํ†ตํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ AI ๊ฐ€์ƒ ์ด๋ฏธ์ง€ ๋น„๋””์˜ค ์ƒ์„ฑ
GPT-5์„ ์‚ฌ์šฉํ•˜์—ฌ AI ๊ฐ€์ƒ ์ธ๋ฌผ ๋น„๋””์˜ค ์ƒ์„ฑ ๋ฐ ์†Œ์…œ ๋ฏธ๋””์–ด ํ”Œ๋žซํผ์— ๊ฒŒ์‹œ
If
Set
Wait
+
If
Set
Wait
41 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
๐Ÿ’ฅ Blotato์™€ Sora 2๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ปค๋จธ์Šค UGC ํ”„๋กœ๋ชจ์…˜ ๋น„๋””์˜ค ์ƒ์„ฑ
OpenAI, Sora 2, Blotato๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์ž์ƒ๊ฑฐ๋ž˜์—์„œ UGC ํ”„๋กœ๋ชจ์…˜ ๋น„๋””์˜ค ์ƒ์„ฑ
If
Set
Code
+
If
Set
Code
34 ๋…ธ๋“œDr. Firas
์ฝ˜ํ…์ธ  ์ œ์ž‘
์›Œํฌํ”Œ๋กœ์šฐ ์ •๋ณด
๋‚œ์ด๋„
๊ณ ๊ธ‰
๋…ธ๋“œ ์ˆ˜35
์นดํ…Œ๊ณ ๋ฆฌ2
๋…ธ๋“œ ์œ ํ˜•9
๋‚œ์ด๋„ ์„ค๋ช…

๊ณ ๊ธ‰ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ 16+๊ฐœ ๋…ธ๋“œ์˜ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ

์ €์ž
Dr. Firas

Dr. Firas

@drfiras

Automation expert and certified trainer. I create hands-on courses to master automation with n8n. Contact me to access my exclusive training and start building powerful workflows today. ๐Ÿš€

์™ธ๋ถ€ ๋งํฌ
n8n.io์—์„œ ๋ณด๊ธฐ โ†’

์ด ์›Œํฌํ”Œ๋กœ์šฐ ๊ณต์œ 

์นดํ…Œ๊ณ ๋ฆฌ

์นดํ…Œ๊ณ ๋ฆฌ: 34