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": "hKkZYhJqBNir8amQ",
"name": "\ud83c\udfa5 Gemini AI Video Analysis",
"tags": [
{
"id": "bjzc8PEM2FgX8rUa",
"name": "Marketing",
"createdAt": "2025-04-18T13:34:48.192Z",
"updatedAt": "2025-04-18T13:34:48.192Z"
},
{
"id": "OiWw6VmsJz6ZBAzz",
"name": "AI",
"createdAt": "2025-04-25T09:59:58.961Z",
"updatedAt": "2025-04-25T09:59:58.961Z"
}
],
"nodes": [
{
"id": "f5c9faf8-441a-49ef-a0de-0daa08c3bbfa",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
400,
160
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "c0336074-a30f-4fc0-aa57-7142cea1a3da",
"name": "Download video",
"type": "n8n-nodes-base.httpRequest",
"position": [
-40,
160
],
"parameters": {
"url": "={{ $json.video_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "8b04c774-7a02-43ff-bac9-d19a427d514e",
"name": "Upload video Gemini",
"type": "n8n-nodes-base.httpRequest",
"position": [
180,
160
],
"parameters": {
"url": "=https://generativelanguage.googleapis.com/upload/v1beta/files?key={{ $vars.GeminiKey }}",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "binaryData",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "X-Goog-Upload-Command",
"value": "start, upload, finalize"
},
{
"name": "X-Goog-Upload-Header-Content-Length",
"value": "={{ $binary.data.fileSize }}"
},
{
"name": "X-Goog-Upload-Header-Content-Type",
"value": "=video/{{ $binary.data.fileExtension }}"
},
{
"name": "Content-Type",
"value": "video/mp4"
}
]
},
"inputDataFieldName": "=data"
},
"typeVersion": 4.2
},
{
"id": "eacf4317-18bc-441a-a415-488b65bb9545",
"name": "Analyze video Gemini",
"type": "n8n-nodes-base.httpRequest",
"position": [
620,
160
],
"parameters": {
"url": "=https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash-exp:generateContent?key={{ $vars.GeminiKey }}",
"method": "POST",
"options": {},
"jsonBody": "={\n \"contents\": [\n {\n \"role\": \"user\",\n \"parts\": [\n {\n \"fileData\": {\n \"fileUri\": \"{{ $json.file.uri }}\",\n \"mimeType\": \"{{ $json.file.mimeType }}\"\n }\n },\n {\n \"text\": \"Describe in detail what is visually happening in the video, including key elements, actions, colors, and branding. Note the style, tone, and any notable creative techniques being used.\"\n }\n ]\n }\n ],\n \"generationConfig\": {\n \"temperature\": 1.4,\n \"topK\": 40,\n \"topP\": 0.95,\n \"maxOutputTokens\": 8192,\n \"responseModalities\": [\"Text\"]\n }\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "ff204f3f-947e-4b6a-a9a3-822d6d57064b",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-480,
160
],
"parameters": {},
"typeVersion": 1
},
{
"id": "d842a85d-121d-46ed-9df7-44d2c7849c03",
"name": "Set Input",
"type": "n8n-nodes-base.set",
"position": [
-260,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6e1728e0-4749-47b9-92ae-4d1c0b7008c8",
"name": "video_url",
"type": "string",
"value": "https://video-gru2-1.xx.fbcdn.net/v/t42.1790-2/469342405_958689216107669_4819692307529683812_n.mp4?_nc_cat=109&ccb=1-7&_nc_sid=c53f8f&_nc_ohc=DMM4-vR_LwoQ7kNvwGFIAOW&_nc_oc=AdkqAUzPHupjN-yAD8AGHbbnsMLQptad7NFTL-fuRa3Kq12boE6Ar_elagnzmgR87uU&_nc_zt=28&_nc_ht=video-gru2-1.xx&_nc_gid=ikICtUIUUCoHz775L2uRBw&oh=00_AfHlScWo8zXllEsqzl3wabxNva8z_qiFuA2g-hWzvnlVdg&oe=681596F3"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "efb6ed9b-5f65-4bf3-8ea9-00430abdb247",
"name": "Get Result",
"type": "n8n-nodes-base.set",
"position": [
840,
160
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "1ea390b9-3371-4a3a-8741-bd6ec74dc64b",
"name": "videoDescription",
"type": "string",
"value": "={{ $json.candidates[0].content.parts[0].text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "fc917016-b2f3-4d69-8924-0aa16b4b43bc",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-920,
-380
],
"parameters": {
"color": 7,
"width": 560,
"height": 520,
"content": "## Video Analysis with Gemini AI\n\nThis workflow demonstrates how to analyze video content using Google's Gemini 2.0 Flash API:\n1. Download a video from a URL\n2. Upload it to Gemini's servers\n3. Process the video with AI to generate a detailed description\n4. Extract the analysis results\n\nUse cases: Content moderation, video cataloging, accessibility features, etc.\n\nOUTPUT: The workflow produces a detailed text description of the video content in the \"MediaDescription\" variable.\nYou can use this data for content tagging, searchable descriptions, accessibility, moderation, or cataloging.\n\n\u2699\ufe0f **Before using this workflow**, make sure to set the `GeminiKey` environment variable with your Gemini API key. \nThis ensures your API key is securely managed and not hardcoded in the workflow.\n\n__SECURITY NOTE__: This workflow contains an API key in the workflow data. \nFor production use, store your API keys in Credentials or use environment variables (like `GeminiKey`) instead of hardcoding them.\n"
},
"typeVersion": 1
},
{
"id": "8854f039-f23f-4174-8821-7acfbc5ecfab",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
20
],
"parameters": {
"color": 5,
"width": 220,
"height": 300,
"content": "## Configuration\nDefine the video URL you want to analyze.\n"
},
"typeVersion": 1
},
{
"id": "189ede99-f80f-4f41-8481-c9ba518fd0e7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-70,
-140
],
"parameters": {
"color": 4,
"width": 820,
"height": 460,
"content": "## Video Processing Pipeline\n\nThis section handles the complete video processing workflow:\n\n1. DOWNLOAD: First, we fetch the video from the provided URL, converting it to binary data that Gemini can process\n\n2. UPLOAD: Next, we send the binary video data to Gemini's servers where it's stored temporarily for AI processing\n\n3. ANALYZE: Finally, we request Gemini's AI to analyze the video content. You can customize the prompt in the \"Analyze video Gemini\" node to focus on specific aspects of the video content you're interested in\n\nThe Wait node ensures the video is fully processed before analysis begins.\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "5f8d8d62-091e-4883-bbb0-8087ebe7b501",
"connections": {
"Wait": {
"main": [
[
{
"node": "Analyze video Gemini",
"type": "main",
"index": 0
}
]
]
},
"Set Input": {
"main": [
[
{
"node": "Download video",
"type": "main",
"index": 0
}
]
]
},
"Download video": {
"main": [
[
{
"node": "Upload video Gemini",
"type": "main",
"index": 0
}
]
]
},
"Upload video Gemini": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"Analyze video Gemini": {
"main": [
[
{
"node": "Get Result",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Set Input",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Unlock deeper insights from your videos effortlessly with this workflow, which analyses footage using Google's Gemini AI to extract key details like scene descriptions, object recognition, and sentiment. It's perfect for content creators, marketers, or researchers handling visual media who need quick, automated breakdowns without manual viewing. The core step involves downloading the video via HTTP request, uploading it to Gemini, and processing the AI-generated analysis for immediate results.
Use this workflow when you have short online videos requiring rapid AI evaluation, such as social media clips or training footage, especially in event-driven setups like post-upload processing. Avoid it for lengthy videos exceeding Gemini's limits or when real-time analysis is essential, as the wait node introduces delays. Common variations include integrating with Google Drive for direct file pulls or adding email notifications for analysis summaries.
About this workflow
🎥 Gemini AI Video Analysis. Uses httpRequest, manualTrigger, stickyNote. Event-driven trigger; 10 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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.
Create Animated Stories using GPT-4o-mini, Midjourney, Kling and Creatomate API. Uses httpRequest, stickyNote, manualTrigger. Event-driven trigger; 51 nodes.
Generate Leads with Google Maps - AlexK1919. Uses manualTrigger, scheduleTrigger, executeWorkflowTrigger, stopAndError. Event-driven trigger; 42 nodes.
Limit Code. Uses microsoftOutlookTrigger, httpRequest, limit, noOp. Event-driven trigger; 41 nodes.
AutoQoutesV2_template. Uses manualTrigger, httpRequest, stickyNote, googleSheets. Event-driven trigger; 28 nodes.
Turn YouTube Videos into Summaries, Transcripts, and Visual Insights. Uses manualTrigger, stickyNote, httpRequest. Event-driven trigger; 26 nodes.