TikTok-Karussell-Replikator und Übersetzer

Experte

Dies ist ein Content Creation, Multimodal AI-Bereich Automatisierungsworkflow mit 21 Nodes. Hauptsächlich werden If, Wait, Gmail, SplitOut, Aggregate und andere Nodes verwendet. Automatische Übersetzung und Neuerstellung von TikTok-Karussell-Inhalten mit Gemini Vision und Midjourney

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • Google Sheets API-Anmeldedaten
  • OpenAI API Key
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "id": "X6VDrKCPuYTJ0C2N",
  "meta": {
    "instanceId": "f450cd0986d5bfb741d4d1b31068440b1642915c91f795fd72913ef923830e67",
    "templateCredsSetupCompleted": true
  },
  "name": "TikTok Carousel Replicator & Translator",
  "tags": [],
  "nodes": [
    {
      "id": "e4fd6e4d-dcaf-4f3d-9a43-a5d4c9a4cbff",
      "name": "Tägliche TikTok-Prüfung",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        64,
        144
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "0f6cc537-4250-4bbe-a1d6-b3d664e91b0a",
      "name": "TikTok RSS-Feed abrufen",
      "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-Feed parsen",
      "type": "n8n-nodes-base.moveBinaryData",
      "position": [
        656,
        144
      ],
      "parameters": {
        "mode": "jsonToBinary",
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "b4aed3a0-d173-4cde-b9af-069b11de4d3d",
      "name": "Filter: Nur 3-Bild-Beiträge",
      "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": "Bilder aufteilen",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        48,
        560
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "images"
      },
      "typeVersion": 1
    },
    {
      "id": "bfb111ff-7b4a-4826-9dfb-eab08413fff3",
      "name": "Bild herunterladen",
      "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": "Text & Layout extrahieren (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-Prompt erstellen",
      "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": "Neues Bild generieren (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": "Auf Bildgenerierung warten",
      "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 Bilder kombinieren",
      "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": "In Review-Tabelle speichern",
      "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": "Review-Benachrichtigung senden",
      "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": "Überwachungsbereich",
      "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": "Analysebereich",
      "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": "Übersetzungsbereich",
      "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": "Generierungsbereich",
      "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": "Auslieferungsbereich",
      "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": "Einrichtungsanleitung",
      "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": "Auf Englisch übersetzen",
      "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
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Experte - Content-Erstellung, Multimodales KI

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Experte
Anzahl der Nodes21
Kategorie2
Node-Typen14
Schwierigkeitsbeschreibung

Für fortgeschrittene Benutzer, komplexe Workflows mit 16+ Nodes

Autor
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!

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34