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 →
{
"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
}
]
]
}
}
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
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
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
AI YouTube transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.
YouTube AI Analys (modified) + community node transcript. Uses youTube, googleSheets, lmChatOpenRouter, chainLlm. Scheduled trigger; 26 nodes.
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,