{
  "name": "Youtube RAG search with frontend using Apify, Qdrant and AI",
  "nodes": [
    {
      "id": "c8221e91-9a9c-489e-a770-7c3cf2cb3328",
      "name": "When clicking ‘Test workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1100,
        -460
      ]
    },
    {
      "id": "111eccd7-51e5-4b4a-9c30-a69f90397df7",
      "name": "Get Video Subtitles",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        540,
        -360
      ]
    },
    {
      "id": "6dcd5497-89cf-4591-ae79-bd12bbde6256",
      "name": "Chunk Subtitles",
      "type": "n8n-nodes-base.set",
      "position": [
        740,
        -360
      ]
    },
    {
      "id": "689fc39e-21d9-4222-9cda-858f21cacc97",
      "name": "Qdrant Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        1480,
        -520
      ]
    },
    {
      "id": "ee57ffe2-e3f8-409a-a87a-b69902494598",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1580,
        -360
      ]
    },
    {
      "id": "4ce56ce3-73fc-4ba3-abbf-0401d44ce748",
      "name": "Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        1460,
        -360
      ]
    },
    {
      "id": "a910822d-073f-42a6-8f6d-5c04dc59fba2",
      "name": "Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        1660,
        -240
      ]
    },
    {
      "id": "0361055c-8fc2-488a-9c43-8e0492648756",
      "name": "For Each Video",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -400,
        -360
      ]
    },
    {
      "id": "77243da4-38cb-430b-b8f3-2698ec6dd022",
      "name": "Video Ref",
      "type": "n8n-nodes-base.noOp",
      "position": [
        340,
        -360
      ]
    },
    {
      "id": "fe63938a-8c17-4191-8fdc-cd044f5de080",
      "name": "For Each Chunk",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1240,
        -400
      ]
    },
    {
      "id": "4bbbc54a-30b6-4395-bb06-0145dde9abd9",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1920,
        -400
      ]
    },
    {
      "id": "6f581ad9-abc5-4ef7-b2ce-1267ba67999d",
      "name": "Clean Up Output",
      "type": "n8n-nodes-base.set",
      "position": [
        2100,
        160
      ]
    },
    {
      "id": "27c19284-1ce6-4756-b385-6433096d4b84",
      "name": "Sort By Video ID",
      "type": "n8n-nodes-base.sort",
      "position": [
        2280,
        160
      ]
    },
    {
      "id": "dc70ab23-8fb0-4f7f-9833-5d6b01407b69",
      "name": "Respond to Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        3620,
        220
      ]
    },
    {
      "id": "1c4eac3a-1412-4e24-85fd-359aa065e3db",
      "name": "Extract Results",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        1080,
        300
      ]
    },
    {
      "id": "cc2d88f7-065d-489a-bfc4-cbc13268b59a",
      "name": "SEARCH API",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1100,
        360
      ]
    },
    {
      "id": "ae2fb16b-2a31-4616-a2b9-6cd634b64647",
      "name": "Get Query",
      "type": "n8n-nodes-base.set",
      "position": [
        -360,
        240
      ]
    },
    {
      "id": "6d14cd25-f65a-4162-bcfc-cc2e7e547c23",
      "name": "Generate Template",
      "type": "n8n-nodes-base.set",
      "position": [
        2460,
        160
      ]
    },
    {
      "id": "ccf2744d-3678-40b8-b7a1-2fda1d820dd0",
      "name": "Answer Query",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        2760,
        180
      ]
    },
    {
      "id": "5c9a1091-1c68-4b83-a002-638236044599",
      "name": "Has Results?",
      "type": "n8n-nodes-base.if",
      "position": [
        1720,
        260
      ]
    },
    {
      "id": "97e6fdf0-db16-4957-bc4f-ce96a8ccc944",
      "name": "Generate Empty Response",
      "type": "n8n-nodes-base.set",
      "position": [
        1920,
        360
      ]
    },
    {
      "id": "160933f5-ae39-407d-9124-f24d193f1153",
      "name": "Map Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        3400,
        220
      ]
    },
    {
      "id": "ac4881ee-e200-48b9-8339-0a21647cc1c4",
      "name": "Incr Rate Limit",
      "type": "n8n-nodes-base.redis",
      "position": [
        -900,
        360
      ]
    },
    {
      "id": "5aa5880a-d9c4-4263-877c-b7c8b3f36916",
      "name": "10req/min",
      "type": "n8n-nodes-base.if",
      "position": [
        -720,
        360
      ]
    },
    {
      "id": "7eb4a8e8-ba35-4a55-98cc-f85395a90604",
      "name": "Vectorise Subworkflow",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        -180,
        -360
      ]
    },
    {
      "id": "dd76b922-8522-4d5b-a49b-e3e4cdca333f",
      "name": "Vectorise Subworkflow1",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        140,
        -360
      ]
    },
    {
      "id": "7b7c5773-9eac-4356-8d66-793dd9bcc008",
      "name": "WEB UI",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1120,
        920
      ]
    },
    {
      "id": "32a0fb68-1b6f-4d65-8591-f370d0307eb4",
      "name": "Qdrant Groups Search",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        0,
        240
      ]
    },
    {
      "id": "0ddf6e63-d0db-499d-873c-ea7d82bf1ef6",
      "name": "Get Embeddings",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -180,
        240
      ]
    },
    {
      "id": "a2fc2329-79be-49ac-923a-63affdefe464",
      "name": "For Each Group",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        740,
        220
      ]
    },
    {
      "id": "ed300a5f-7eca-4f15-bcc3-7855afed0a9e",
      "name": "Group Ref",
      "type": "n8n-nodes-base.noOp",
      "position": [
        900,
        300
      ]
    },
    {
      "id": "4e3b33f6-6274-43f1-8206-adeac3220113",
      "name": "Combine Results",
      "type": "n8n-nodes-base.set",
      "position": [
        1540,
        260
      ]
    },
    {
      "id": "da36d896-3187-40f6-82a5-953ae0fde867",
      "name": "Transcripts to Items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1920,
        160
      ]
    },
    {
      "id": "e297fd2c-a551-4efe-8240-26522de4cec3",
      "name": "Respond to Webhook2",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -180,
        460
      ]
    },
    {
      "id": "1cc6136e-b60d-4dc3-aeb7-30efb09b24f1",
      "name": "Respond to Webhook3",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        2100,
        360
      ]
    },
    {
      "id": "143115aa-5754-4e43-9bda-332b38cce4ae",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1100,
        -280
      ]
    },
    {
      "id": "154adf7a-8390-425c-b96c-641c02c92072",
      "name": "Ignore Already Seen",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        -620,
        -360
      ]
    },
    {
      "id": "c488a718-8c27-4d52-a891-bb875c7b8615",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1180,
        -640
      ],
      "parameters": {
        "width": 1200,
        "height": 560,
        "content": "## 1. Fetch Latest Videos with [Apify.com](https://www.apify.com?fpr=414q6)\n[Learn more about Apify.com](https://www.apify.com?fpr=414q6) - [Youtube Scraper](https://apify.com/streamers/youtube-scrape"
      }
    },
    {
      "id": "09fc0bc7-1efc-495f-b57b-3d62edbe09a6",
      "name": "Get Latest Youtube Videos",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -820,
        -360
      ]
    },
    {
      "id": "06384b2c-c30f-457e-94d8-976b187ff633",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        -640
      ],
      "parameters": {
        "width": 860,
        "height": 560,
        "content": "## 2. Get Video Transcript with [Apify.com](https://www.apify.com?fpr=414q6)\n[Learn more about subworkflows](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.executeworkflowtrigger)\n"
      }
    },
    {
      "id": "7a22fa36-955a-4586-8022-bcaa07950621",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -740
      ],
      "parameters": {
        "width": 1200,
        "height": 660,
        "content": "## 3. Populate Qdrant Vector Store to Build a Search Index\n[Learn more about Qdrant Vector Store](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.vectorstoreqdran"
      }
    },
    {
      "id": "063c6f34-0972-4c2e-a3db-d3e3158015b7",
      "name": "Chunks to Items",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1020,
        -400
      ]
    },
    {
      "id": "a088b16e-d518-4746-9f03-6ab0a2a46fc0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1180,
        80
      ],
      "parameters": {
        "width": 680,
        "height": 520,
        "content": "## 4. Search API with Rate Limiting\n[Learn more about Redis](https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.redis)\n\nWebhooks are a great feature to build simple APIs with n8n. This "
      }
    },
    {
      "id": "3a9d011d-fa8f-4dc0-8e7b-d7e9990f9485",
      "name": "429 Response",
      "type": "n8n-nodes-base.set",
      "position": [
        -360,
        460
      ]
    },
    {
      "id": "c4263da3-bc5f-470b-8ace-b03a88b650af",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        -20
      ],
      "parameters": {
        "width": 1080,
        "height": 680,
        "content": "## 5. Qdrant Advanced Search - Point Groups\n[Learn more about Qdrant's Search Groups API](https://qdrant.tech/documentation/concepts/search/#search-groups)\n\nOur goal is to return videos and timestamps"
      }
    },
    {
      "id": "5c655b2c-1986-499b-b89d-563e2f755986",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -20
      ],
      "parameters": {
        "width": 800,
        "height": 640,
        "content": "## 6. Contextually Understanding Transcripts with AI\n[Read more about the Information Extractor](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.information-extra"
      }
    },
    {
      "id": "f825ab4a-b88d-46af-b2f2-271c6b22665c",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1460,
        -20
      ],
      "parameters": {
        "width": 1180,
        "height": 620,
        "content": "## 7. Generate Results HTML Template\n[Learn more about the Edit Fields node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set)\n\nOnce we have our extracted transcript parts, we ju"
      }
    },
    {
      "id": "1ed3a232-6c03-4cef-806b-7030615b1e98",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2660,
        -20
      ],
      "parameters": {
        "width": 600,
        "height": 560,
        "content": "## 8. Summarise Results to Generate Answer\n[Read more about the Basic LLM node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.chainllm)\n\nThis is a nice extra bi"
      }
    },
    {
      "id": "4d5b1466-8bb8-42e7-9cee-275aa4c905df",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3280,
        -20
      ],
      "parameters": {
        "width": 600,
        "height": 560,
        "content": "## 9. Return Answer & Search Results\n[Learn more about the webhook node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.respondtowebhook/)\n\nFinally, we combine the AI answer and re"
      }
    },
    {
      "id": "07edb5ea-a4ad-4b06-91f2-9bdc2d5150a4",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1180,
        700
      ],
      "parameters": {
        "width": 840,
        "height": 480,
        "content": "## 10. N8N Video Search Frontend using Web UI\n[Learn more about the HTML node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.html/)\n\nBuilding and deploying simple webpages using n"
      }
    },
    {
      "id": "8a9593fc-5a7a-4da9-b7d4-a128c0d36e8e",
      "name": "Render Page",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -760,
        920
      ]
    },
    {
      "id": "8fbdd941-fba7-4f89-b216-489a6e80cef9",
      "name": "Generate Webpage",
      "type": "n8n-nodes-base.html",
      "position": [
        -940,
        920
      ]
    },
    {
      "id": "054feb14-d740-4d05-9ef5-d5c584e07eb6",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        3080,
        180
      ]
    },
    {
      "id": "76c6fb4b-5b82-4115-8be4-63b6ce652793",
      "name": "Sticky Note10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        880
      ],
      "parameters": {
        "width": 540,
        "height": 420,
        "content": "**Fig 1. N8N Video Search Frontend**\n![screenshot of web frontend](https://res.cloudinary.com/daglih2g8/image/upload/f_auto,q_auto/v1/n8n-workflows/lqd2giei1ap2owjgbuth#full-width)"
      }
    },
    {
      "id": "b8ad1b2b-ff05-46a3-a817-951d02d69b01",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2160,
        -740
      ],
      "parameters": {
        "width": 400,
        "height": 240,
        "content": "**Create Qdrant Collection**\nYou may need to create the qdrant collection manually. Run this in the qdrant dashboard's console.\n```\nPUT collections/n8n_videos\n{\n  \"vectors\": {\n      \"distance\": \"Cosin"
      }
    },
    {
      "id": "189d6973-cd09-4176-b04b-4c8feea2e653",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1660,
        -1160
      ],
      "parameters": {
        "width": 440,
        "height": 1080,
        "content": "## Try It Out!\n### Ever wanted to build your own RAG search over Youtube videos? Well, now you can! This n8n template shows how you can build a very capable Youtube search engine powered by Apify, Qdr"
      }
    },
    {
      "id": "a39f0990-6638-4b07-82ca-e91a9a289dfc",
      "name": "Has Results?1",
      "type": "n8n-nodes-base.if",
      "position": [
        180,
        240
      ]
    },
    {
      "id": "2552bce4-587f-45ee-8702-7c919978c87e",
      "name": "Generate Empty Response1",
      "type": "n8n-nodes-base.set",
      "position": [
        180,
        460
      ]
    },
    {
      "id": "9e9d74c0-3693-4f6f-b406-0ad9a8592c09",
      "name": "Respond to Webhook4",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        380,
        460
      ]
    },
    {
      "id": "e39b205e-1574-4ce6-a87a-a0e090ca3e33",
      "name": "Groups to Items1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        380,
        240
      ]
    },
    {
      "id": "96e5844a-090b-4e1d-b40a-e0ccf58eac13",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1080,
        460
      ]
    },
    {
      "id": "03c3b930-c677-45e1-974c-8e6fc43acd56",
      "name": "OpenAI Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2760,
        340
      ]
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "For Each Chunk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "WEB UI": {
      "main": [
        [
          {
            "node": "Generate Webpage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        [
          {
            "node": "Map Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "10req/min": {
      "main": [
        [
          {
            "node": "Get Query",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "429 Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Query": {
      "main": [
        [
          {
            "node": "Get Embeddings",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Group Ref": {
      "main": [
        [
          {
            "node": "Extract Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Video Ref": {
      "main": [
        [
          {
            "node": "Get Video Subtitles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Map Fields": {
      "main": [
        [
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SEARCH API": {
      "main": [
        [
          {
            "node": "Incr Rate Limit",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "429 Response": {
      "main": [
        [
          {
            "node": "Respond to Webhook2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Answer Query": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Results?": {
      "main": [
        [
          {
            "node": "Transcripts to Items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Empty Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has Results?1": {
      "main": [
        [
          {
            "node": "Groups to Items1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Generate Empty Response1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "For Each Chunk": {
      "main": [
        [],
        [
          {
            "node": "Qdrant Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "For Each Group": {
      "main": [
        [
          {
            "node": "Combine Results",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Group Ref",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "For Each Video": {
      "main": [
        [],
        [
          {
            "node": "Vectorise Subworkflow",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Embeddings": {
      "main": [
        [
          {
            "node": "Qdrant Groups Search",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chunk Subtitles": {
      "main": [
        [
          {
            "node": "Chunks to Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chunks to Items": {
      "main": [
        [
          {
            "node": "For Each Chunk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean Up Output": {
      "main": [
        [
          {
            "node": "Sort By Video ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine Results": {
      "main": [
        [
          {
            "node": "Has Results?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Results": {
      "main": [
        [
          {
            "node": "For Each Group",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Incr Rate Limit": {
      "main": [
        [
          {
            "node": "10req/min",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Webpage": {
      "main": [
        [
          {
            "node": "Render Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groups to Items1": {
      "main": [
        [
          {
            "node": "For Each Group",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Latest Youtube Videos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sort By Video ID": {
      "main": [
        [
          {
            "node": "Generate Template",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Template": {
      "main": [
        [
          {
            "node": "Answer Query",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Extract Results",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Answer Query",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Get Video Subtitles": {
      "main": [
        [
          {
            "node": "Chunk Subtitles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Ignore Already Seen": {
      "main": [
        [
          {
            "node": "For Each Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Groups Search": {
      "main": [
        [
          {
            "node": "Has Results?1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcripts to Items": {
      "main": [
        [
          {
            "node": "Clean Up Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Vectorise Subworkflow": {
      "main": [
        [
          {
            "node": "For Each Video",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Vectorise Subworkflow1": {
      "main": [
        [
          {
            "node": "Video Ref",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Empty Response": {
      "main": [
        [
          {
            "node": "Respond to Webhook3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Empty Response1": {
      "main": [
        [
          {
            "node": "Respond to Webhook4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Latest Youtube Videos": {
      "main": [
        [
          {
            "node": "Ignore Already Seen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Get Latest Youtube Videos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}