{"id":"Tygtx1aZi9pLdtUo","meta":{"instanceId":"workflow-ce1a5050","versionId":"1.0.0","createdAt":"2025-09-29T07:07:59.510020","updatedAt":"2025-09-29T07:07:59.510035","owner":"n8n-user","license":"MIT","category":"automation","status":"active","priority":"high","environment":"production"},"name":"Fully automated Video Captions generation with json2video","nodes":[{"id":"38e862a1-dc25-4a41-b0e1-5ebba1032e0a","name":"When clicking ‘Test workflow’","type":"n8n-nodes-base.manualTrigger","position":[-980,-280],"parameters":{},"typeVersion":1,"notes":"This manualTrigger node performs automated tasks as part of the workflow."},{"id":"834ac32d-4bef-4087-87af-590cd200a858","name":"json2video - Add Captions","type":"n8n-nodes-base.httpRequest","position":[-540,-280],"parameters":{"url":"{{ $env.API_BASE_URL }}","method":"POST","options":{},"jsonBody":"={\n  \"id\": \"qbaasr7s\",\n  \"resolution\": \"custom\",\n  \"quality\": \"high\",\n\"scenes\": [\n    {\n      \"id\": \"qyjh9lwj\",\n      \"comment\": \"Scene 1\",\n      \"elements\": []\n    }\n  ],\n  \"elements\": [\n    {\n      \"id\": \"q6dznzcv\",\n      \"type\": \"video\",\n      \"src\": \"{{ $json.video_url }}\"\n    },\n    {\n      \"id\": \"q41n9kxp\",\n      \"type\": \"subtitles\",\n      \"settings\": {\n        \"style\": \"classic-progressive\",\n        \"font-family\": \"Oswald\",\n        \"font-size\": 140,\n        \"word-color\": \"#FCF5C9\",\n        \"shadow-color\": \"#260B1B\",\n        \"line-color\": \"#F1E7F4\",\n        \"shadow-offset\": 2,\n        \"box-color\": \"#260B1B\"\n      },\n      \"language\": \"en\"\n    }\n  ],\n  \"width\": {{ $json.width }},\n  \"height\": {{ $json.height }}\n}","sendBody":true,"specifyBody":"json","authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpCustomAuth"},"credentials":{"httpCustomAuth":{"id":"FVrj0WeCT9IosZhh","name":"json2video"},"httpHeaderAuth":{"id":"TngzgS09J1YvLIXl","name":"Perplexity"}},"typeVersion":4.2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"93e98e02-a7e5-40d2-93a8-06c1ba3c4fb5","name":"Config","type":"n8n-nodes-base.set","position":[-780,-280],"parameters":{"options":{},"assignments":{"assignments":[{"id":"408b70d1-30ea-4f88-847d-97c59e467168","name":"video_url","type":"string","value":"{{ $env.WEBHOOK_URL }}"},{"id":"e54d0b14-3261-4d8c-83ac-b63a37981257","name":"width","type":"string","value":"1080"},{"id":"70a87f6b-8cf1-48b0-96bf-b7a8aa5bc6da","name":"height","type":"string","value":"1920"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"d3b6d3f3-d3ca-455d-929c-ffb869bd23d8","name":"Wait","type":"n8n-nodes-base.wait","position":[-180,-220],"webhookId":"f50b5765-4a91-415d-ba27-cfda281dc941","parameters":{"amount":10},"typeVersion":1.1,"notes":"This wait node performs automated tasks as part of the workflow."},{"id":"07099d4c-6012-4447-8720-af8e75521e24","name":"Is Error","type":"n8n-nodes-base.if","position":[180,-240],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a9813eb6-0dbf-41ac-837f-8f2760cbc5e3","operator":{"type":"string","operation":"equals"},"leftValue":"={{ $json.movie.status }}","rightValue":"error"}]}},"typeVersion":2.2,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"a94a6b24-4674-42ac-8db4-6e9298b44b7d","name":"Handle Error","type":"n8n-nodes-base.noOp","position":[420,-380],"parameters":{},"typeVersion":1,"notes":"This noOp node performs automated tasks as part of the workflow."},{"id":"cd6bba4e-b329-4476-b983-248bb8e4423a","name":"Output","type":"n8n-nodes-base.set","position":[460,20],"parameters":{"options":{},"assignments":{"assignments":[{"id":"c7ce3d37-6455-407a-bf57-286d91c16f97","name":"url","type":"string","value":"={{ $json.movie.url }}"},{"id":"e969f3bd-2c36-43f6-9fc3-a66a0424ec20","name":"duration","type":"number","value":"={{ $json.movie.duration }}"},{"id":"a5f9b903-40c0-432e-b030-5a1fdea844db","name":"size","type":"number","value":"={{ $json.movie.size }}"},{"id":"660565f1-8da7-4c2f-a5e0-b62130aef7cb","name":"width","type":"number","value":"={{ $json.movie.width }}"},{"id":"5e2a9144-45e5-40f2-b71e-d74b25890ab6","name":"height","type":"number","value":"={{ $json.movie.height }}"},{"id":"601f8514-61f5-4cea-9b64-373881e3c879","name":"rendering_time","type":"number","value":"={{ $json.movie.rendering_time }}"},{"id":"2b7812f9-1e44-4843-b2ca-051b54153051","name":"project","type":"string","value":"={{ $json.movie.project }}"},{"id":"1b562ac3-e62b-4d67-adab-2af0d15fd11e","name":"remaining_quota","type":"number","value":"={{ $json.remaining_quota.time }}"}]}},"typeVersion":3.4,"notes":"This set node performs automated tasks as part of the workflow."},{"id":"378e027a-b033-4490-93e6-666d3d7def86","name":"json2video - Get Status","type":"n8n-nodes-base.httpRequest","position":[0,-180],"parameters":{"url":"{{ $env.BASE_URL }}","options":{},"authentication":"{{ $credentials.genericCredentialType }}","genericAuthType":"httpCustomAuth"},"credentials":{"httpCustomAuth":{"id":"FVrj0WeCT9IosZhh","name":"json2video"},"httpHeaderAuth":{"id":"TngzgS09J1YvLIXl","name":"Perplexity"}},"typeVersion":4.2,"notes":"This httpRequest node performs automated tasks as part of the workflow."},{"id":"a818a3a6-4cef-4043-ac3e-96fa3f54373d","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-260,-300],"parameters":{"color":7,"width":640,"height":580,"content":"## Check video status"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"7258a9ec-591f-4b07-840c-3171c36f193e","name":"is Completed","type":"n8n-nodes-base.if","position":[200,40],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2643b070-cbb2-4562-9269-a61389e0c242","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.movie.status }}","rightValue":"done"}]}},"typeVersion":2.2,"notes":"This if node performs automated tasks as part of the workflow."},{"id":"cbce69e0-730c-46ea-bd0a-b8694bd7780d","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-1700,-480],"parameters":{"width":640,"height":820,"content":"# Automatically Generate Captions for Your Videos with json2video\n\nThis workflow automatically adds captions to your videos using [json2video]({{ $env.WEBHOOK_URL }} a powerful service for video automation, that integrates seamlessly with n8n.\n\n# [👉🏻 Try json2video for free 👈🏻]({{ $env.WEBHOOK_URL }}\n\n## Setup\n\n### Step 1: Create a json2video Account & API Key\n1. Sign up for a [json2video account]({{ $env.WEBHOOK_URL }}\n2. Once registered, you will receive your API key via email.\n\n### Step 2: Create n8n Credentials\n1. In n8n, create new credentials and select **\"Custom Auth\"** as the type.\n2. Paste the following JSON code into the credentials configuration, replacing `\"your-json2video-api-key\"` with your actual API key:\n\n    ```json\n    {\n      \"headers\": {\n        \"x-api-key\": \"your-json2video-api-key\"\n      }\n    }\n    ```\n\n### Step 3: Connect Your Credentials\n1. In your n8n workflow, locate the two HTTP nodes that interact with json2video.\n2. Select the credentials you created in Step 2 for both nodes.\n"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."},{"id":"4ce3a85f-3abc-48e9-8840-f37f32490b62","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-760,-120],"parameters":{"width":440,"height":200,"content":"# ☝️ Provide Video Details\n\nFor the workflow to add captions, please provide:\n\n- **URL:** The link to your video.\n- **Width & Height:** The dimensions of your video"},"typeVersion":1,"notes":"This stickyNote node performs automated tasks as part of the workflow."}],"active":false,"settings":{"executionOrder":"v1","saveManualExecutions":true,"callerPolicy":"workflowsFromSameOwner","errorWorkflow":null,"timezone":"UTC","executionTimeout":3600,"maxExecutions":1000,"retryOnFail":true,"retryCount":3,"retryDelay":1000},"versionId":"5d8108e2-3f44-4585-9c25-f31f95f06424","connections":{"json2video - Add Captions":{"main":[[],[],[],[],[],[],[],[],[]]},"json2video - Get Status":{"main":[[],[],[],[],[],[],[],[],[]]}},"description":"Automated workflow: Fully automated Video Captions generation with json2video. This workflow integrates 8 different services: stickyNote, httpRequest, wait, set, stopAndError. It contains 16 nodes and follows best practices for error handling and security.","notes":"Excellent quality workflow: Fully automated Video Captions generation with json2video. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}