AutomationFlowsSocial Media › Transform Youtube Transcripts to Content Assets with AI and Google Sheets

Transform Youtube Transcripts to Content Assets with AI and Google Sheets

ByGerald Denor @dominixai on n8n.io

For content creators, marketers, and video strategists who want to transform YouTube competitors' video transcripts into production-ready content assets using AI-powered automation.

Event trigger★★★★☆ complexityAI-powered23 nodesHTTP RequestGoogle SheetsGoogle Sheets TriggerOpenRouter ChatChain Llm
Social Media Trigger: Event Nodes: 23 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9213 — we link there as the canonical source.

This workflow follows the Chainllm → Google Sheets recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "bpbWpCDROyuqmTJj",
  "name": "Extract YouTube Transcripts",
  "tags": [],
  "nodes": [
    {
      "id": "2b6e3f2c-8a81-4ca7-9536-5b1fef89dbeb",
      "name": "Main Template Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1648,
        176
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "dff57349-a6f9-42f6-9b91-7683ccc86bf4",
      "name": "Sheets Workflow Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        384
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8f3a3ba3-0499-408c-adb4-3e65178f6cfd",
      "name": "Webhook Workflow Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        800
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "71064376-c585-4019-a358-0a3e89011d0c",
      "name": "Extract YouTube Video ID (Sheets)",
      "type": "n8n-nodes-base.code",
      "position": [
        -672,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "7b0fee45-7064-4f3e-8a23-0b021dd907c7",
      "name": "Fetch Video Transcript Data (Sheets)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -432,
        528
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "d1cfb1d0-fbc3-4357-ae5e-7fdb91909e1e",
      "name": "Parse Transcript Text (Sheets)",
      "type": "n8n-nodes-base.code",
      "position": [
        -208,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "6bae5223-0367-41ad-8a06-f88d42606b82",
      "name": "Save Transcript to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        816,
        528
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "240fdcab-65da-48c6-988d-969d0322846a",
      "name": "Monitor Google Sheet for URLs",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -880,
        528
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "035884cc-8ab0-4174-bc29-e3354ef895ae",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        224,
        672
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6223a1c3-31f8-4f55-9f30-cd4c6925d8f8",
      "name": "Return Transcript Response",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        1088,
        960
      ],
      "parameters": {},
      "typeVersion": 1.4
    },
    {
      "id": "0f5f2a63-50c5-4257-9e97-9e9250bd2332",
      "name": "Webhook Trigger (Direct Input)",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -736,
        960
      ],
      "parameters": {},
      "typeVersion": 2.1
    },
    {
      "id": "abacc217-f0fb-45b3-af24-5812625a5a4d",
      "name": "Save New Script to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        560,
        528
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "fb2d24e2-6d2d-4786-be5e-c92ec8f0466a",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        160,
        1120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "1d183cb3-ed3e-413f-b0d2-f7caf9d032dd",
      "name": "Rewrite The Transcript (webhook)",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        96,
        960
      ],
      "parameters": {},
      "typeVersion": 1.7
    },
    {
      "id": "12f903f6-e92c-4dfa-a10a-991b4366817f",
      "name": "Rewrite The Transcript (sheets)",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -16,
        528
      ],
      "parameters": {},
      "typeVersion": 1.7
    },
    {
      "id": "f8a7ff53-30d3-4afa-93e7-583e1e1ae417",
      "name": "Extract YouTube Video ID (Sheets)2",
      "type": "n8n-nodes-base.code",
      "position": [
        -528,
        960
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "f06b39ad-2aed-4567-9f8f-370127ef5e69",
      "name": "Fetch Video Transcript Data (Webhook)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -320,
        960
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "93c34915-a57c-4f6f-a2a0-d2ff7647412c",
      "name": "Parse Transcript Text (Webhook)",
      "type": "n8n-nodes-base.code",
      "position": [
        -96,
        960
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d33a8e70-d12c-4d8e-82de-dbc6d04e786f",
      "name": "Parse AI Output Into Headings(sheets)",
      "type": "n8n-nodes-base.code",
      "position": [
        320,
        528
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8df66fcb-6b0d-4975-894d-cef0cccf0900",
      "name": "Parse AI Output Into Headings (webhook)",
      "type": "n8n-nodes-base.code",
      "position": [
        432,
        960
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "95a02c21-16f0-4874-a97e-f5e9188ae9b3",
      "name": "Save New Script to Sheet(webhook)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        672,
        960
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "b2d1f29e-4050-41c7-81ff-4e4c53805c60",
      "name": "Save Transcript to Sheet(webhook)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        928,
        960
      ],
      "parameters": {},
      "typeVersion": 4.6
    },
    {
      "id": "5b68722d-fe36-4af8-aa2c-cefa8e16abbf",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -304,
        -48
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "254763ad-2be0-459a-94bf-7ebdcf824298",
  "connections": {
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Rewrite The Transcript (sheets)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Rewrite The Transcript (webhook)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Save New Script to Sheet": {
      "main": [
        [
          {
            "node": "Save Transcript to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Monitor Google Sheet for URLs": {
      "main": [
        [
          {
            "node": "Extract YouTube Video ID (Sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Transcript Text (Sheets)": {
      "main": [
        [
          {
            "node": "Rewrite The Transcript (sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook Trigger (Direct Input)": {
      "main": [
        [
          {
            "node": "Extract YouTube Video ID (Sheets)2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Transcript Text (Webhook)": {
      "main": [
        [
          {
            "node": "Rewrite The Transcript (webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rewrite The Transcript (sheets)": {
      "main": [
        [
          {
            "node": "Parse AI Output Into Headings(sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Rewrite The Transcript (webhook)": {
      "main": [
        [
          {
            "node": "Parse AI Output Into Headings (webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract YouTube Video ID (Sheets)": {
      "main": [
        [
          {
            "node": "Fetch Video Transcript Data (Sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save New Script to Sheet(webhook)": {
      "main": [
        [
          {
            "node": "Save Transcript to Sheet(webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Transcript to Sheet(webhook)": {
      "main": [
        [
          {
            "node": "Return Transcript Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract YouTube Video ID (Sheets)2": {
      "main": [
        [
          {
            "node": "Fetch Video Transcript Data (Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Video Transcript Data (Sheets)": {
      "main": [
        [
          {
            "node": "Parse Transcript Text (Sheets)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Video Transcript Data (Webhook)": {
      "main": [
        [
          {
            "node": "Parse Transcript Text (Webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output Into Headings(sheets)": {
      "main": [
        [
          {
            "node": "Save New Script to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output Into Headings (webhook)": {
      "main": [
        [
          {
            "node": "Save New Script to Sheet(webhook)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

For content creators, marketers, and video strategists who want to transform YouTube competitors' video transcripts into production-ready content assets using AI-powered automation.

Source: https://n8n.io/workflows/9213/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

This workflow is for content creators, marketers, agencies, coaches, and businesses who want to maximize their YouTube content ROI by automatically generating multiple content assets from single video

Output Parser Structured, Chain Llm, OpenRouter Chat +2
Social Media

Earlier this year, as I got more involved with n8n, I committed to helping users on our community forums and the n8n subreddit. The volume of questions was growing, and I found it was a real challenge

Output Parser Structured, HTTP Request, Text Classifier +4
Social Media

AI YouTube transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.

YouTube, Google Sheets, OpenRouter Chat +3
Social Media

YouTube AI Analys (modified) + community node transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.

YouTube, Google Sheets, OpenRouter Chat +3
Social Media

This n8n workflow template automates the entire process of publishing Instagram Reels from content stored in Google Sheets and Google Drive. It's designed for content creators, social media managers,

Agent, Airtable, Facebook Graph Api +8