{
  "name": "Transform long videos into viral shorts with AI and schedule to social media using Whisper & Gemini",
  "nodes": [
    {
      "id": "6d8263d8-298e-48ff-ab17-92c9f4ccb997",
      "name": "Download Audio",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        208,
        144
      ]
    },
    {
      "id": "5f87dd99-6d60-4c5f-a74c-bfa249153e9e",
      "name": "FFmpeg: Extract Audio",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -496,
        272
      ]
    },
    {
      "id": "687ed081-a970-4f55-b5ed-047da7ab9217",
      "name": "Schedule to TikTok, Instagram, and YouTube",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        2432,
        128
      ]
    },
    {
      "id": "0cee305a-553d-45f6-93e4-604f624e6409",
      "name": "Parse Whisper Results",
      "type": "n8n-nodes-base.code",
      "position": [
        576,
        144
      ]
    },
    {
      "id": "afaf8237-f4e5-401f-b6c9-1073d51e274c",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        784,
        352
      ]
    },
    {
      "id": "2c2b2df2-feec-4454-b178-e1eb7732ee21",
      "name": "AI Agent - Select Viral Clips",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        784,
        144
      ]
    },
    {
      "id": "839b4b11-670f-49ad-8bca-7ef00f5e3f86",
      "name": "Whisper: Transcribe with Timestamps",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        384,
        144
      ]
    },
    {
      "id": "033d8aea-4f8b-4e71-8ed0-19b56f154909",
      "name": "Wait 5s & Retry (Audio)",
      "type": "n8n-nodes-base.wait",
      "position": [
        208,
        288
      ]
    },
    {
      "id": "4d0ee972-c2a6-418b-aae4-86f12f1d6a44",
      "name": "Is Audio Job Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        32,
        272
      ]
    },
    {
      "id": "4a63e87e-e81c-4208-9ac6-3d4273bf3fdd",
      "name": "Check Audio Job Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -128,
        272
      ]
    },
    {
      "id": "a9697288-c8a4-498d-9bbd-aa23ab8d85d8",
      "name": "Wait 10s (Audio)",
      "type": "n8n-nodes-base.wait",
      "position": [
        -336,
        272
      ]
    },
    {
      "id": "83b29508-c1d5-4830-9b94-683cc6658b6b",
      "name": "Form: Upload Video",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -704,
        272
      ]
    },
    {
      "id": "ed8de4be-df78-4704-9be3-62ce0382b3ba",
      "name": "Wait 5s & Retry (Short)",
      "type": "n8n-nodes-base.wait",
      "position": [
        2160,
        288
      ]
    },
    {
      "id": "48dee67e-3ff8-4e77-8e3c-5ae1af1f0224",
      "name": "Download Short",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2160,
        128
      ]
    },
    {
      "id": "894c84ab-4640-4e82-9bd5-3ff286309517",
      "name": "Is Short Job Completed?",
      "type": "n8n-nodes-base.if",
      "position": [
        1904,
        144
      ]
    },
    {
      "id": "63421b85-afea-46e6-a89d-52f8305f2f14",
      "name": "Check Short Job Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1680,
        144
      ]
    },
    {
      "id": "92b26152-a124-4c6d-90f7-50de310733b4",
      "name": "Wait 10s (Short)",
      "type": "n8n-nodes-base.wait",
      "position": [
        1472,
        144
      ]
    },
    {
      "id": "36e8d927-41d9-4fc7-9d62-8a3d41511836",
      "name": "Parse Gemini Analysis",
      "type": "n8n-nodes-base.code",
      "position": [
        1088,
        144
      ]
    },
    {
      "id": "20a0553c-352c-4903-bd33-2216c7f6accf",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        -464
      ],
      "parameters": {
        "width": 480,
        "height": 592,
        "content": "**AUTO-SHORTS GENERATOR**\n\n**How it Works:**\n1.  Upload a long video via the form.\n2.  AI transcribes the audio (Whisper) and finds the most viral clips (Gemini).\n3.  The clips are auto-cut, cropped, "
      }
    },
    {
      "id": "d17e4d15-bd41-460d-8739-0f423e70efd9",
      "name": "FFmpeg: Upload & Cut",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1264,
        144
      ]
    },
    {
      "id": "abfbf025-e4b1-498c-8cbc-990d4b923bf2",
      "name": "Section: Intake & Form",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        128
      ],
      "parameters": {
        "width": 228,
        "height": 352,
        "content": "**Intake & Form**\n- Form: Upload Video"
      }
    },
    {
      "id": "e99945ee-8a4f-4eaa-b835-def0a25f31d9",
      "name": "Section: Transcription & Parsing",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        16
      ],
      "parameters": {
        "width": 428,
        "height": 320,
        "content": "**Transcription & Parsing**\n- Whisper: Transcribe with Timestamps\n- Parse Whisper Results\n- Download Audio"
      }
    },
    {
      "id": "1b8fe57b-93a8-4e42-bfbf-920a8c9ba9a5",
      "name": "Section: AI Selection (Gemini)",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        16
      ],
      "parameters": {
        "width": 420,
        "height": 480,
        "content": "**AI Selection**\n- Google Gemini Chat Model\n- AI Agent – Select Viral Clips\n- Parse Gemini Analysis"
      }
    },
    {
      "id": "ab0e8e1b-252a-44d6-a355-e1e1306776fb",
      "name": "Section: FFmpeg Audio Job Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        128
      ],
      "parameters": {
        "width": 880,
        "height": 352,
        "content": "**FFmpeg Audio Job Loop**\n- FFmpeg: Extract Audio\n- Wait 10s (Audio) → Check Audio Job Status → Is Audio Job Completed?\n- Retry path: Wait 5s & Retry (Audio)"
      }
    },
    {
      "id": "00d1a683-0c3f-4184-b9f5-dc0f120c85df",
      "name": "Section: FFmpeg Short Job Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        16
      ],
      "parameters": {
        "width": 1132,
        "height": 480,
        "content": "**FFmpeg Short Job Loop**\n- FFmpeg: Upload & Cut\n- Wait 10s (Short) → Check Short Job Status → Is Short Job Completed?\n- Retry path: Wait 5s & Retry (Short)"
      }
    },
    {
      "id": "0c6292f9-b1db-4710-8b10-1a7de6d609ad",
      "name": "Section: Scheduling",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2320,
        16
      ],
      "parameters": {
        "width": 420,
        "height": 480,
        "content": "**Scheduling**\n- Download Short\n- Schedule to TikTok, Instagram, and YouTube"
      }
    }
  ],
  "connections": {
    "Download Audio": {
      "main": [
        [
          {
            "node": "Whisper: Transcribe with Timestamps",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Short": {
      "main": [
        [
          {
            "node": "Schedule to TikTok, Instagram, and YouTube",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 10s (Audio)": {
      "main": [
        [
          {
            "node": "Check Audio Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 10s (Short)": {
      "main": [
        [
          {
            "node": "Check Short Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Form: Upload Video": {
      "main": [
        [
          {
            "node": "FFmpeg: Extract Audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FFmpeg: Upload & Cut": {
      "main": [
        [
          {
            "node": "Wait 10s (Short)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "FFmpeg: Extract Audio": {
      "main": [
        [
          {
            "node": "Wait 10s (Audio)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Gemini Analysis": {
      "main": [
        [
          {
            "node": "FFmpeg: Upload & Cut",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Whisper Results": {
      "main": [
        [
          {
            "node": "AI Agent - Select Viral Clips",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Audio Job Status": {
      "main": [
        [
          {
            "node": "Is Audio Job Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Short Job Status": {
      "main": [
        [
          {
            "node": "Is Short Job Completed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Audio Job Completed?": {
      "main": [
        [
          {
            "node": "Download Audio",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 5s & Retry (Audio)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Short Job Completed?": {
      "main": [
        [
          {
            "node": "Download Short",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait 5s & Retry (Short)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 5s & Retry (Audio)": {
      "main": [
        [
          {
            "node": "Check Audio Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait 5s & Retry (Short)": {
      "main": [
        [
          {
            "node": "Check Short Job Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent - Select Viral Clips",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent - Select Viral Clips": {
      "main": [
        [
          {
            "node": "Parse Gemini Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Whisper: Transcribe with Timestamps": {
      "main": [
        [
          {
            "node": "Parse Whisper Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}