This workflow follows the Agent → Form Trigger 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 →
{
"nodes": [
{
"parameters": {
"content": "**Summarize YouTube videos**\n\nThis project automates the summarization of YouTube videos, transforming lengthy content into concise, actionable insights. By leveraging AI and workflow automation, it extracts video transcripts, analyzes key points, and generates summaries, saving time for content creators, researchers, and professionals. Perfect for staying informed, conducting research, or repurposing video content efficiently.",
"height": 120,
"width": 1160,
"color": 7
},
"id": "2c2c48aa-6207-42f1-a78d-2dc2db7e4dd4",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-140
],
"typeVersion": 1
},
{
"parameters": {
"content": "Add the full YouTube URL. \u261d\ufe0f\nYou can change this input to a webhook or anything else.",
"height": 80,
"width": 230
},
"id": "828e9c2e-e0f2-4889-8897-3c3c3298d32c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-360,
260
],
"typeVersion": 1
},
{
"parameters": {
"method": "POST",
"url": "https://api.apify.com/v2/acts/topaz_sharingan~youtube-transcript-scraper-1/run-sync-get-dataset-items",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "token",
"value": "APIFY-TOKEN"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"startUrls\": [\"{{ $json['Full URL'] }}\"],\n \"includeTimestamps\": \"Yes\"\n}",
"options": {}
},
"id": "d076112a-8eb4-4187-94ff-b45714f62736",
"name": "Request YouTube Transcript",
"type": "n8n-nodes-base.httpRequest",
"position": [
-20,
120
],
"typeVersion": 4.2
},
{
"parameters": {
"content": "Once you follow the Setup Instructions (mentioned in the template page description), you can insert the full URL endpoint, which includes both the POST Endpoint and API Key. \ud83d\udc47",
"height": 340,
"width": 280,
"color": 3
},
"id": "61d0899a-b5d7-45bf-9511-ca4dc1c166d5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-100,
0
],
"typeVersion": 1
},
{
"parameters": {
"formTitle": "Summarize YouTube video's",
"formFields": {
"values": [
{
"fieldLabel": "Full URL"
}
]
},
"options": {
"path": "ddd"
}
},
"id": "8b30c2fb-ad46-4d52-8f74-f57ed9470915",
"name": "YouTube video URL",
"type": "n8n-nodes-base.formTrigger",
"position": [
-240,
120
],
"typeVersion": 2.2
},
{
"parameters": {
"content": "\u261d\ufe0f Optional\nIf the workflow ends here, Consider checking with another enrichment service.",
"height": 100,
"color": 4
},
"id": "39c74662-2f07-4d41-8bc3-089b5c63f541",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
420
],
"typeVersion": 1
},
{
"parameters": {
"promptType": "define",
"text": "=You are a specialized AI assistant that analyzes YouTube video transcripts for indie developers and SaaS entrepreneurs. Your primary functions are:\n\n1. Extract and highlight the critical 20% of content that delivers 80% of the value (following the Pareto principle)\n2. Create actionable implementation plans tailored to indie/SaaS development contexts\n3. Provide precise timestamp references for all insights\n4. Focus on action driven results and provide examples if the speaker hasn't given any\n5. You should really give indepth-analysis, make sure to give detailed summary\n\nInput Format\n\nVideo Title: {{ $json.videoTitle }}\n\nUrl: {{ $json.url }}\n\nThe user will provide a YouTube transcript with timestamps in this format:\n```\n{{ JSON.stringify($json.transcript) }}\n```\n\nAnalysis Guidelines\n\nCritical Content Identification\n- Highlight the most important insights that represent breakthrough concepts, key strategies, or unique perspectives\n- Identify statements where the speaker uses emphasis words or phrases like \"this is critical,\" \"the most important thing,\" \"what changed everything for me,\" etc.\n- Focus on actionable advice rather than general background information\n- Look for counter-intuitive points that challenge conventional wisdom\n\nImplementation Planning\nFor each major insight or group of related insights:\n1. Create a specific action item for an indie developer or SaaS entrepreneur\n2. Provide implementation context (tools, resources, technologies needed)\n3. Explain expected outcomes and relevant metrics\n4. Note potential challenges and how to overcome them\n5. Suggest a reasonable implementation timeline\n\nOutput Format in JSON\n\n{\n\"general summary\" : \"General Summary text\",\n\"essential insight\" : \"Essential Insights Summary text\",\n\"implementation roadmap\" : \"Implementation roadmap text with bullet points\",\n\"strategic Context\" : \"Strategic Context text\"\n}\n\nDetailed explaination of the output format texts-\n\n0. General Summary\n\n1. Essential Insights Summary \nPresent the critical insights with their timestamps:\n\nCore Insight: [Summary of key point] [TIMESTAMP]\n> Direct quote from the transcript that encapsulates the insight\n\nBrief explanation of why this is important and how it applies to indie/SaaS development.\n\n2. Implementation Roadmap\nCreate a practical roadmap with clear steps:\n\nAction Plan: [Title of Implementation Plan]\nInsight Reference: [TIMESTAMP]\n1. Immediate Action: Specific first step to take\n2. Expected Outcome: What success looks like for this implementation\n\n3. Strategic Context\nProvide broader context for how these insights fit into:\n- Current industry trends\n- Small team or solo developer constraints\n- Low-budget implementation considerations\n- Strategic advantages for indie developers\n\nResponse Style\n- Be concise and focused on high-leverage actions\n- Use developer-friendly language\n- Include specific technical recommendations when appropriate\n- Balance between strategic thinking and tactical implementation\n- Always reference timestamps for traceability back to the original content",
"hasOutputParser": true,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
240,
120
],
"id": "71b445b9-3631-4c67-99c6-d84412d32999",
"name": "AI Agent"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"typeVersion": 1,
"position": [
240,
320
],
"id": "68f7114d-d426-469e-bf18-9066d8a8ad51",
"name": "OpenRouter Chat Model",
"credentials": {
"openRouterApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsonSchemaExample": "{\n\"general summary\" : \"General Summary text\",\n\"essential insight\" : \"Essential Insights Summary text\",\n\"implementation roadmap\" : \"Implementation roadmap text with bullet points\",\n\"strategic Context\" : \"Strategic Context text\"\n}"
},
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"typeVersion": 1.2,
"position": [
480,
320
],
"id": "484f5633-5fc9-4062-a857-24abe8133846",
"name": "Structured Output Parser"
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1brzMcegAwUOdkzoAwqn6yWZBW8YnGykt2lizENzZz5U",
"mode": "list",
"cachedResultName": "Youtube Summary for me",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1brzMcegAwUOdkzoAwqn6yWZBW8YnGykt2lizENzZz5U/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1brzMcegAwUOdkzoAwqn6yWZBW8YnGykt2lizENzZz5U/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Video URL": "={{ $('Request YouTube Transcript').item.json.url }}",
"Title": "={{ $('Request YouTube Transcript').item.json.videoTitle }}",
"General Summary": "={{ $json.output['general summary'] }}",
"Essential Insights": "={{ $json.output['essential insight'] }}",
"Implementaion Roadmap": "={{ $json.output['implementation roadmap'] }}",
"Strategic Context": "={{ $json.output['strategic Context'] }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Video URL",
"displayName": "Video URL",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Title",
"displayName": "Title",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "General Summary",
"displayName": "General Summary",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true
},
{
"id": "Essential Insights",
"displayName": "Essential Insights",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Implementaion Roadmap",
"displayName": "Implementaion Roadmap",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "Strategic Context",
"displayName": "Strategic Context",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.5,
"position": [
600,
120
],
"id": "5074e6e7-b9ba-47e2-bff2-0283e70c421b",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Request YouTube Transcript": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"YouTube video URL": {
"main": [
[
{
"node": "Request YouTube Transcript",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
}
},
"meta": {
"templateCredsSetupCompleted": true
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApiopenRouterApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Youtube-Transcript-Analyser-With-Timestamp. Uses httpRequest, formTrigger, agent, lmChatOpenRouter. Event-driven trigger; 10 nodes.
Source: https://github.com/proSamik/n8n-automation-json/blob/main/youtube-transcript-analyzer/Youtube-Transcript-analyser-with-timestamp.json — 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.
An automated workflow for creating Veo3.1 videos and posting them to YouTube.
An automated workflow for creating Veo3 videos and posting them to YouTube.
An automated workflow for creating Kling 2.5 videos and posting them to YouTube.
An automated workflow for creating Kling 2.6 videos and posting them to YouTube.
Youtube-Transcript-With-Timestamp-To-Bullet-Points-Summary.Json. Uses httpRequest, formTrigger, agent, lmChatOpenRouter. Event-driven trigger; 10 nodes.