AutomationFlowsSocial Media › Auto-dub Viral Instagram and Tiktok Videos with Fal AI Elevenlabs Dubbing

Auto-dub Viral Instagram and Tiktok Videos with Fal AI Elevenlabs Dubbing

Original n8n title: Auto-dub Viral Instagram and Tiktok Videos 📲 with Fal AI Elevenlabs Dubbing 🎙️

ByDavide Boizza @n3witalia on n8n.io

This workflow automates the process of dubbing videos using Fal AI's ElevenLabs integration and publishing them directly to Instagram and TikTok.

Event trigger★★★★☆ complexity19 nodesHTTP RequestN8N Nodes Postiz
Social Media Trigger: Event Nodes: 19 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #12867 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "9a2uQxkkzUnvVC9BJBnoc",
  "name": "Instagram & TikTok Video Dubbing Fal AI",
  "tags": [],
  "nodes": [
    {
      "id": "dfc77fe2-21f2-493c-9e07-c7230723a2b2",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1360,
        944
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "67a8a3b6-d58f-4c16-8425-bcdb40807b1e",
      "name": "Set params",
      "type": "n8n-nodes-base.set",
      "position": [
        -1072,
        944
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "eac89c54-5ee2-4366-95cb-657da5967138",
              "name": "video_url",
              "type": "string",
              "value": "VIDEO_URL"
            },
            {
              "id": "1df84f40-4282-4976-888d-1021234880d1",
              "name": "target_audio",
              "type": "string",
              "value": "es"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f845d0f4-529c-4b42-9847-7f47f93ac8f2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        768
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 464,
        "content": "## STEP 1 - Set params\n**Configure Input Parameters**  \n   In the *Set params* node, define:\n   - `video_url`: Direct URL to the source video.\n   - `target_audio`: Language code (e.g., `en`, `es`, `it`) for dubbing."
      },
      "typeVersion": 1
    },
    {
      "id": "e25b681e-8a15-45d4-b508-7e7b09b40b0b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -816,
        768
      ],
      "parameters": {
        "color": 7,
        "width": 480,
        "height": 464,
        "content": "## STEP 2- AL AI Elevenlabs Dubbing\nThe video file is sent to the Fal AI **ElevenLabs Dubbing API**, which initiates audio dubbing in the specified target language."
      },
      "typeVersion": 1
    },
    {
      "id": "f3848152-8178-437a-8517-0126bf1ff263",
      "name": "Wait 30 sec.",
      "type": "n8n-nodes-base.wait",
      "position": [
        -224,
        944
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "a4775ba8-6a7e-4385-837a-9654c72c39fd",
      "name": "Get final video url",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        384,
        928
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/elevenlabs/requests/{{ $json.request_id }}",
        "options": {},
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "071f6104-e17f-45bd-9b3e-eb9384214e4f",
      "name": "Get final video file",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        624,
        928
      ],
      "parameters": {
        "url": "={{ $json.video.url }}",
        "options": {}
      },
      "typeVersion": 4.3
    },
    {
      "id": "1981ed11-d79e-475d-8d6f-ee88144c41aa",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        944,
        752
      ],
      "parameters": {
        "color": 7,
        "width": 468,
        "height": 200,
        "content": "Set YOUR_USERNAME and TITLE for [Upload-Post]((https://www.upload-post.com/?linkId=lp_144414&sourceId=n3witalia&tenantId=upload-post-app))"
      },
      "typeVersion": 1
    },
    {
      "id": "5d56bad0-af3e-4de0-9971-bcaa9bd0404c",
      "name": "Upload to Postiz",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        992,
        1040
      ],
      "parameters": {
        "url": "https://api.postiz.com/public/v1/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "file",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "4f254b86-fb67-4371-ba62-e14e2d75c56b",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 576,
        "height": 576,
        "content": "## STEP 4 - Upload video\nUpload video to TikTok and Instagram"
      },
      "typeVersion": 1
    },
    {
      "id": "ed85b060-e1e5-43fd-88df-87409b6605a0",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        944,
        976
      ],
      "parameters": {
        "color": 7,
        "width": 468,
        "height": 200,
        "content": "Set Channel_ID and TITLE for [Postiz](https://affiliate.postiz.com/n3witalia) (TikTok, Instagram, Facebook, X, Youtube)"
      },
      "typeVersion": 1
    },
    {
      "id": "49b5fd34-a2ff-4b54-9c02-d0091e722644",
      "name": "Video Dubbing",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -624,
        944
      ],
      "parameters": {
        "url": "https://queue.fal.run/fal-ai/elevenlabs/dubbing",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"video_url\": \"{{ $json.video_url }}\",\n  \"target_lang\": \"{{ $json.target_audio }}\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "98bd1fd0-c433-4040-ba69-64cfd4e3652a",
      "name": "Upload to Instagram",
      "type": "n8n-nodes-postiz.postiz",
      "position": [
        1232,
        1040
      ],
      "parameters": {
        "date": "={{ $now.format('yyyy-LL-dd') }}T{{ $now.format('HH:ii:ss') }}",
        "posts": {
          "post": [
            {
              "value": {
                "contentItem": [
                  {
                    "image": {
                      "imageItem": [
                        {
                          "id": "={{ $json.id }}",
                          "path": "={{ $json.path }}"
                        }
                      ]
                    },
                    "content": "=XXX"
                  }
                ]
              },
              "settings": {
                "setting": [
                  {
                    "key": "__type",
                    "stringValue": "instagram"
                  },
                  {
                    "key": "post_type",
                    "stringValue": "post"
                  }
                ]
              },
              "integrationId": "XXX"
            }
          ]
        },
        "shortLink": true
      },
      "credentials": {
        "postizApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0cc52094-69ce-42aa-bdad-c824eba62585",
      "name": "Upload to TikTok",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        976,
        816
      ],
      "parameters": {
        "url": "https://api.upload-post.com/api/upload",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "multipart-form-data",
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "title",
              "value": "=XXX"
            },
            {
              "name": "user",
              "value": "YOUR_USERNAME"
            },
            {
              "name": "platform[]",
              "value": "tiktok"
            },
            {
              "name": "video",
              "parameterType": "formBinaryData",
              "inputDataFieldName": "data"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3133f4d4-74e0-46b0-b923-82ac2b74dd29",
      "name": "Get status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -32,
        944
      ],
      "parameters": {
        "url": "=https://queue.fal.run/fal-ai/elevenlabs/requests/{{ $('Video Dubbing').item.json.request_id }}/status ",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "f2d73eed-6c78-4e58-aaab-886350864249",
      "name": "Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        144,
        944
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "383d112e-2cc6-4dd4-8985-f09ce0bd1781",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "COMPLETED"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "527690be-1fde-4302-bb2e-eab3e1eb1cc6",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        768
      ],
      "parameters": {
        "color": 7,
        "width": 1152,
        "height": 464,
        "content": "## STEP 3- Get and Download video\nAfter the wait, it checks the status and retrieves the final dubbed file."
      },
      "typeVersion": 1
    },
    {
      "id": "1f596355-7f33-47c1-8aa3-1640963330d9",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1168,
        160
      ],
      "parameters": {
        "width": 1136,
        "height": 576,
        "content": "## Auto-Dub Viral Videos for Instagram & TikTok with ElevenLabs using Fal AI\nThis workflow automates the process of **dubbing videos** using Fal AI's **ElevenLabs** integration and publishing them directly to **Instagram and TikTok**.\n\nThis workflow is ideal for social media managers, content creators, and marketing teams who need to **quickly localize and publish video content** across multiple social platforms like Instagram and TikTok.\n\nUsing this workflow, you can take a video in one language (e.g., English) and automatically generate a dubbed version in another language (e.g., Spanish) for publishing on Instagram and TikTok.\n\nThe workflow supports multiple target languages through ElevenLabs, including but not limited to: English (en), Spanish (es), Italian (it), French (fr), German (de), and many others.\n\n### **How it works:**\n\nThis workflow automates dubbing and publishing videos across Instagram and TikTok. It starts with a manual trigger where the user provides a video URL and target language. The video is sent to Fal AI\u2019s ElevenLabs API for audio dubbing, with periodic status checks until completion. Once the dubbed version is ready, it\u2019s downloaded and uploaded simultaneously to TikTok via Upload-Post  and to Instagram via Postiz. Finally, the workflow triggers Postiz to publish the Instagram post with preconfigured metadata, completing the dubbing-to-publishing automation.\n\n### **Setup steps:**\n\nDefine input parameters (`video_url`, `target_audio`) in the *Set params* node. Configure credentials for Fal AI, Postiz, and Upload-Post APIs in n8n. Customize TikTok username/title and Instagram channel ID/content. Adjust the 30-second wait time based on typical video length. After setup, test the workflow by executing it in n8n to confirm successful dubbing, uploading, and publishing across both platforms.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bfb4fa3c-d00c-4f24-b990-4f6b356b3559",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 736,
        "height": 736,
        "content": "## MY NEW YOUTUBE CHANNEL\n\ud83d\udc49 [Subscribe to my new **YouTube channel**](https://youtube.com/@n3witalia). Here I\u2019ll share videos and Shorts with practical tutorials and **FREE templates for n8n**.\n\n[![image](https://n3wstorage.b-cdn.net/n3witalia/youtube-n8n-cover.jpg)](https://youtube.com/@n3witalia)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "4a89899a-94c3-4a5b-9be9-c3a64afca4df",
  "connections": {
    "Completed?": {
      "main": [
        [
          {
            "node": "Get final video url",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 30 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get status": {
      "main": [
        [
          {
            "node": "Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set params": {
      "main": [
        [
          {
            "node": "Video Dubbing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30 sec.": {
      "main": [
        [
          {
            "node": "Get status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Video Dubbing": {
      "main": [
        [
          {
            "node": "Wait 30 sec.",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to Postiz": {
      "main": [
        [
          {
            "node": "Upload to Instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get final video url": {
      "main": [
        [
          {
            "node": "Get final video file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get final video file": {
      "main": [
        [
          {
            "node": "Upload to TikTok",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload to Postiz",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Set params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates the process of dubbing videos using Fal AI's ElevenLabs integration and publishing them directly to Instagram and TikTok.

Source: https://n8n.io/workflows/12867/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

This workflow automates the end-to-end process of video dubbing using ElevenLabs, storage on Google Drive, and publishing on Youtube.

HTTP Request, Google Drive, N8N Nodes Postiz
Social Media

Notion__DriveDropbox_Sync. Uses notionTrigger, googleDrive, dropbox, notion. Event-driven trigger; 47 nodes.

Notion Trigger, Google Drive, Dropbox +3
Social Media

This n8n workflow automates the process of uploading video and image advertisements to Meta Ads Manager via the Meta Graph API (Facebook Ads) directly from Google Sheets and Google Drive. The workflow

Facebook Graph Api, Google Sheets, HTTP Request +2
Social Media

This workflow provides an end-to-end automation for discovering, evaluating, and optionally downloading high-quality educational YouTube videos.

HTTP Request, Google Sheets
Social Media

Template Description WDF Top Keywords: This workflow is designed to streamline keyword research by automating the process of generating, filtering, and analyzing Google and YouTube keyword data. Ensur

Noco Db, HTTP Request