{
  "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
          }
        ]
      ]
    }
  }
}