8
n8n 한국어amn8n.com

TikTok 캐러셀 복제기 및 번역기

고급

이것은Content Creation, Multimodal AI분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 If, Wait, Gmail, SplitOut, Aggregate 등의 노드를 사용하며. Gemini Vision 및 Midjourney를 사용하여 TikTok 캐러셀 콘텐츠 자동 번역 및 재생성

사전 요구사항
  • Google 계정 및 Gmail API 인증 정보
  • 대상 API의 인증 정보가 필요할 수 있음
  • Google Sheets API 인증 정보
  • OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "X6VDrKCPuYTJ0C2N",
  "meta": {
    "instanceId": "f450cd0986d5bfb741d4d1b31068440b1642915c91f795fd72913ef923830e67",
    "templateCredsSetupCompleted": true
  },
  "name": "TikTok Carousel Replicator & Translator",
  "tags": [],
  "nodes": [
    {
      "id": "e4fd6e4d-dcaf-4f3d-9a43-a5d4c9a4cbff",
      "name": "일일 TikTok 확인",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        64,
        144
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0f6cc537-4250-4bbe-a1d6-b3d664e91b0a",
      "name": "TikTok RSS 피드 가져오기",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Replace USERNAME with target account. Alternative: use TikTok API if available",
      "position": [
        336,
        144
      ],
      "parameters": {
        "url": "https://www.tiktok.com/@USERNAME/rss",
        "options": {
          "response": {
            "response": {
              "responseFormat": "text"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ca4a910c-c14c-42be-97aa-dbd351446141",
      "name": "RSS 피드 파싱",
      "type": "n8n-nodes-base.moveBinaryData",
      "position": [
        656,
        144
      ],
      "parameters": {
        "mode": "jsonToBinary",
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "b4aed3a0-d173-4cde-b9af-069b11de4d3d",
      "name": "필터: 3개 이미지 게시물만",
      "type": "n8n-nodes-base.if",
      "position": [
        928,
        144
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "condition-carousel",
              "operator": {
                "type": "number",
                "operation": "equals"
              },
              "leftValue": "={{ $json.imageCount }}",
              "rightValue": 3
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9ae70971-c546-46eb-8c2e-3e59aa5da694",
      "name": "이미지 분할",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        48,
        560
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "bfb111ff-7b4a-4826-9dfb-eab08413fff3",
      "name": "이미지 다운로드",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        480,
        560
      ],
      "parameters": {
        "url": "={{ $json.imageUrl }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "492fa7f6-32aa-4047-a8c4-15a519875608",
      "name": "텍스트 및 레이아웃 추출 (Gemini Vision)",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        928,
        560
      ],
      "parameters": {
        "text": "Analyze this image and extract:\n1. All visible text overlays (exact text)\n2. Text position (top/center/bottom)\n3. Text style (bold, font size relative to image)\n4. Image type (emotional scene / product mockup / text excerpt)\n5. Main visual elements\n6. Color scheme\n\nReturn as structured JSON.",
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemini-2.5-flash"
        },
        "options": {},
        "resource": "image",
        "inputType": "binary",
        "operation": "analyze"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "q1mooBuhMbhVtbDj",
          "name": "Gemini_ES_Demo"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e6140758-3349-4944-8c6a-830fff40d768",
      "name": "Midjourney 프롬프트 생성",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        464,
        944
      ],
      "parameters": {
        "text": "=Original Image Analysis:\n{{ $('Extract Text & Layout (Gemini Vision)').item.json.analysis }}\n\nTranslated Text:\n{{ $json.translatedText }}\n\nImage Type: {{ $('Extract Text & Layout (Gemini Vision)').item.json.imageType }}\n\nGenerate a Midjourney v6 prompt to recreate this image with:\n- Same composition and layout\n- Same emotional tone\n- Translated English text overlay in the same position\n- High quality, realistic style\n- Text should be: {{ $json.translatedText }}",
        "options": {
          "systemMessage": "You are an expert at creating detailed Midjourney prompts. Generate prompts that recreate the exact layout, emotion, and text positioning from the original image analysis."
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "fc9b7717-b143-4e7c-b2dc-b6287a329d88",
      "name": "OpenAI GPT-4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        464,
        1088
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "dA4yXmsPbiF3QzqQ",
          "name": "OpenAi Xtwl"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "aa71c972-0469-4858-a2dd-ac52602ca9b9",
      "name": "새 이미지 생성 (Midjourney)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        736,
        944
      ],
      "parameters": {
        "url": "https://api.midjourney.com/v1/imagine",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"prompt\": {{ JSON.stringify($json.output) }},\n  \"aspect_ratio\": \"9:16\"\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "typeVersion": 4.2
    },
    {
      "id": "299b4233-3d17-4978-bbc7-0bf702cf4f7b",
      "name": "이미지 생성 대기",
      "type": "n8n-nodes-base.wait",
      "position": [
        928,
        944
      ],
      "webhookId": "midjourney-callback-webhook",
      "parameters": {
        "resume": "webhook",
        "options": {},
        "httpMethod": "POST",
        "resumeUnit": "minutes",
        "resumeAmount": 5,
        "limitWaitTime": true
      },
      "typeVersion": 1.1
    },
    {
      "id": "1571ebe4-03e0-462e-add0-eb822bf47eab",
      "name": "3개 이미지 결합",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        48,
        1376
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "generatedImageUrl"
            },
            {
              "fieldToAggregate": "originalImageUrl"
            },
            {
              "fieldToAggregate": "translatedText"
            },
            {
              "fieldToAggregate": "imageType"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e86bf189-f18b-4989-a3dd-de0a5493dde1",
      "name": "검토 시트에 저장",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        432,
        1376
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $now.format('yyyy-MM-dd') }}",
            "Status": "Ready for Review",
            "Post URL": "={{ $json.originalPostUrl }}",
            "Image 1 - New": "={{ $json.generatedImageUrl[0] }}",
            "Image 2 - New": "={{ $json.generatedImageUrl[1] }}",
            "Image 3 - New": "={{ $json.generatedImageUrl[2] }}",
            "Image 1 - Text": "={{ $json.translatedText[0] }}",
            "Image 1 - Type": "={{ $json.generatedImageUrl[0].imageType }}",
            "Image 2 - Text": "={{ $json.translatedText[1] }}",
            "Image 2 - Type": "={{ $json.generatedImageUrl[1].imageType }}",
            "Image 3 - Text": "={{ $json.translatedText[2] }}",
            "Image 3 - Type": "={{ $json.generatedImageUrl[2].imageType }}",
            "Image 1 - Original": "={{ $json.originalImageUrl[0] }}",
            "Image 2 - Original": "={{ $json.originalImageUrl[1] }}",
            "Image 3 - Original": "={{ $json.originalImageUrl[2] }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": []
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0"
        },
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": "YOUR_GOOGLE_SHEET_ID"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "bNNrQVyG0f0LvHLl",
          "name": "xavtwl"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "79815f6e-db2e-4eef-8922-bf56d3b9f452",
      "name": "검토 알림 보내기",
      "type": "n8n-nodes-base.gmail",
      "position": [
        832,
        1376
      ],
      "webhookId": "d1a92491-cde4-4629-aa05-e18fc0b7b34e",
      "parameters": {
        "message": "=<h2>Daily TikTok Carousel Generation Complete</h2>\n<p>A new 3-image carousel has been generated and is ready for your review.</p>\n<p><strong>View in Google Sheets:</strong> <a href=\"https://docs.google.com/spreadsheets/d/YOUR_SHEET_ID\">Review Dashboard</a></p>\n<hr>\n<h3>Preview:</h3>\n<ul>\n<li><strong>Image 1 ({{ $json.generatedImageUrl[0].imageType }}):</strong><br><img src=\"{{ $json.generatedImageUrl[0] }}\" width=\"300\"><br>Text: {{ $json.translatedText[0] }}</li>\n<li><strong>Image 2 ({{ $json.generatedImageUrl[1].imageType }}):</strong><br><img src=\"{{ $json.generatedImageUrl[1] }}\" width=\"300\"><br>Text: {{ $json.translatedText[1] }}</li>\n<li><strong>Image 3 ({{ $json.generatedImageUrl[2].imageType }}):</strong><br><img src=\"{{ $json.generatedImageUrl[2] }}\" width=\"300\"><br>Text: {{ $json.translatedText[2] }}</li>\n</ul>",
        "options": {},
        "subject": "🎨 New TikTok Carousel Ready for Review"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "EPh4P9lc8dnWzrou",
          "name": "XavDemo"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "abe01273-a4ef-4926-9d77-5d7873786742",
      "name": "모니터링 섹션",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 1076,
        "height": 400,
        "content": "## 📱 TikTok Monitor\nDaily check for new carousel posts"
      },
      "typeVersion": 1
    },
    {
      "id": "cfc5514f-2172-46d4-9348-e94a7e484e35",
      "name": "분석 섹션",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        416
      ],
      "parameters": {
        "color": 3,
        "width": 1076,
        "height": 400,
        "content": "## 🔍 Extract & Analyze\nOCR + Vision AI to extract text overlays and layout"
      },
      "typeVersion": 1
    },
    {
      "id": "a542ce25-2347-4792-8609-93af68f1e95d",
      "name": "번역 섹션",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        832
      ],
      "parameters": {
        "color": 4,
        "width": 388,
        "height": 400,
        "content": "## 🌐 Translate\nAutomatic translation to English"
      },
      "typeVersion": 1
    },
    {
      "id": "a1b30c21-29d4-46ee-91ad-75ede44d0cfd",
      "name": "생성 섹션",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        832
      ],
      "parameters": {
        "color": 5,
        "width": 676,
        "height": 400,
        "content": "## 🎨 Generate New Images\nAI-powered recreation with translated text"
      },
      "typeVersion": 1
    },
    {
      "id": "305f6492-6e4f-43f7-9695-23cf24218372",
      "name": "전달 섹션",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        1248
      ],
      "parameters": {
        "color": 6,
        "width": 1076,
        "height": 448,
        "content": "## ✅ Review & Deliver\nOrganize results for client approval"
      },
      "typeVersion": 1
    },
    {
      "id": "65f6dd0c-458d-46c1-bd66-0ed90967a665",
      "name": "설정 가이드",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 528,
        "height": 1700,
        "content": "## 🎨 TikTok Carousel Replicator & Translator\nAn end-to-end automation system that monitors TikTok accounts for new 3-image carousel posts, extracts text overlays and visual layouts using AI vision analysis, translates content into English, and automatically regenerates brand-new carousel images ready for review and posting.\n\n### What It Does\nThis workflow eliminates the manual process of:\n- Daily monitoring for new carousel content\n- Screenshot capture and image extraction\n- Text transcription and translation\n- Layout recreation in design tools\n- Manual formatting and brand consistency checks\n\nInstead, it delivers **3 production-ready images to your inbox every morning**—complete with translated text, matched composition, and side-by-side comparisons for quick approval.\n\n### Key Features\n- **Automated Daily Monitoring** - Checks target TikTok accounts on schedule\n- **AI-Powered Vision Analysis** - Extracts text, layout, and composition with Gemini Vision\n- **Smart Translation** - Converts text to natural English while preserving intent\n- **Intelligent Image Generation** - Recreates carousels with Midjourney/DALL-E based on analyzed layouts\n- **Review Dashboard** - Organized Google Sheets with original vs. new comparisons\n- **Email Notifications** - Morning digest with clickable previews\n\n### Who It's For\nContent creators, social media managers, and marketing teams who need to adapt high-performing carousel content from other languages into English—without spending hours in Canva every day.\n\n### Time Saved\n**From 3+ hours of manual work → 2 minutes of review** per carousel set.\n\n### Workflow Breakdown\n**Monitor** → **Extract & Analyze** → **Translate** → **Generate** → **Review & Deliver**\n\nEach section runs automatically, processing images sequentially and delivering organized results to your review dashboard with email notifications.\n\n## 🚀 SETUP INSTRUCTIONS\n### Required Credentials:\n1. **Google Gemini API** - For vision analysis\n2. **Midjourney API** (or alternative: DALL-E, Stable Diffusion)\n3. **OpenAI API** - For prompt generation and translation enhancement\n4. **Google Sheets** - For review dashboard\n5. **Gmail** - For notifications\n\n### Configuration Steps:\n1. Replace `@USERNAME` in TikTok RSS node with target account\n2. Set your Google Sheet ID in \"Save to Review Sheet\" node\n3. Update email addresses in notification node\n4. Test with a single post before enabling daily schedule\n\n### Alternative Approaches:\n- Can use TikTok API instead of RSS (if available)\n- Can use Canva API instead of Midjourney for generation\n- Can integrate with Airtable for more advanced review workflows\n- Can add approval workflow with interactive buttons"
      },
      "typeVersion": 1
    },
    {
      "id": "e7a07314-0b19-4289-bdb2-9d43ff500014",
      "name": "영어로 번역",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        48,
        1008
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4",
          "cachedResultName": "GPT-4"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Translate {{ JSON.stringify($json.extractedText) }} to english "
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "dA4yXmsPbiF3QzqQ",
          "name": "OpenAi Xtwl"
        }
      },
      "typeVersion": 1.8
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "57a0dde8-1ac1-4e44-9c15-933fdb097944",
  "connections": {
    "fc9b7717-b143-4e7c-b2dc-b6287a329d88": {
      "ai_languageModel": [
        [
          {
            "node": "e6140758-3349-4944-8c6a-830fff40d768",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "9ae70971-c546-46eb-8c2e-3e59aa5da694": {
      "main": [
        [
          {
            "node": "bfb111ff-7b4a-4826-9dfb-eab08413fff3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bfb111ff-7b4a-4826-9dfb-eab08413fff3": {
      "main": [
        [
          {
            "node": "492fa7f6-32aa-4047-a8c4-15a519875608",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ca4a910c-c14c-42be-97aa-dbd351446141": {
      "main": [
        [
          {
            "node": "b4aed3a0-d173-4cde-b9af-069b11de4d3d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1571ebe4-03e0-462e-add0-eb822bf47eab": {
      "main": [
        [
          {
            "node": "e86bf189-f18b-4989-a3dd-de0a5493dde1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e4fd6e4d-dcaf-4f3d-9a43-a5d4c9a4cbff": {
      "main": [
        [
          {
            "node": "0f6cc537-4250-4bbe-a1d6-b3d664e91b0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e86bf189-f18b-4989-a3dd-de0a5493dde1": {
      "main": [
        [
          {
            "node": "79815f6e-db2e-4eef-8922-bf56d3b9f452",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e7a07314-0b19-4289-bdb2-9d43ff500014": {
      "main": [
        [
          {
            "node": "e6140758-3349-4944-8c6a-830fff40d768",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0f6cc537-4250-4bbe-a1d6-b3d664e91b0a": {
      "main": [
        [
          {
            "node": "ca4a910c-c14c-42be-97aa-dbd351446141",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e6140758-3349-4944-8c6a-830fff40d768": {
      "main": [
        [
          {
            "node": "aa71c972-0469-4858-a2dd-ac52602ca9b9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "299b4233-3d17-4978-bbc7-0bf702cf4f7b": {
      "main": [
        [
          {
            "node": "1571ebe4-03e0-462e-add0-eb822bf47eab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b4aed3a0-d173-4cde-b9af-069b11de4d3d": {
      "main": [
        [
          {
            "node": "9ae70971-c546-46eb-8c2e-3e59aa5da694",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aa71c972-0469-4858-a2dd-ac52602ca9b9": {
      "main": [
        [
          {
            "node": "299b4233-3d17-4978-bbc7-0bf702cf4f7b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "492fa7f6-32aa-4047-a8c4-15a519875608": {
      "main": [
        [
          {
            "node": "e7a07314-0b19-4289-bdb2-9d43ff500014",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

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

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

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

고급 - 콘텐츠 제작, 멀티모달 AI

유료인가요?

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

워크플로우 정보
난이도
고급
노드 수21
카테고리2
노드 유형14
난이도 설명

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

저자
Xavier Tai

Xavier Tai

@xaviertai

Hey 👋 I'm Xavier, founder of EasyScalers. I build AI automation systems with N8N for B2B companies. Check out my templates or hit me up in the forums if you need help with your workflows!

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34