{
  "name": "Automatically create cinematic quote videos with AI and upload to YouTube",
  "nodes": [
    {
      "id": "2ff58bb4-7079-44fe-a2ac-b4af9fa5b30e",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        300,
        0
      ]
    },
    {
      "id": "ec44d567-dfc8-4561-87df-903724225247",
      "name": "Generate Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        660,
        0
      ]
    },
    {
      "id": "ad260a51-e981-47cc-8600-967c1c748814",
      "name": "Get image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1020,
        0
      ]
    },
    {
      "id": "cddff673-15ce-47ec-a2d3-3d71437bfb1f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        -80
      ],
      "parameters": {
        "width": 820,
        "height": 240,
        "content": "## Create Image Background\nGenerate an image using prompt from Google Sheet via PiAPI Flux (Txt2img)."
      }
    },
    {
      "id": "64132a39-ad42-4158-9eec-5b6bfdc7bca2",
      "name": "Update image background URL",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1240,
        0
      ]
    },
    {
      "id": "801dd794-4cf8-42f7-8102-a3a4853cae39",
      "name": "Image-to-Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        260,
        280
      ]
    },
    {
      "id": "6f7d755f-73fb-474f-a2c4-4612317c4f5a",
      "name": "Wait image 2 min",
      "type": "n8n-nodes-base.wait",
      "position": [
        840,
        0
      ]
    },
    {
      "id": "d8de3a95-1a5b-4495-9a1f-8178c1be3d44",
      "name": "Wait video 5 min",
      "type": "n8n-nodes-base.wait",
      "position": [
        440,
        280
      ]
    },
    {
      "id": "c3f97a19-9ea8-4489-8629-767542f0fddb",
      "name": "Get Video",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        620,
        280
      ]
    },
    {
      "id": "eefa224d-2e3d-459e-a16d-8e2584b59cf0",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        200
      ],
      "parameters": {
        "width": 1180,
        "height": 240,
        "content": "## Create Video Background\nCreate a cinematic vertical video from the generated image using PiAPI Kling."
      }
    },
    {
      "id": "8d2035a8-d4a0-4a33-bae3-c18b530487d4",
      "name": "Generate Audio",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        380,
        560
      ]
    },
    {
      "id": "66af781a-2012-426e-a623-e90e21e8b2a1",
      "name": "Get data from Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        480,
        0
      ]
    },
    {
      "id": "04074118-9f30-4648-8aab-9574156a76ba",
      "name": "Update Sound background URL",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1220,
        480
      ]
    },
    {
      "id": "35ca939b-fb27-48cf-8036-f35618ceaee0",
      "name": "Update video background URL",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1240,
        280
      ]
    },
    {
      "id": "54c8badf-a99a-4e5c-ad96-e1d982eb6855",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        480
      ],
      "parameters": {
        "width": 1180,
        "height": 240,
        "content": "## Create Sound Background\nGenerate ambient sound using ElevenLabs based on the scene prompt."
      }
    },
    {
      "id": "15b9e2b1-72d9-42bf-a8a4-0ad0a01c5e5f",
      "name": "Upload Sound to Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        780,
        480
      ]
    },
    {
      "id": "2a628e8a-077a-4999-9ef7-8d28ac4433ac",
      "name": "Save Video Background Locally1",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        1040,
        280
      ]
    },
    {
      "id": "fa5cce8d-4b50-4221-9446-050f497b30a9",
      "name": "Get Binary Video Background",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        820,
        280
      ]
    },
    {
      "id": "ea003577-5467-4acb-a33b-b4b30a03a35f",
      "name": "Save Music Background Locally1",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        980,
        560
      ]
    },
    {
      "id": "b9332740-c4e0-40f9-bc0d-c550c8f0f96d",
      "name": "Prepare Overlay Text (Quote & Author)1",
      "type": "n8n-nodes-base.code",
      "position": [
        300,
        860
      ]
    },
    {
      "id": "79764093-f6ca-459b-a73c-3326fe82fafa",
      "name": "Generate Final Video Clip1",
      "type": "n8n-nodes-base.executeCommand",
      "position": [
        480,
        860
      ]
    },
    {
      "id": "3c301b6b-d6cb-41af-ac52-5722bed8470d",
      "name": "Initiate YouTube Resumable Upload",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        700,
        860
      ]
    },
    {
      "id": "dbde06b3-e7ba-4b7e-9d58-0a06f88b5176",
      "name": "Read output file",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        880,
        860
      ]
    },
    {
      "id": "0b9b92e0-5500-4dca-a622-f63b3cdf0878",
      "name": "Upload Video to YouTube",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1080,
        860
      ]
    },
    {
      "id": "721078b6-b1e2-4077-b1ff-696cb3765675",
      "name": "Update Quote Upload Status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1280,
        860
      ]
    },
    {
      "id": "8900abd9-9f35-46a3-9b59-883ff16b0764",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        760
      ],
      "parameters": {
        "width": 760,
        "height": 300,
        "content": "## Video Upload & Post-Processing\nUpload the final video to YouTube using the YouTube API and update your Google Sheets with upload statuses and YouTube links."
      }
    },
    {
      "id": "07cdec2c-9677-46f0-8038-641c4c191059",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -80
      ],
      "parameters": {
        "width": 340,
        "height": 240,
        "content": "## Get Quote\nRetrieve quote data from Google Sheets including text, author, and background prompts."
      }
    },
    {
      "id": "aeadbc59-13d7-4755-b38d-6d4946ecfa78",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        760
      ],
      "parameters": {
        "width": 400,
        "height": 300,
        "content": "## Combine All\nMerge video, sound, and quote text into final clip using FFmpeg."
      }
    }
  ],
  "connections": {
    "Get Video": {
      "main": [
        [
          {
            "node": "Get Binary Video Background",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get image": {
      "main": [
        [
          {
            "node": "Update image background URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Audio": {
      "main": [
        [
          {
            "node": "Upload Sound to Google Drive",
            "type": "main",
            "index": 0
          },
          {
            "node": "Save Music Background Locally1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Image": {
      "main": [
        [
          {
            "node": "Wait image 2 min",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image-to-Video": {
      "main": [
        [
          {
            "node": "Wait video 5 min",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read output file": {
      "main": [
        [
          {
            "node": "Upload Video to YouTube",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait image 2 min": {
      "main": [
        [
          {
            "node": "Get image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait video 5 min": {
      "main": [
        [
          {
            "node": "Get Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Video to YouTube": {
      "main": [
        [
          {
            "node": "Update Quote Upload Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Final Video Clip1": {
      "main": [
        [
          {
            "node": "Initiate YouTube Resumable Upload",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get data from Google Sheet": {
      "main": [
        [
          {
            "node": "Generate Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Quote Upload Status": {
      "main": [
        []
      ]
    },
    "Get Binary Video Background": {
      "main": [
        [
          {
            "node": "Save Video Background Locally1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Sound background URL": {
      "main": [
        []
      ]
    },
    "Update image background URL": {
      "main": [
        [
          {
            "node": "Image-to-Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update video background URL": {
      "main": [
        [
          {
            "node": "Generate Audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload Sound to Google Drive": {
      "main": [
        [
          {
            "node": "Update Sound background URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Music Background Locally1": {
      "main": [
        [
          {
            "node": "Prepare Overlay Text (Quote & Author)1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Video Background Locally1": {
      "main": [
        [
          {
            "node": "Update video background URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Initiate YouTube Resumable Upload": {
      "main": [
        [
          {
            "node": "Read output file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Get data from Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Overlay Text (Quote & Author)1": {
      "main": [
        [
          {
            "node": "Generate Final Video Clip1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}