{
  "name": "YouTube video summary to Discord with GPT-4o, Slack approval, and Google Sheets",
  "nodes": [
    {
      "id": "8a2b5bef-97b5-4fb9-933c-3bdf48c72bea",
      "name": "YouTube RSS Trigger",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        -1240,
        460
      ]
    },
    {
      "id": "bf9d4831-e6ea-4bb4-a4e8-e4f7708a049c",
      "name": "Extract Channel ID",
      "type": "n8n-nodes-base.code",
      "position": [
        -1020,
        460
      ]
    },
    {
      "id": "34208ab9-a3ba-4226-942a-33024118b8bc",
      "name": "Fetch Video Details",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -640,
        460
      ]
    },
    {
      "id": "8d210fe5-1278-409f-8176-3a313c1adc5d",
      "name": "Summarize Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -220,
        460
      ]
    },
    {
      "id": "472ebda0-35fb-4aa8-8bb8-96fcf7e3eca1",
      "name": "OpenAI GPT Summary Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -260,
        680
      ]
    },
    {
      "id": "efff4f36-e382-4d68-80a0-8bd649d009f2",
      "name": "Store results to Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        260,
        460
      ]
    },
    {
      "id": "4c5dcb17-7510-479a-8276-0ac86e3312c6",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1300,
        -20
      ],
      "parameters": {
        "width": 440,
        "height": 680,
        "content": "### 🔹 Section 1: **Trigger & Metadata Extraction**\n\n#### 1. `Trigger: New YouTube Video via RSS`\n\n* **Type**: RSS Trigger\n* **Purpose**: Listens for new videos published on a YouTube channel using its"
      }
    },
    {
      "id": "c00b667c-3272-4e18-bb2f-1ee5b5a4a0aa",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3140,
        -160
      ],
      "parameters": {
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    Yaron@nofluff.online\n\nExplore more tip"
      }
    },
    {
      "id": "923883a0-2f05-46f8-bbb2-d6ea80e4be69",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3140,
        180
      ],
      "parameters": {
        "width": 1289,
        "height": 2378,
        "content": "# 📺 YouTube Video Summary Workflow – Documentation\n\n## 🧩 Overview\n\nThis n8n workflow automates the process of:\n\n* Monitoring a YouTube channel for new videos via RSS\n* Extracting video metadata\n* Summ"
      }
    },
    {
      "id": "4ced7d41-bbed-4825-8fcd-b2c8c280a431",
      "name": "Send Summary for Approval",
      "type": "n8n-nodes-base.slack",
      "position": [
        440,
        460
      ]
    },
    {
      "id": "b625cc87-62a3-4d1c-89a9-aedd348c5be0",
      "name": "Post Approved Summary",
      "type": "n8n-nodes-base.discord",
      "position": [
        760,
        460
      ]
    },
    {
      "id": "04f9dc44-0d22-4d4a-9ade-58b8596ed3f5",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -780,
        80
      ],
      "parameters": {
        "width": 380,
        "height": 580,
        "content": "### 🔹 Section 2: **Video Metadata Retrieval**\n\n#### 3. `HTTP Request: Fetch Video Metadata from YouTube API`\n\n* **Type**: HTTP Request Node\n* **Purpose**: Fetches detailed video data like description,"
      }
    },
    {
      "id": "89452ce8-1bfb-48b6-9572-ef28f959f4f4",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        120
      ],
      "parameters": {
        "width": 400,
        "height": 700,
        "content": "### 🔹 Section 3: **AI Summary Generation**\n\n#### 4. `Agent: Summarize Video Description (GPT)`\n\n* **Type**: OpenAI GPT Agent Node\n* **Purpose**: Uses OpenAI GPT model to generate a concise summary fro"
      }
    },
    {
      "id": "b357e45b-94a5-40b5-8e09-461d2176d0e2",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        -140
      ],
      "parameters": {
        "width": 400,
        "height": 820,
        "content": "### 🔹 Section 4: **Storage & Human Approval**\n\n#### 5. `Google Sheets: Append Summary Record`\n\n* **Type**: Google Sheets Node\n* **Purpose**: Logs each video’s summary to a Google Sheet.\n* **Fields Sto"
      }
    },
    {
      "id": "4fbedef1-b1ea-460b-9842-ce0ae0d8d4d2",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        660,
        180
      ],
      "parameters": {
        "width": 320,
        "height": 480,
        "content": "### 🔹 Section 5: **Final Publishing**\n\n#### 7. `Discord: Post Approved Summary`\n\n* **Type**: Discord Message Node\n* **Purpose**: Publishes the final approved summary to a specific Discord channel.\n* *"
      }
    }
  ],
  "connections": {
    "Summarize Agent": {
      "main": [
        [
          {
            "node": "Store results to Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Channel ID": {
      "main": [
        [
          {
            "node": "Fetch Video Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Video Details": {
      "main": [
        [
          {
            "node": "Summarize Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube RSS Trigger": {
      "main": [
        [
          {
            "node": "Extract Channel ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI GPT Summary Model": {
      "ai_languageModel": [
        [
          {
            "node": "Summarize Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Send Summary for Approval": {
      "main": [
        [
          {
            "node": "Post Approved Summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store results to Google Sheet": {
      "main": [
        [
          {
            "node": "Send Summary for Approval",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}