AutomationFlowsAI & RAG › Analyze YouTube Videos & Create AI Reports in Google Docs

Analyze YouTube Videos & Create AI Reports in Google Docs

Original n8n title: Analyze Youtube Videos and Auto-generate AI Reports in Google Docs with Deepseek

ByPratyush Kumar Jha @pratyush on n8n.io

A compact n8n workflow that accepts a YouTube link or uploaded video, pulls a transcript via Supadata.ai, runs a language-model-based video analysis agent to produce a structured report, extracts a title/metadata, then creates and updates a Google Doc with the analysis. It's…

Event trigger★★★★☆ complexityAI-powered13 nodesOpenRouter ChatHTTP RequestAgentInformation ExtractorGoogle DocsForm Trigger
AI & RAG Trigger: Event Nodes: 13 Complexity: ★★★★☆ AI nodes: yes Added:

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

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 →

Download .json
{
  "id": "8fuVkZJz7WDCfzBf",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Video Analysis Agent",
  "tags": [],
  "nodes": [
    {
      "id": "7c913788-7b16-4275-9d9e-192d4a0a4fa4",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        992,
        448
      ],
      "parameters": {
        "model": "deepseek/deepseek-r1-distill-llama-70b",
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e4006991-464c-4d50-bbe9-03de8d2fea3a",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1440,
        240
      ],
      "parameters": {},
      "typeVersion": 3.1
    },
    {
      "id": "3e1437d6-4d15-4977-8274-88a4fa99cf7d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        48
      ],
      "parameters": {
        "color": 5,
        "width": 524,
        "height": 580,
        "content": "### Transcribing\nThe workflow starts by accepting a YouTube link or uploaded video.  \nIt then sends the video to the transcription API to convert the audio into text.  \nThis transcript becomes the input for the AI analysis.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dacfd15e-41cb-4306-853e-881724b09608",
      "name": "Transcription using Supadata.ai",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        512,
        240
      ],
      "parameters": {
        "url": "=https://api.supadata.ai/v1/youtube/transcript?url={{ $json.youtube_url }}/TLEz9eiSc5s?v=dQw4w9WgXcQ&text=true",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {}
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "<API Key>"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "980b720d-2188-4745-917e-872548d176dc",
      "name": "Analyser",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        736,
        240
      ],
      "parameters": {
        "text": "=You are an expert video analyst AI. Your task is to analyze the provided video content or transcript: {{ $json.text }}{{ $json.content }} and generate a professional, structured, and detailed report. Do not use any markdown symbols, special characters, bullet points, or formatting styles like asterisks, hashes, or hyphens. The report should be clean, plain text, and clearly organized using labeled sections.\n\nThe report must include the following sections:\n\nExecutive Summary\nProvide a brief and concise overview of the video's main message or purpose. Summarize the core idea conveyed.\n\nKey Topics and Themes\nList and describe the main subjects or themes addressed in the video. Explain the context and relevance of each.\n\nImportant Insights\nHighlight critical points, facts, statistics, or conclusions drawn in the video. Mention any notable arguments, findings, or perspectives.\n\nContent Structure\nDescribe how the video is organized. Note the structure such as introduction, main segments, transitions, and conclusion. Include any recurring formats or styles used.\n\nTechnical Quality\nEvaluate the overall production quality of the video. Include observations on visual clarity, audio quality, background music, camera work, editing, pacing, and visual aids used.\n\nRecommendations\nProvide suggestions for improvement or actionable takeaways. Include guidance for content creators to enhance impact or for viewers to maximize value from the content.\n\nIf the video content or transcript is missing or unavailable, clearly indicate that an analysis cannot be performed due to lack of information.\n\nMaintain a professional, neutral, and objective tone throughout the report. Ensure the content is easy to read and informative for all audiences.\n\n",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.8
    },
    {
      "id": "fa8fecd6-400a-4ea6-b442-1fab38831b6e",
      "name": "File Name Detector",
      "type": "@n8n/n8n-nodes-langchain.informationExtractor",
      "position": [
        1072,
        240
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "options": {
          "systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value."
        },
        "attributes": {
          "attributes": [
            {
              "name": "Title",
              "required": true,
              "description": "Document Title"
            }
          ]
        }
      },
      "retryOnFail": true,
      "typeVersion": 1
    },
    {
      "id": "c12b64f7-2fb1-41db-b67f-61be8d3bc26e",
      "name": "Creating New File",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1888,
        240
      ],
      "parameters": {
        "title": "={{ $json.Title[0] }}",
        "folderId": "191GOMY_IVzDJtDeHc5j65MOUWpC623LD"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "42992016-bdab-482a-8812-c6e9eb30b090",
      "name": "Updating Content in File",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        2112,
        240
      ],
      "parameters": {
        "actionsUi": {
          "actionFields": [
            {
              "text": "={{ $('Analyser').item.json.output }}",
              "action": "insert"
            }
          ]
        },
        "operation": "update",
        "documentURL": "={{ $json.id }}"
      },
      "credentials": {
        "googleDocsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6fdbc4de-e634-46e9-8035-27cd022554d8",
      "name": "Upload File or YouTube Link",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        288,
        240
      ],
      "parameters": {
        "options": {},
        "formTitle": "Video Link",
        "formFields": {
          "values": [
            {
              "fieldLabel": "youtube_url",
              "placeholder": "Enter YouTube URL (optional)"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b944f1cf-fee2-49ae-82e9-67e0aa511a57",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        1664,
        240
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "renameField": true,
              "outputFieldName": "Title",
              "fieldToAggregate": "output.Title"
            },
            {
              "renameField": true,
              "outputFieldName": "Summary",
              "fieldToAggregate": "output"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b6a8ba7b-b6a3-4e5f-bd53-e97d7aef7d45",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        48
      ],
      "parameters": {
        "color": 5,
        "width": 716,
        "height": 580,
        "content": "### Analyzing\nThe transcript is passed to an AI agent that acts as a video analyst.  \nIt reads the full transcript, extracts insights, and generates a structured analysis report along with key metadata like the title.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "54ecec92-8033-4e93-8c85-7ddc0c7730eb",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        48
      ],
      "parameters": {
        "color": 5,
        "width": 924,
        "height": 580,
        "content": "### Storing\nFinally, the workflow creates a Google Docs file using the extracted title.  \nThe generated analysis report is inserted into the document, allowing easy sharing, documentation, and future reference.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "440cdb11-7a50-40b0-9e0b-0fc91314848a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        48
      ],
      "parameters": {
        "width": 492,
        "height": 788,
        "content": "A compact n8n workflow that accepts a YouTube link or uploaded video, pulls a transcript via Supadata.ai, runs a language-model-based video analysis agent to produce a structured report, extracts a title/metadata, then creates and updates a Google Doc with the analysis. It's designed to automate transcription \u2192 analysis \u2192 document creation for fast, repeatable video reviews.\n\n---\n# How it works\n\n1. **Trigger \u2014 Upload File or YouTube Link**  \n2. **Transcription \u2014 Transcription using Supadata.ai**  \n3. **Analysis \u2014 Analyser**  \n4. **Metadata extraction \u2014 File Name Detector**  \n5. **Aggregation & Merge**  \n6. **Document Creation**  \n\n# Quick Setup Guide\n\ud83d\udc49 [Demo & Setup Video](https://drive.google.com/file/d/1g0rY7bbZrsFLnZjDfhXURR5WViywnYNw/view?usp=sharing)\n\ud83d\udc49 [Course](https://www.udemy.com/course/n8n-automation-mastery-build-ai-powered-enterprise-ready/?referralCode=2EAE71591D3BEB80F2CC)\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "205ddaf8-8d55-4256-92f2-87c971f2aa63",
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyser": {
      "main": [
        [
          {
            "node": "File Name Detector",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Creating New File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Creating New File": {
      "main": [
        [
          {
            "node": "Updating Content in File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "File Name Detector": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyser",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "File Name Detector",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Upload File or YouTube Link": {
      "main": [
        [
          {
            "node": "Transcription using Supadata.ai",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Transcription using Supadata.ai": {
      "main": [
        [
          {
            "node": "Analyser",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

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.

Pro

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

About this workflow

A compact n8n workflow that accepts a YouTube link or uploaded video, pulls a transcript via Supadata.ai, runs a language-model-based video analysis agent to produce a structured report, extracts a title/metadata, then creates and updates a Google Doc with the analysis. It's…

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.

OpenAI, HTTP Request, Form Trigger +7
AI & RAG

The AI-Powered Shopify SEO Content Automation is an enterprise-grade workflow that transforms product content creation for e-commerce stores. This sophisticated multi-agent system integrates GPT-4o, C

Perplexity Tool, Memory Buffer Window, Agent +15
AI & RAG

Deep Research new (fr). Uses outputParserStructured, formTrigger, chainLlm, form. Event-driven trigger; 82 nodes.

Output Parser Structured, Form Trigger, Chain Llm +8
AI & RAG

Digistars - Scrape & Crawl. Uses httpRequest, n8n-nodes-firecrawl-scraper, googleSheets, lmChatOpenAi. Event-driven trigger; 63 nodes.

HTTP Request, N8N Nodes Firecrawl Scraper, Google Sheets +5
AI & RAG

leads. Uses supabase, gmail, formTrigger, httpRequest. Webhook trigger; 62 nodes.

Supabase, Gmail, Form Trigger +13