{
  "id": "AxGstKa35NnYs0Ni",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "RenderIO MP4 to GIF",
  "tags": [
    {
      "id": "Zkn4MatBRsM3Cbvi",
      "name": "managed-as-code",
      "createdAt": "2026-04-05T12:17:54.478Z",
      "updatedAt": "2026-04-05T12:17:54.478Z"
    }
  ],
  "nodes": [
    {
      "id": "0fefabf0-9bfe-4c75-a662-76157007ed8a",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        848,
        -224
      ],
      "parameters": {
        "width": 480,
        "height": 704,
        "content": "## RenderIO MP4 to GIF\n\n### How it works\n\n1. Triggers workflow upon form submission to input video URL.\n2. Converts the MP4 video to a GIF using [RenderIO](https://renderio.dev).\n3. Waits for an initial period before checking conversion status.\n4. Continuously checks if the conversion has completed.\n5. Provides a download link when conversion is complete.\n\n### Setup steps\n\n- [ ] Set up input form to submit MP4 URL\n- [ ] Configure RenderIO credentials for media conversion\n- [ ] Set conditional logic for completion status checks\n\n### Customization\n\nThe wait durations and conditions can be adjusted based on needs."
      },
      "typeVersion": 1
    },
    {
      "id": "4cdd1e05-b12b-4d4a-86bc-3f1c2d04143d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        -120
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 304,
        "content": "## Start and process video\n\nInitiate workflow and convert video from MP4 to GIF."
      },
      "typeVersion": 1
    },
    {
      "id": "7a36fe77-3a1a-4c97-9bbf-a1dc9c749e11",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1856,
        -120
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 304,
        "content": "## Initial wait and status check\n\nWait after processing and check if the conversion is complete."
      },
      "typeVersion": 1
    },
    {
      "id": "246e1d33-f0cd-496b-ada0-e3ea3863ff5f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2304,
        -240
      ],
      "parameters": {
        "color": 7,
        "width": 416,
        "height": 352,
        "content": "## Completion and download\n\nConditional check for completion and provide a download link."
      },
      "typeVersion": 1
    },
    {
      "id": "6a00553e-fac1-45de-960a-b8b9174a5999",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        112
      ],
      "parameters": {
        "color": 7,
        "height": 320,
        "content": "## Retry wait loop\n\nHandles waiting and retrying the status check if not complete."
      },
      "typeVersion": 1
    },
    {
      "id": "a0afa978-9a06-4f4d-87c6-4c218491b8ea",
      "name": "When Video Submitted",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        1456,
        24
      ],
      "parameters": {
        "options": {
          "buttonLabel": "Convert"
        },
        "formTitle": "Convert MP4 to GIF",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Video URL",
              "placeholder": "https://media.renderio.dev/sample.avi",
              "defaultValue": "https://media.renderio.dev/sample.avi",
              "requiredField": true
            }
          ]
        },
        "responseMode": "lastNode",
        "formDescription": "Enter a video URL to convert it to GIF using RenderIO"
      },
      "executeOnce": true,
      "typeVersion": 2.3,
      "alwaysOutputData": false
    },
    {
      "id": "fa4dc2cd-f80a-40ef-9719-fe8d4ef9a6a3",
      "name": "Render MP4 to GIF",
      "type": "n8n-nodes-renderio.renderio",
      "position": [
        1680,
        24
      ],
      "parameters": {
        "inputFiles": {
          "fileValues": [
            {
              "value": "={{ $json[\"Video URL\"] }}"
            }
          ]
        },
        "outputFiles": {
          "fileValues": [
            {
              "key": "out_gif",
              "value": "output.gif"
            }
          ]
        },
        "ffmpegCommand": "-i {{in_video}} {{out_gif}}"
      },
      "credentials": {
        "renderioApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "da539484-4bc3-459c-b27c-8c83ee322b41",
      "name": "Wait 10 Seconds Initial",
      "type": "n8n-nodes-base.wait",
      "position": [
        1904,
        24
      ],
      "parameters": {
        "amount": 10
      },
      "typeVersion": 1.1
    },
    {
      "id": "f7b6a4e4-0ad3-457d-9d9e-026b740601fd",
      "name": "Check Conversion Status",
      "type": "n8n-nodes-renderio.renderio",
      "position": [
        2128,
        24
      ],
      "parameters": {
        "commandId": "={{ $('Render MP4 to GIF').item.json.command_id }}",
        "operation": "get"
      },
      "credentials": {
        "renderioApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "884ca494-f5fc-4120-8744-f4e65bf96038",
      "name": "If Conversion Complete",
      "type": "n8n-nodes-base.if",
      "position": [
        2352,
        -64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "status-check",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.status }}",
              "rightValue": "SUCCESS"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "42ddee9a-2f66-4a58-a258-56bfc75b707b",
      "name": "Display Download Link",
      "type": "n8n-nodes-base.form",
      "position": [
        2576,
        -96
      ],
      "parameters": {
        "options": {},
        "operation": "completion",
        "completionTitle": "Conversion Complete!",
        "completionMessage": "=Your GIF file is ready!\n\n[Download GIF]({{ $json.output_files.out_gif.storage_url }})"
      },
      "typeVersion": 2.3
    },
    {
      "id": "19de08d8-044a-4696-aa7f-94ca3d2c2402",
      "name": "Wait 30 Seconds Retry",
      "type": "n8n-nodes-base.wait",
      "position": [
        2544,
        272
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    }
  ],
  "active": true,
  "settings": {
    "binaryMode": "separate",
    "callerPolicy": "workflowsFromSameOwner",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "852e763b-3322-4ab2-945c-fe81d16a98d0",
  "connections": {
    "Render MP4 to GIF": {
      "main": [
        [
          {
            "node": "Wait 10 Seconds Initial",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Video Submitted": {
      "main": [
        [
          {
            "node": "Render MP4 to GIF",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 30 Seconds Retry": {
      "main": [
        [
          {
            "node": "Check Conversion Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Conversion Complete": {
      "main": [
        [
          {
            "node": "Display Download Link",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 30 Seconds Retry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Conversion Status": {
      "main": [
        [
          {
            "node": "If Conversion Complete",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 10 Seconds Initial": {
      "main": [
        [
          {
            "node": "Check Conversion Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}