8
n8n 한국어amn8n.com

템플릿 - Jsoncut 이미지를 비디오로 변환 - nocodb

고급

이것은자동화 워크플로우로, 32개의 노드를 포함합니다.주로 If, Code, Wait, Merge, NocoDb 등의 노드를 사용하며. GPT, Gemini 및 JsonCut를 사용하여 텍스트 힌트로 바이러스적 전파 이야기 비디오 생성

사전 요구사항
  • 대상 API의 인증 정보가 필요할 수 있음
  • OpenAI API Key

카테고리

-
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "FeATxwI6wsWxI9FS",
  "meta": {
    "instanceId": "9d644af8fe730dfb972042f018ed45ff1dc2e7905a9737d59584dbe5b8c7f571",
    "templateCredsSetupCompleted": true
  },
  "name": "Template-Jsoncut-images-to-video-nocodb",
  "tags": [
    {
      "id": "4f5HsQRwHRxYIUuf",
      "name": "jsoncut",
      "createdAt": "2025-10-12T07:39:06.742Z",
      "updatedAt": "2025-10-12T07:39:06.742Z"
    }
  ],
  "nodes": [
    {
      "id": "efbe1b62-900e-4b67-9269-b260fab0fa93",
      "name": "대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        1808,
        -304
      ],
      "webhookId": "4dbe100a-7853-4e41-aca9-e85575d1782a",
      "parameters": {
        "unit": "seconds",
        "amount": 3
      },
      "typeVersion": 1
    },
    {
      "id": "c6ecd939-fca4-495f-ba6e-e4942d840729",
      "name": "성공 시",
      "type": "n8n-nodes-base.if",
      "position": [
        2224,
        -304
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.data.status }}",
              "value2": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "913331fc-3926-4fce-b727-f1ef610d9ae3",
      "name": "오류 시",
      "type": "n8n-nodes-base.if",
      "position": [
        2240,
        -64
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $json.data.status }}",
              "value2": "FAILED"
            },
            {
              "value1": "={{ $json.data.status }}",
              "value2": "CANCELLED"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c89e1256-72cd-4346-9043-4b7630e45626",
      "name": "이미지 다운로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2400,
        -320
      ],
      "parameters": {
        "url": "=https://api.jsoncut.com/api/v1/files/{{ $json.data.outputFileId }}/download",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/octet-stream"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "c1b3af1d-fab0-4c91-88ef-8d5fbae01823",
      "name": "오류 중지",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        2432,
        -64
      ],
      "parameters": {
        "errorMessage": "Failed to generate image"
      },
      "typeVersion": 1
    },
    {
      "id": "1c23012e-a186-4174-bd63-8e05bea44b81",
      "name": "집계",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1376,
        -304
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "upload_results"
      },
      "typeVersion": 1
    },
    {
      "id": "d9dbc3a6-e2d1-47a3-979e-014ba6f2e26b",
      "name": "메모지",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        672,
        -608
      ],
      "parameters": {
        "width": 432,
        "height": 896,
        "content": "### Upload Files to JsonCut API"
      },
      "typeVersion": 1
    },
    {
      "id": "1a9195a4-e997-4d80-9abb-99a96ee3ab9c",
      "name": "메모지1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1520,
        -400
      ],
      "parameters": {
        "color": 4,
        "width": 1104,
        "height": 576,
        "content": "### Create Job with Jsoncut API and wait for the result\nAlternatively, the JsonCut Community node can also be used (https://github.com/jsoncut/n8n-nodes-jsoncut)."
      },
      "typeVersion": 1
    },
    {
      "id": "116c4e0b-2533-4ef1-bee3-8c90d15b1527",
      "name": "JsonCut 작업 생성",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1584,
        -304
      ],
      "parameters": {
        "url": "https://api.jsoncut.com/api/v1/jobs",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"type\": \"video\",\n  \"config\": {\n    \"width\": 1080,\n    \"height\": 1920,\n    \"fps\": 25,\n    \"format\": \"mp4\",\n    \"audioTracks\": [\n      {\n        \"path\": \"{{ $json.upload_results[1].body.data.storageUrl }}\",\n        \"mixVolume\": 0.8,\n        \"start\": 1,\n        \"cutFrom\": 0,\n        \"cutTo\": {{ $('calculate audio duration').item.json.duration_seconds }}\n      },\n      {\n        \"path\": \"{{ $json.upload_results[2].data.storageUrl }}\",\n        \"mixVolume\": 0.2,\n        \"start\": 0,\n        \"cutFrom\": 0\n      }\n    ],\n    \"defaults\": {\n      \"layer\": {\n        \"googleFont\": \"Montserrat:700\",\n        \"textColor\": \"#ffffff\",\n        \"fontSize\": 54\n      }\n    },\n    \"clips\": [\n      {\n        \"duration\": {{ $('calculate audio duration').item.json.duration_seconds + 2 }},\n        \"layers\": [\n          {\n            \"type\": \"fill-color\",\n            \"color\": \"#000000\"\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[0].storageUrl[0] }}\",\n            \"start\": 1,\n            \"stop\": {{ 1 + ($('calculate audio duration').item.json.duration_seconds / 5) }},\n            \"zoomDirection\": \"in\",\n            \"zoomAmount\": 0.15,\n            \"height\": 1,\n            \"opacity\": 0.9\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[0].storageUrl[1] }}\",\n            \"start\": {{ 1 + ($('calculate audio duration').item.json.duration_seconds / 5) }},\n            \"stop\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 2 ) }},\n            \"zoomDirection\": \"right\",\n            \"zoomAmount\": 0.15,\n            \"height\": 1,\n            \"opacity\": 0.9\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[0].storageUrl[2] }}\",\n            \"start\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 2 ) }},\n            \"stop\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 3 ) }},\n            \"zoomDirection\": \"left\",\n            \"zoomAmount\": 0.15,\n            \"height\": 1,\n            \"opacity\": 0.9\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[0].storageUrl[3] }}\",\n            \"start\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 3 ) }},\n            \"stop\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 4 ) }},\n            \"zoomDirection\": \"out\",\n            \"zoomAmount\": 0.15,\n            \"height\": 1,\n            \"opacity\": 0.9\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[0].storageUrl[4] }}\",\n            \"start\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 5) * 4 ) }},\n            \"stop\": {{ $('calculate audio duration').item.json.duration_seconds + 1 }},\n            \"zoomDirection\": \"in\",\n            \"zoomAmount\": 0.15,\n            \"height\": 1,\n            \"opacity\": 0.9\n          },\n          {\n            \"type\": \"image-overlay\",\n            \"path\": \"{{ $json.upload_results[3].data.storageUrl }}\",\n            \"start\": 1,\n            \"stop\": {{ $('calculate audio duration').item.json.duration_seconds + 1 }},\n            \"position\": \"bottom\",\n            \"width\": 0.1,\n            \"height\": 0.1,\n            \"zoomDirection\": null\n          },\n          {\n            \"type\": \"title\",\n            \"text\": \"{{ $('Generate content and Image Prompt').item.json.message.content.text_segments[0] }}\",\n            \"start\": 1,\n            \"stop\": {{ 1 + ($('calculate audio duration').item.json.duration_seconds / 4) }},\n            \"position\": \"center\",\n            \"zoomDirection\": null\n          },\n          {\n            \"type\": \"title\",\n            \"text\": \"{{ $('Generate content and Image Prompt').item.json.message.content.text_segments[1] }}\",\n            \"start\": {{ 1 + ($('calculate audio duration').item.json.duration_seconds / 4) }},\n            \"stop\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 4) * 2 ) }},\n            \"position\": \"center\",\n            \"zoomDirection\": null\n          },\n          {\n            \"type\": \"title\",\n            \"text\": \"{{ $('Generate content and Image Prompt').item.json.message.content.text_segments[2] }}\",\n            \"start\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 4) * 2 ) }},\n            \"stop\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 4) * 3 ) }},\n            \"position\": \"center\",\n            \"zoomDirection\": null\n          },\n          {\n            \"type\": \"title\",\n            \"text\": \"{{ $('Generate content and Image Prompt').item.json.message.content.text_segments[3] }}\",\n            \"start\": {{ 1 + ( ($('calculate audio duration').item.json.duration_seconds / 4) * 3 ) }},\n            \"stop\": {{ $('calculate audio duration').item.json.duration_seconds + 1 }},\n            \"position\": \"center\",\n            \"zoomDirection\": null\n          }\n        ]\n      }\n    ]\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "8368485d-a6e4-4376-8f7f-b5633844dba3",
      "name": "JsonCut 작업 상태 확인",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2032,
        -304
      ],
      "parameters": {
        "url": "=https://api.jsoncut.com/api/v1/jobs/{{ $('Create JsonCut Job').item.json.data.jobId }}",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "e5750b7b-8b1c-4abd-9ffe-7e474991c710",
      "name": "콘텐츠 및 이미지 프롬프트 생성",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -96,
        -448
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "GPT-5-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=You are a creative video director and scriptwriter for short-form social media videos (Instagram, TikTok, YouTube Shorts).  \nYour task is to generate **cohesive and emotionally consistent content** based on a given *theme*:\n\n```\n{{ $json['Video Theme'] }}\n```\nand the *setting* (ignore if empty):\n```\n{{ $json['Video Setting'] || \"\"}}\n```\n\nUse the following Style for the background images (if not empty). Also keep the full style for each image prompt (e.g. is it a painting or photo?):\n```\n{{ $json['Image Style'] || \"\"}}\n```\n\n---\n\n### GOAL\nCreate a concept for a 20–40 second video with consistent **visual style, tone, and lighting**, including:\n1. **5 detailed prompts** for AI-generated background images  \n2. **1 full narration text** (to be spoken by a narrator)  \n3. **4 sequential text segments** that align perfectly with the narration (each about the same length, representing the same story flow)  \n4. **1 short caption** for a social media post promoting this video  \n\n---\n\n### IMAGE PROMPT GUIDELINES\n- Each image prompt should clearly describe the **scene**, **style**, **setting**, **mood**, **lighting**, and **color tone**.  \n- All 5 images must feel visually and emotionally consistent.  \n- Choose an appropriate general lighting mood (e.g. bright and hopeful, dark and moody, colorful and energetic, monochrome and calm).  \n- Example structure for each image prompt:  \n  *“A cinematic photo of [subject/scene], [lighting type], [environment details], [emotion/feeling], [color palette/style].”*  \n- Style examples: “cinematic”, “soft focus”, “warm tones”, “volumetric light”, “dreamy atmosphere”, etc.  \n\n---\n\n### TEXT CREATION GUIDELINES\n- The full text should sound natural when spoken by a narrator.  \n- It should flow smoothly and build emotional or motivational impact.  \n- The 4 text segments should represent logical parts of the full narration (e.g. setup, reflection, climax, resolution).  \n- Keep tone consistent with the image prompts (motivational, dramatic, peaceful, etc.).\n- Do not use \"-\" or \"—\" (thinking / pause )\n\n---\n\n### OUTPUT FORMAT (JSON)\nReturn the result **only** as valid JSON structured like this:\n\n```json\n{\n  \"image_prompts\": [\n    \"Prompt 1\",\n    \"Prompt 2\",\n    \"Prompt 3\",\n    \"Prompt 4\",\n    \"Prompt 5\"\n  ],\n  \"full_text\": \"Complete narration text here.\",\n  \"text_segments\": [\n    \"Part 1 text\",\n    \"Part 2 text\",\n    \"Part 3 text\",\n    \"Part 4 text\"\n  ],\n  \"caption\": \"Short social media caption here.\"\n}\n```\n\nexample output:\n{\n  \"image_prompts\": [\n    \"A cinematic sunrise over misty mountains, golden light, hopeful tone, warm color palette\",\n    \"A lone runner on a foggy trail, morning light breaking through clouds, determination and focus\",\n    \"Close-up of hands tying running shoes, soft golden backlight, texture-rich realism\",\n    \"Runner pushing through rain, dramatic contrast lighting, resilience mood\",\n    \"A victorious silhouette at the mountain peak, glowing sky, triumphant energy\"\n  ],\n  \"full_text\": \"Every dream begins as a whisper. Most give up before the echo returns. But those who keep moving, step by step, turn the whisper into a roar. Keep going, your sunrise is closer than you think.\",\n  \"text_segments\": [\n    \"Every dream begins as a whisper.\",\n    \"Most give up before the echo returns.\",\n    \"But those who keep moving, step by step, turn the whisper into a roar.\",\n    \"Keep going... your sunrise is closer than you think.\"\n  ],\n  \"caption\": \"Don’t stop now, your sunrise is coming. 🌅 #motivation #dreambig\"\n}\n"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "nthYYcpDIou7MYYb",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "9b178dec-c384-4706-9bb2-0ff6e20c6842",
      "name": "로고 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        752,
        112
      ],
      "parameters": {
        "url": "https://api.jsoncut.com/api/v1/files/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.1
    },
    {
      "id": "731fba29-88e3-49be-b923-761fed1852fa",
      "name": "메모지2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        80
      ],
      "parameters": {
        "color": 3,
        "width": 272,
        "height": 208,
        "content": "### Download external ressources"
      },
      "typeVersion": 1
    },
    {
      "id": "4489772b-903b-429a-bedf-f56acae3d07a",
      "name": "메모지3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -608
      ],
      "parameters": {
        "color": 3,
        "width": 752,
        "height": 432,
        "content": "### Generate Script and Background Image Prompts"
      },
      "typeVersion": 1
    },
    {
      "id": "9b384086-9370-445c-a405-be429a6e6850",
      "name": "워터마크 다운로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -80,
        128
      ],
      "parameters": {
        "url": "https://img.icons8.com/?size=100&id=532&format=png&color=000000",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "35542d13-b584-439c-9b4b-793b3f026a56",
      "name": "배경 오디오 목록 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -48,
        -112
      ],
      "parameters": {
        "url": "https://api.openverse.engineering/v1/audio/",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "ambiente"
            },
            {
              "name": "license",
              "value": "cc0,by,by-sa"
            },
            {
              "name": "format",
              "value": "json"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "6c959a7f-82b0-4180-ac6b-a929eca0c5d2",
      "name": "메모지5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 480,
        "height": 224,
        "content": "### download Random Background music"
      },
      "typeVersion": 1
    },
    {
      "id": "1d248ef1-3fe8-40ec-9289-b606895934a7",
      "name": "MP3 다운로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        160,
        -112
      ],
      "parameters": {
        "url": "={{ $json.results[Math.floor(Math.random() * $json.results.length)].url }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "e5c524c4-3741-49ca-b1b6-e18d3755f16b",
      "name": "배경 음악 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        752,
        -112
      ],
      "parameters": {
        "url": "https://api.jsoncut.com/api/v1/files/upload",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "86c12a83-8f1e-45e3-88d9-7c34c8f24a29",
      "name": "이미지 프롬프트 분할",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        256,
        -528
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "message.content.image_prompts"
      },
      "typeVersion": 1
    },
    {
      "id": "87c26b9e-1553-4ed4-973d-a81b11a3a519",
      "name": "이미지 생성",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        464,
        -528
      ],
      "parameters": {
        "prompt": "=Generate in the format 9:16 (no text in image): {{ $json['message.content.image_prompts'] }}",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/imagen-4.0-generate-001",
          "cachedResultName": "models/imagen-4.0-generate-001"
        },
        "options": {},
        "resource": "image"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "5rD55sSvtNJ9AlHH",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a5d687a8-bc65-4bac-915d-deccdc2c8098",
      "name": "오디오 생성",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        256,
        -336
      ],
      "parameters": {
        "input": "={{ $json.message.content.full_text }}",
        "voice": "echo",
        "options": {},
        "resource": "audio"
      },
      "credentials": {
        "openAiApi": {
          "id": "nthYYcpDIou7MYYb",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "5f471cee-9b78-4cb0-8711-dfcbb4897d01",
      "name": "배경 이미지 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        752,
        -528
      ],
      "parameters": {
        "url": "https://api.jsoncut.com/api/v1/files/upload",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          }
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "4c4efcd6-0224-4003-85b6-3269359085df",
      "name": "음성 오디오 업로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        752,
        -320
      ],
      "parameters": {
        "url": "https://api.jsoncut.com/api/v1/files/upload",
        "method": "POST",
        "options": {
          "redirect": {
            "redirect": {}
          },
          "response": {
            "response": {
              "fullResponse": true
            }
          }
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "SX6i9sHw3AcKihne",
          "name": "JsonCut API Key"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "bd711a93-ab0c-4dba-bdf2-d149030decdb",
      "name": "배경 이미지 URL",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        976,
        -528
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "data.storageUrl"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2",
      "name": "모든 업로드 병합",
      "type": "n8n-nodes-base.merge",
      "position": [
        1232,
        -336
      ],
      "parameters": {
        "numberInputs": 4
      },
      "typeVersion": 3.2
    },
    {
      "id": "4f0167a3-e215-4524-b606-7e70835796da",
      "name": "오디오 지속 시간 계산",
      "type": "n8n-nodes-base.code",
      "position": [
        464,
        -336
      ],
      "parameters": {
        "mode": "runOnceForEachItem",
        "language": "python",
        "pythonCode": "import base64\n\n# Get binary MP3 data from the input item\nbinary_data = _input.item.binary['data']\nbuffer = base64.b64decode(binary_data['data'])\n\ndef get_bitrate(bitrate_index, version, layer):\n    bitrates = {\n        'V1L3': [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320],\n        'V2L3': [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160],\n    }\n    table = bitrates['V1L3'] if version == 3 else bitrates['V2L3']\n    return table[bitrate_index] * 1000\n\nbitrate = 0\nfile_size = len(buffer)\n\n# Scan for first MP3 frame header (starts with 0xFFE)\nfor i in range(len(buffer) - 4):\n    if buffer[i] == 0xFF and (buffer[i + 1] & 0xE0) == 0xE0:\n        version_bits = (buffer[i + 1] >> 3) & 0x03\n        layer_bits = (buffer[i + 1] >> 1) & 0x03\n        bitrate_index = (buffer[i + 2] >> 4) & 0x0F\n\n        version = 3 if version_bits == 3 else 2\n        layer = 3 - (layer_bits - 1)\n\n        bitrate = get_bitrate(bitrate_index, version, layer)\n        if bitrate > 0:\n            break\n\nif bitrate == 0:\n    _input.item.json['duration_seconds'] = None\n    _input.item.json['error'] = 'Could not detect bitrate'\n    return _input.item\n\n# Calculate duration: file size (bits) / bitrate\nduration_seconds = (file_size * 8) / bitrate\n\n# Write results into JSON\n_input.item.json['duration_seconds'] = round(duration_seconds, 2)\n_input.item.json['duration_minutes'] = round(duration_seconds / 60, 2)\n_input.item.json['bitrate'] = bitrate\n_input.item.json['file_size_bytes'] = file_size\n\nreturn _input.item\n"
      },
      "typeVersion": 2
    },
    {
      "id": "efd1bde6-0c7e-41df-80ec-de2e7b80bfb4",
      "name": "폼 제출 시",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -384,
        -272
      ],
      "webhookId": "d3afd952-d50b-4e19-8eb5-9e37816d355a",
      "parameters": {
        "options": {},
        "formTitle": "Social Video Production Input",
        "formFields": {
          "values": [
            {
              "fieldType": "textarea",
              "fieldLabel": "Video Theme",
              "placeholder": "Enter the main theme or motto for your video (e.g., ‘Embrace the small wins’ for a motivational video).",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Video Setting",
              "placeholder": "Describe the setting or mood of the video (e.g., a calm, cozy evening with soft lighting for a relaxed, reflective feel).",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Image Style",
              "placeholder": "Optional: Define the style of the background images (e.g. Watercolor Painting)"
            }
          ]
        },
        "formDescription": "Provide the core idea and the setting for your video. These details will guide the generation of a polished, ready-to-publish social media video."
      },
      "typeVersion": 2.2
    },
    {
      "id": "01a424d4-17f9-4d47-8921-d231c3f1d7f3",
      "name": "NocoDB에 비디오 저장",
      "type": "n8n-nodes-base.nocoDb",
      "position": [
        2688,
        -320
      ],
      "parameters": {
        "table": "mu9r5htgfwxolb2",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldName": "Theme",
              "fieldValue": "={{ $('On form submission').item.json['Video Theme'] }}"
            },
            {
              "fieldName": "Setting",
              "fieldValue": "={{ $('On form submission').item.json['Video Setting'] || \"\" }}"
            },
            {
              "fieldName": "Style",
              "fieldValue": "={{ $('On form submission').item.json['Image Style'] || \"\" }}"
            },
            {
              "fieldName": "Output",
              "binaryData": true,
              "binaryProperty": "data"
            }
          ]
        },
        "operation": "create",
        "projectId": "prcn8tlyu7dbn60",
        "authentication": "nocoDbApiToken"
      },
      "credentials": {
        "nocoDbApiToken": {
          "id": "JQaKWA6ljHUEheIi",
          "name": "NocoDB Local"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "d341edf1-f747-43c5-8192-56900d04da04",
      "name": "메모지4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        -528
      ],
      "parameters": {
        "color": 6,
        "width": 560,
        "height": 416,
        "content": "## Exmpe Form Input\n\n1. General Video Theme:\nOvercoming struggles / personal growth\n\n2. Video Setting:\nIntrospective, deep thinking, sunrise or twilight moments, emotional reflection\n\n3. Background Image Style: \nWatercolor painting with muted colors, low light"
      },
      "typeVersion": 1
    },
    {
      "id": "763a2957-3e11-4f38-872e-ed58b84a9378",
      "name": "메모지6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        -576
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 464,
        "content": "## Stores the final output in a new Table Row\n\n### Row Content:\n1. Theme\n2. Setting\n3. Style\n4. Output Video File"
      },
      "typeVersion": 1
    },
    {
      "id": "5be95991-a680-4363-8f1b-7e0b1c7a18a1",
      "name": "메모지8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2640,
        -80
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 128,
        "content": "## Example Output\n\n[📹 View Video (Google Drive)](https://drive.google.com/file/d/1Cl0KwgRgcuBPVdGgL-nqAcheyvfVXttD/preview)\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "826504f6-36f9-4c5b-83d8-1a1f30d8f248",
  "connections": {
    "efbe1b62-900e-4b67-9269-b260fab0fa93": {
      "main": [
        [
          {
            "node": "8368485d-a6e4-4376-8f7f-b5633844dba3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "913331fc-3926-4fce-b727-f1ef610d9ae3": {
      "main": [
        [
          {
            "node": "c1b3af1d-fab0-4c91-88ef-8d5fbae01823",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "efbe1b62-900e-4b67-9269-b260fab0fa93",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1c23012e-a186-4174-bd63-8e05bea44b81": {
      "main": [
        [
          {
            "node": "116c4e0b-2533-4ef1-bee3-8c90d15b1527",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c6ecd939-fca4-495f-ba6e-e4942d840729": {
      "main": [
        [
          {
            "node": "c89e1256-72cd-4346-9043-4b7630e45626",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "913331fc-3926-4fce-b727-f1ef610d9ae3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9b178dec-c384-4706-9bb2-0ff6e20c6842": {
      "main": [
        [
          {
            "node": "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2",
            "type": "main",
            "index": 3
          }
        ]
      ]
    },
    "1d248ef1-3fe8-40ec-9289-b606895934a7": {
      "main": [
        [
          {
            "node": "e5c524c4-3741-49ca-b1b6-e18d3755f16b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c89e1256-72cd-4346-9043-4b7630e45626": {
      "main": [
        [
          {
            "node": "01a424d4-17f9-4d47-8921-d231c3f1d7f3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a5d687a8-bc65-4bac-915d-deccdc2c8098": {
      "main": [
        [
          {
            "node": "4f0167a3-e215-4524-b606-7e70835796da",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "87c26b9e-1553-4ed4-973d-a81b11a3a519": {
      "main": [
        [
          {
            "node": "5f471cee-9b78-4cb0-8711-dfcbb4897d01",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2": {
      "main": [
        [
          {
            "node": "1c23012e-a186-4174-bd63-8e05bea44b81",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "116c4e0b-2533-4ef1-bee3-8c90d15b1527": {
      "main": [
        [
          {
            "node": "efbe1b62-900e-4b67-9269-b260fab0fa93",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9b384086-9370-445c-a405-be429a6e6850": {
      "main": [
        [
          {
            "node": "9b178dec-c384-4706-9bb2-0ff6e20c6842",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "efd1bde6-0c7e-41df-80ec-de2e7b80bfb4": {
      "main": [
        [
          {
            "node": "e5750b7b-8b1c-4abd-9ffe-7e474991c710",
            "type": "main",
            "index": 0
          },
          {
            "node": "35542d13-b584-439c-9b4b-793b3f026a56",
            "type": "main",
            "index": 0
          },
          {
            "node": "9b384086-9370-445c-a405-be429a6e6850",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4c4efcd6-0224-4003-85b6-3269359085df": {
      "main": [
        [
          {
            "node": "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "86c12a83-8f1e-45e3-88d9-7c34c8f24a29": {
      "main": [
        [
          {
            "node": "87c26b9e-1553-4ed4-973d-a81b11a3a519",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "01a424d4-17f9-4d47-8921-d231c3f1d7f3": {
      "main": [
        []
      ]
    },
    "bd711a93-ab0c-4dba-bdf2-d149030decdb": {
      "main": [
        [
          {
            "node": "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e5c524c4-3741-49ca-b1b6-e18d3755f16b": {
      "main": [
        [
          {
            "node": "fa3bd8e1-a251-4fa0-a2f8-6c6ec83801b2",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "8368485d-a6e4-4376-8f7f-b5633844dba3": {
      "main": [
        [
          {
            "node": "c6ecd939-fca4-495f-ba6e-e4942d840729",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5f471cee-9b78-4cb0-8711-dfcbb4897d01": {
      "main": [
        [
          {
            "node": "bd711a93-ab0c-4dba-bdf2-d149030decdb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4f0167a3-e215-4524-b606-7e70835796da": {
      "main": [
        [
          {
            "node": "4c4efcd6-0224-4003-85b6-3269359085df",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "35542d13-b584-439c-9b4b-793b3f026a56": {
      "main": [
        [
          {
            "node": "1d248ef1-3fe8-40ec-9289-b606895934a7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e5750b7b-8b1c-4abd-9ffe-7e474991c710": {
      "main": [
        [
          {
            "node": "86c12a83-8f1e-45e3-88d9-7c34c8f24a29",
            "type": "main",
            "index": 0
          },
          {
            "node": "a5d687a8-bc65-4bac-915d-deccdc2c8098",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수32
카테고리-
노드 유형13
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34