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
사용된 노드 (21)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
1. 플레이리스트 상세 설정 로봇 복사본
Suno, GPT-4, Runway, Creatomate로 AI 생성 YouTube 음악 플레이리스트 생성
If
Set
Code
+
If
Set
Code
203 노드Joseph
콘텐츠 제작
WordPress 블로그 자동화 프로페셔널 에디션(심층 연구) v2.1 마켓
GPT-4o, Perplexity AI 및 다국어 지원을 사용한 SEO 최적화 블로그 생성 자동화
If
Set
Xml
+
If
Set
Xml
125 노드Daniel Ng
콘텐츠 제작
WordPress, OpenAI 및 Perplexity를 사용한 자동화 SEO 블로그 게시
WordPress, OpenAI 및 Perplexity를 사용한 자동화된 SEO 블로그 게시
Set
Limit
Split Out
+
Set
Limit
Split Out
43 노드LukaszB
콘텐츠 제작
Dumpling AI와 HeyGen을 사용하여 최신 AI 뉴스에서 가상 인물 비디오를 생성
Dumpling AI, GPT-4o, 및 HeyGen을 사용하여 AI 뉴스 virtually image 비디오를 생성
If
Wait
Limit
+
If
Wait
Limit
15 노드Yang
콘텐츠 제작
OpenAI-Gemini를 사용하여 Dev.to 기사 작성 - AI 생성 이미지 포함 콘텐츠
OpenAI/Gemini를 사용하여 Dev.to 기사를 작성하세요 - 이미지를 포함한 AI 생성 내용
Set
Limit
Split Out
+
Set
Limit
Split Out
30 노드LukaszB
콘텐츠 제작
💥 NanoBanana, Seedream 4, ChatGPT Image 및 Veo 3를 사용한 동영상 광고 자동화 - VIDE
AI(NanoBanana, Seedream, GPT-4o, Veo 3)를 사용하여 비디오 광고 캠페인 자동화 및 게시
Set
Code
Wait
+
Set
Code
Wait
63 노드Dr. Firas
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수21
카테고리2
노드 유형14
저자
Xavier Tai
@xaviertaiHey 👋 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에서 보기 →
이 워크플로우 공유