{
  "name": "Summarize YouTube transcripts in any language with Google Gemini & Google Docs",
  "nodes": [
    {
      "id": "98d6c238-8ab3-4814-8b95-cc9e201e9e0a",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        0,
        0
      ]
    },
    {
      "id": "d9076f8d-d9cd-47da-832c-2ed605675779",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        2540,
        460
      ]
    },
    {
      "id": "2f2e8e76-6666-441a-854f-0d108a8f26d1",
      "name": "Google Docs",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        3460,
        -140
      ]
    },
    {
      "id": "ab9dd3f4-f2aa-4d9f-aef7-72420a1e53f8",
      "name": "Mapper",
      "type": "n8n-nodes-base.set",
      "position": [
        420,
        0
      ]
    },
    {
      "id": "ca6d25dd-0950-4ef2-9b2d-2f105d72fb35",
      "name": "Formator",
      "type": "n8n-nodes-base.code",
      "position": [
        1580,
        20
      ]
    },
    {
      "id": "7cf36479-c6a8-4763-b691-72d5c03a60f8",
      "name": "Optimizer",
      "type": "n8n-nodes-base.code",
      "position": [
        2860,
        -80
      ]
    },
    {
      "id": "ac71fe03-898c-4cf3-9c98-f8b8f9e81346",
      "name": "AI Agent1",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2300,
        -80
      ]
    },
    {
      "id": "16681c25-5398-48f5-abf6-a02d7d4be8f2",
      "name": "YouTube Transcript AI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        880,
        40
      ]
    },
    {
      "id": "3de6995f-d44e-41fe-8cee-ef38e442023f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -980,
        -680
      ],
      "parameters": {
        "width": 700,
        "height": 1060,
        "content": "# **YouTube Transcript Summarization Workflow**\n\nThis n8n workflow automates the process of summarizing YouTube video transcripts. It retrieves a video's transcript, formats it, and generates a concis"
      }
    },
    {
      "id": "4904624a-f8b2-49d4-8a57-51b35b9e4e0c",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -180,
        -280
      ],
      "parameters": {
        "width": 380,
        "height": 440,
        "content": "#### 1. **Form Submission (On form submission)**\n- **Purpose:**  \n  This node collects the YouTube video URL and the desired language for the summary through a form submission.\n- **Details:**\n  - **In"
      }
    },
    {
      "id": "be467ebe-553d-4b95-a56b-7ccf5a717b76",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        -280
      ],
      "parameters": {
        "width": 360,
        "height": 440,
        "content": "#### 2. **Mapping Data (Mapper)**\n- **Purpose:**  \n  Maps the data from the form into variables, preparing them for the following nodes.\n- **Details:**\n  - **Outputs:**\n    - `videoUrl`: Assigned from"
      }
    },
    {
      "id": "9e3ce6b1-e419-47e7-9e1b-d21789b384eb",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        -280
      ],
      "parameters": {
        "width": 600,
        "height": 440,
        "content": "#### 3. **Retrieve Transcript (YouTube Transcript AI)**\n- **Purpose:**  \n  This node sends an API request to the **YouTube Transcript API** to fetch the transcript of the YouTube video provided.\n- **D"
      }
    },
    {
      "id": "a3fb823e-9eb9-447b-b725-2f471294a64a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -260
      ],
      "parameters": {
        "width": 620,
        "height": 400,
        "content": "#### 4. **Format Transcript (Formator)**\n- **Purpose:**  \n  This node processes and formats the transcript data retrieved from the API to ensure it is usable for the AI model.\n- **Details:**\n  - **Ope"
      }
    },
    {
      "id": "a1f79939-cd91-4076-8bfe-7c7e40c49f3f",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2240,
        -580
      ],
      "parameters": {
        "width": 400,
        "height": 720,
        "content": "#### 5. **Generate Summary (AI Agent1)**\n- **Purpose:**  \n  This node uses the **Google Gemini (PaLM model)** to generate a summary from the cleaned transcript text in the specified language.\n- **Deta"
      }
    },
    {
      "id": "ac2d887f-2371-4bf1-a054-43df1bd0c090",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2700,
        -580
      ],
      "parameters": {
        "width": 360,
        "height": 700,
        "content": "#### 6. **Extract and Optimize (Optimizer)**\n- **Purpose:**  \n  This node extracts the relevant summary section from the AI response and optimizes it for output.\n- **Details:**\n  - **Operations:**\n   "
      }
    },
    {
      "id": "cca97d98-4d02-4298-b053-7945ee149794",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3260,
        -460
      ],
      "parameters": {
        "width": 560,
        "height": 480,
        "content": "#### 7. **Update Google Docs (Google Docs)**\n- **Purpose:**  \n  This node inserts the final summary into a predefined **Google Document**.\n- **Details:**\n  - **Inputs:**  \n    - The summary generated "
      }
    }
  ],
  "connections": {
    "Mapper": {
      "main": [
        [
          {
            "node": "YouTube Transcript AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Formator": {
      "main": [
        [
          {
            "node": "AI Agent1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent1": {
      "main": [
        [
          {
            "node": "Optimizer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Optimizer": {
      "main": [
        [
          {
            "node": "Google Docs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Mapper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "YouTube Transcript AI": {
      "main": [
        [
          {
            "node": "Formator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}