Automated Burn-in Video Caption Generation using json2video - n8n Workflow

Use this powerful n8n workflow to automatically generate and burn-in subtitles onto videos using the json2video API. Features robust status polling and error handling.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?


  • Content creators needing fast, scalable video captioning.

  • Marketing teams looking to automate video asset preparation for social media.

  • Developers integrating video processing into their application backend using an n8n workflow.

  • Anyone seeking ready-to-use n8n templates for complex API interactions.

Overview

Generating professional, burned-in captions is essential for social media and accessibility. This specialized n8n workflow template provides a complete automation solution for video processing using the json2video API. Unlike simple integrations, this n8n template handles asynchronous API calls by implementing a robust polling mechanism using the n8n node system (Wait and If nodes).

When you use this n8n workflow, you simply provide the video URL and dimensions. The automation handles the heavy lifting: initiating the video processing request, continuously checking the status until completion, and finally extracting the URL of the newly captioned video. This makes it a highly efficient and reliable n8n workflow for high-volume video tasks.

How it Works

This n8n workflow is initiated by the Manual Trigger, designed for testing, but can easily be adapted to any n8n trigger (like a webhook or scheduled event).


  1. Configuration: The Config n8n node defines the input variables, including the video_url, width, and height of the target video.

  2. Caption Request: The json2video - Add Captions n8n node sends a POST request to the json2video API, instructing it to add subtitles based on predefined styling (font, color, box style) to the provided video URL. This request returns a project ID.

  3. Polling Loop Initiation: The Wait n8n node pauses the n8n workflow for 10 seconds. This is critical for status polling, ensuring we don't overwhelm the external API with constant requests.

  4. Status Check: The json2video - Get Status n8n node uses the project ID obtained earlier to query the API for the current video rendering status.

  5. Error Handling: The Is Error n8n node checks if the status is 'error'. If so, the n8n workflow follows the error path (Handle Error).

  6. Completion Check: If no error, the is Completed n8n node checks if the status is 'done'.

If completed (TRUE), the process moves to the final step.
If not completed (FALSE), the n8n node loops back to the Wait node, restarting the 10-second pause and the subsequent status check.

  1. Final Output: The Output n8n node extracts and structures all relevant metadata, including the final video URL and rendering details, completing the n8n workflow execution.

Installation Guide

To deploy and utilize this n8n workflow, follow these steps:


  1. Import the n8n template: Copy the provided JSON and import it directly into your n8n instance.

  2. json2video Account & API Key: Sign up for json2video and obtain your API key.

  3. n8n Credentials Setup:

In your n8n environment, navigate to 'Credentials' and create new credentials of type 'Custom Auth'.
Name the credential (e.g., 'json2video').
Under 'Authentication', select 'Custom'.
Paste the following JSON into the configuration, replacing "your-json2video-api-key" with your actual key:

{
"headers": {
"x-api-key": "your-json2video-api-key"
}
}
* Save the credential.

  1. Connect Credentials: For both the json2video - Add Captions and json2video - Get Status n8n node instances, select the newly created 'json2video' credential.

  2. Configure Input: In the Config n8n node, update the video_url, width, and height parameters to match your video source.

  3. Test the n8n workflow: Click 'Test workflow' to see the process in action.

Node Details

When clicking ‘Test workflow’ (Manual Trigger n8n trigger): Initiates the execution for testing purposes. In production, this would be replaced by a relevant n8n trigger, like a Webhook.
Config (Set n8n node): Acts as the input configuration. It sets the video_url, width (1080), and height (1920) variables used later in the API request.
json2video - Add Captions (HTTP Request n8n node): Sends the initial request to start the video generation process. It utilizes dynamic JSON body construction, inserting the video details and predefined subtitle styling (classic-progressive style, Oswald font).
Wait (Wait n8n node): Implements a crucial 10-second delay in the polling loop, preventing immediate re-checks of the status.
json2video - Get Status (HTTP Request n8n node): Polls the json2video API endpoint using the project ID returned from the previous step to check if the video rendering is complete.
Is Error (If n8n node): Checks if the API response status is 'error' for resilient error handling within the n8n workflow.
is Completed (If n8n node): Determines if the video status is 'done'. If true, the n8n workflow progresses; otherwise, it loops back to the Wait n8n node.
Output (Set n8n node): Extracts finalized data points, including the generated video url, duration, and size, providing a clean, consumable output from the n8n workflow.

Related n8n Workflows

Free

Nodes: 7 Nodes
Updated: December 26 2025
View all
Created by

🎉 Do you want to master AI automation, so you can save time and build cool stuff? I’ve created a welcoming Skool community for non-technical yet resourceful learners.

Featured*