JSON2Video “Movie duration cannot be zero” when creating video from template (RSS → ElevenLabs → JSON2Video → Instagram)

:bullseye: What is your goal?

rss to instagram real using my own voice from eleven labs

:thinking: What is the problem & what have you tried?

Title: JSON2Video “Movie duration cannot be zero” error when using Create a Movie from Template ID (Make.com)

Hi everyone,

I’m trying to build an automation in Make that creates Instagram reels automatically. The intended workflow is:

RSS feed → AI generates captions and script → ElevenLabs generates voice narration → JSON2Video creates the video → Instagram posts the reel.

Everything works until the JSON2Video step.

I’m using the Create a Movie from Template ID module, but every time the scenario runs I get this error:

RuntimeError: Movie duration cannot be zero

From the logs it looks like JSON2Video accepts the project but fails during rendering.

What I’ve already tried:

• Verified all API connections (OpenAI, ElevenLabs, JSON2Video, Instagram)
• Compared my scenario with the original “Automated Social Media Video Machine” blueprint
• Checked that my Parse JSON structure matches the AI output
• Tested both scene-based JSON structures and caption/voice structures
• Built a simplified template with only one scene, a fixed image URL, fixed text, and an explicit duration

Example template I tested:

{
  "resolution": "instagram-story",
  "scenes": [
    {
      "duration": 8,
      "elements": [
        {
          "type": "image",
          "src": "https://images.unsplash.com/photo-1500530855697-b586d89ba3ee",
          "duration": 8
        },
        {
          "type": "text",
          "text": "Test video",
          "style": "003",
          "duration": 8
        }
      ]
    }
  ]
}

Even with this simple template I still get the same error.

My goal is simply to automate short reels like this:

RSS article → AI script → ElevenLabs narration → JSON2Video reel → Instagram

Has anyone successfully used JSON2Video Create a Movie from Template ID in Make and encountered this error? If so, what usually causes the “movie duration cannot be zero” problem?

Any guidance would be appreciated.

:clipboard: Error messages or input/output bundles

RuntimeError: Movie duration cannot be zero

From the logs it looks like JSON2Video accepts the project but fails during rendering.

What I’ve already tried:

• Verified all API connections (OpenAI, ElevenLabs, JSON2Video, Instagram)
• Compared my scenario with the original “Automated Social Media Video Machine” blueprint
• Checked that my Parse JSON structure matches the AI output
• Tested both scene-based JSON structures and caption/voice structures
• Built a simplified template with only one scene, a fixed image URL, fixed text, and an explicit duration

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

Hello,

Welcome to the Community!

If it’s not necessary- you don’t have to define duration for the individual elements.
Use only scene duration eg get rid of:

"elements": [
        {
          "duration": 8
        },

Try this JSON, it works for me:

{
  "resolution": "instagram-story",
  "quality": "high",
  "draft": false,
  "scenes": [
    {
      "duration": 8,
      "background-color": "#000000",
      "elements": [
        {
          "type": "image",
          "src": "https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?fm=jpg&q=80&w=1080",
          "start": 0
        },
        {
          "type": "text",
          "text": "Test video",
          "style": "003",
          "start": 0
        }
      ]
    }
  ]
}
2 Likes

Thank you I did try that and still something is wrong Im not sure what im missing

RuntimeError

Movie duration cannot be zero. Read this article for more details: API Errors

Origin

JSON2Video

Automatic error handler

If you want to handle this error automatically, choose one of the following options. This will create a new error-handler route in your scenario. You can then expand the route in any way you like.

Hello,

So let’s dive deeper into your scenario.

Here’s proof that the JSON pasted above is working:

So to establish if the problem is in your scenario or JSON2Video config, please copy the code pasted below and paste it into a new scenario.

It will add a JSON2Video Make an API Call module.

Once done, click on it and change to your connection,

Then simply run the scenario with only this module.

If you get a 200 status and success=true, we can be sure that the problem is not with your JSON2Video account config but rather with scenario and mapping.

Of course you can use JSON used in this configuration as template.

{
    "subflows": [
        {
            "flow": [
                {
                    "id": 1,
                    "module": "json2video:universalModule",
                    "version": 1,
                    "parameters": {
                        "__IMTCONN__": 11111
                    },
                    "mapper": {
                        "url": "/v2/movies",
                        "method": "POST",
                        "headers": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": "{\n  \"resolution\": \"instagram-story\",\n  \"quality\": \"high\",\n  \"draft\": false,\n  \"scenes\": [\n    {\n      \"duration\": 8,\n      \"background-color\": \"#000000\",\n      \"elements\": [\n        {\n          \"type\": \"image\",\n          \"src\": \"https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?fm=jpg&q=80&w=1080\",\n          \"start\": 0\n        },\n        {\n          \"type\": \"text\",\n          \"text\": \"Test video\",\n          \"style\": \"003\",\n          \"start\": 0\n        }\n      ]\n    }\n  ]\n}"
                    },
                    "metadata": {
                        "designer": {
                            "x": 0,
                            "y": 0
                        },
                        "restore": {
                            "parameters": {
                                "__IMTCONN__": {
                                    "label": "emptyConn",
                                    "data": {
                                        "scoped": "true",
                                        "connection": "json2video"
                                    }
                                }
                            },
                            "expect": {
                                "method": {
                                    "mode": "chose",
                                    "label": "POST"
                                },
                                "headers": {
                                    "mode": "chose",
                                    "items": [
                                        null
                                    ]
                                },
                                "qs": {
                                    "mode": "chose"
                                }
                            }
                        },
                        "parameters": [
                            {
                                "name": "__IMTCONN__",
                                "type": "account:json2video",
                                "label": "Connection",
                                "required": true
                            }
                        ],
                        "expect": [
                            {
                                "name": "url",
                                "type": "text",
                                "label": "URL",
                                "required": true
                            },
                            {
                                "name": "method",
                                "type": "select",
                                "label": "Method",
                                "required": true,
                                "validate": {
                                    "enum": [
                                        "GET",
                                        "POST",
                                        "PUT",
                                        "PATCH",
                                        "DELETE"
                                    ]
                                }
                            },
                            {
                                "name": "headers",
                                "type": "array",
                                "label": "Headers",
                                "spec": [
                                    {
                                        "name": "key",
                                        "type": "text",
                                        "label": "Key"
                                    },
                                    {
                                        "name": "value",
                                        "type": "text",
                                        "label": "Value"
                                    }
                                ]
                            },
                            {
                                "name": "qs",
                                "type": "array",
                                "label": "Query String",
                                "spec": [
                                    {
                                        "name": "key",
                                        "type": "text",
                                        "label": "Key"
                                    },
                                    {
                                        "name": "value",
                                        "type": "text",
                                        "label": "Value"
                                    }
                                ]
                            },
                            {
                                "name": "body",
                                "type": "any",
                                "label": "Body"
                            }
                        ]
                    }
                }
            ]
        }
    ],
    "metadata": {
        "version": 1
    }
}
1 Like

thank you yes the json is working properly so it somewhere else in the scenerio im kind of new to all of this have a rough idea of what im doing but still learning so it has to be one of these two things im guessing my chatgpt command is missing something here is its written command

You are a spiritual content creator who shares uplifting wisdom, mindful insights, and messages that support personal awakening and inner transformation.

Create content for a short spiritual social media video based on the topic below.

The tone should feel peaceful, mystical, reflective, and encouraging.
{{1.title}}
The video will be organized in scenes. Each scene has an overlaid text, a voice over and an image.
The voice over text must be at least 20 words.
Your response must be in JSON format following this schema:
{
“scenes”: [{
“overlaidText”: “”,
“voiceOverText”: “”,
“imagePrompt”: “”
}]
}

The image prompt must be written in ENGLISH, being detailed and photo realistic.
The overlaidText and the voiceOverText must be in English

The topic of the video is:{{1.title}}

Description: {{2.choices.message}}

The script should be a minimum of 30 seconds in lenght and a maximum of 50 seconds. A good way to do this is to ensure there is a maximum of 3-4 scenes.

or here

thank you very much for your help btw

Steph

I went back over everything i figured out that rss wasnt being recognized by perplexity then the chatgbt had an error fixed all of that stuff but still getting the same error in json2video wait for video to render

RuntimeError

Movie duration cannot be zero. Read this article for more details: API Errors

Origin

JSON2Video

Automatic error handler

If you want to handle this error automatically, choose one of the following options. This will create a new error-handler route in your scenario. You can then expand the route in any way you like.

i appriciate any help on this thank you!

Hi

I would very much like to know where I can find clear step by step instructions on how to use this websites scenarios over the past couple of weeks I have spent hours and frankly quite a few dollars trying to get things to work I can read code and have a novice idea of how to write it but trying to get these scenarios to work is impossible and becoming very costly with all the memberships and credits you have to purchase to get scenarios to try and work so far nothing works completely, so where can I find clear instructions on each scenario and what it needs to work?

Thank you

Stephanie

Hey Stephanie,

you can find all the information in here.

Thank you :blush: I appreciate it

Hi,

Thank you I have been working in the make academy to learn more about make but I was wondering is there a book that you would recommend on make? Something in print form that I can reference.

Thank you

Stephanie

I don’t think there is one. You can check out the help center but it’s definitely not as rich as the courses in the academy.

Yes, I agree the make academy is pretty awesome but it would be a great idea. If you guys could create a book something that could be referenced time and time again easily and some people like myself do better learning from a book then from reading a computer. maybe something make can consider? Thank you for your reply.