Automated Image Metadata Tagging with Google Drive & OpenAI

Discover how this workflow automates image content analysis and embeds descriptive metadata keywords directly into image files stored in Google Drive, saving hours of manual tagging.
googleDriveTrigger
googleDrive
openAi
+4
Learn how to Build this Workflow with AI:
Workflow Identifier: 1955
NODES in Use: Google Drive Trigger, Google Drive, OpenAI, Extract from File, Merge, Code, Convert to File

Press CTRL+F5 if the workflow didn't load.

Visit through Desktop for Best experience

1. Opening Problem Statement

Meet Sarah, a digital content manager responsible for organizing thousands of high-resolution images stored on her company’s Google Drive. Every week, new images flood into a specific folder, and Sarah’s team relies on accurate metadata tags to quickly locate relevant visuals for marketing campaigns, social media posts, and client presentations. The problem? Manually reviewing each image to add descriptive keywords is tedious, error-prone, and consumes nearly 10 hours of their workweek. Missed or inconsistent tags cause delays and lost opportunities in delivering timely content.

This is exactly where our Automated Image Metadata Tagging workflow comes to the rescue. It not only analyzes image contents automatically using AI but also writes these insights back into the image’s metadata, drastically reducing manual effort and improving searchability without altering the original file structure.

2. What This Automation Does

When triggered by the arrival of a new image in a watched Google Drive folder, this workflow performs several critical tasks seamlessly:

  • Detects newly added image files in a specified Google Drive folder every minute.
  • Downloads the image file directly from Google Drive into the workflow.
  • Utilizes OpenAI’s GPT-4o model to analyze the image content and generate a comma-separated list of descriptive keywords (metadata tags).
  • Extracts the image file as Base64-encoded data for manipulation.
  • Runs a custom JavaScript code node to embed the generated keywords into the image’s XMP metadata section under dc:subject tags.
  • Converts the manipulated Base64 data back into binary file format.
  • Updates the original image file on Google Drive with enhanced metadata, preserving the original filename.

These six streamlined steps automate a task that typically takes hours, enabling Sarah’s team to focus on more strategic content duties while ensuring image archives are fully searchable and well-tagged. The time savings can easily exceed 8 hours per week and improve metadata accuracy significantly.

3. Prerequisites ⚙️

  • Google Drive account with folder access and API credentials set up for file trigger, download, and update operations 📁🔑
  • OpenAI account with API access configured for image content analysis using the GPT-4o language model 🔐
  • n8n account (cloud or self-hosted) to create and run this workflow 🔌⏱️
  • (Optional) Knowledge of basic JavaScript for understanding the custom metadata injection code ✏️

4. Step-by-Step Guide

Step 1: Set up Google Drive Trigger for New File Detection

Go to the Google Drive Trigger node:

  • Click on the node labeled “Trigger: New file added to Google Drive Folder.”
  • Select the event “fileCreated” to detect newly added files.
  • Choose the specific Drive folder to monitor by entering its folder ID or browsing your Drive. In the workflow, this folder is named “EXIF” with ID: 1WaIRWXcaeNViKmpW5IyQ3YGARWYdMg47.
  • Set the polling interval to “every minute” for near real-time processing.

After saving, this node will fire each time a new image file lands in that folder. Common mistake: Forgetting to select the exact folder or using an incorrect folder ID, which would cause the trigger to miss files.

Step 2: Download the Newly Added Image File

Click on the Download Image File Google Drive node.

  • Set operation to “download” to retrieve the file by its ID passed from the trigger node.
  • Ensure you use proper Google Drive OAuth2 credentials linked to your account.

When you execute this, it downloads the new image file’s binary content encoded as Base64. You should see the file data attached to the node’s output.

Common mistake: Not linking the file ID correctly from the trigger node input.

Step 3: Analyze Image Content Using OpenAI GPT-4o Model

Open the Analyze Image Content node.

  • Set the node type to OpenAI (from @n8n/n8n-nodes-langchain.openAi).
  • Configure the input type as “base64” and resource as “image.”
  • Enter the prompt exactly as: Deliver a comma separated list describing the content of this image.
  • Select model as “chatgpt-4o-latest.”
  • Authenticate through the linked OpenAI API credentials.

This triggers OpenAI’s image analysis, which returns a descriptive list of keywords representing the image contents.

Common mistake: Not setting the input as Base64 image data or missing API credentials.

Step 4: Extract Image Base64 from the Downloaded File

Open the Extract from File node.

  • Set the operation to “binaryToPropery.”
  • This converts the binary image content into a JSON property for easier manipulation downstream.

Check the output to see the Base64-encoded image string ready for metadata embedding.

Step 5: Merge AI Metadata with Image Data

Open the Merge Metadata and Base64 Code node.

  • Set the merge mode to “combine” and combine by position.
  • This node combines the textual metadata from AI with the Base64 image content into a single item to be processed further.

Step 6: Write Keywords into Image Metadata with Custom Code Node

Open the Write Metadata to Base64 Code node (Code type).

Paste the following JavaScript code exactly as shown:

const tags = items[0].json.content.split(', ');

const xmpData = `

    
        
            
            
                
                    ${tags.map(tag => `${tag}`).join('n                    ')}
                
            
            ${new Date().toISOString()}
        
    

`;

const xmpHeader = Buffer.from([
    0xFF, 0xE1,
    0x00, 0x00,
    0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x6E, 0x73, 0x2E,
    0x61, 0x64, 0x6F, 0x62, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x2F,
    0x78, 0x61, 0x70, 0x2F, 0x31, 0x2E, 0x30, 0x2F, 0x00
]);

const xmpBuffer = Buffer.from(xmpData, 'utf8');
const imageBuffer = Buffer.from(items[0].json.data, 'base64');
const length = xmpHeader.length + xmpBuffer.length - 2;
xmpHeader[2] = (length >> 8) & 0xFF;
xmpHeader[3] = length & 0xFF;

const newImageData = Buffer.concat([
    imageBuffer.slice(0, 2),
    xmpHeader,
    xmpBuffer,
    imageBuffer.slice(2)
]);

items[0].json.data = newImageData.toString('base64');

return items;

This script generates XMP metadata containing the AI-derived tags, embeds it into the image binary at the appropriate header, and outputs the modified Base64 data for the next step.

Common mistake: Modifying the code improperly can corrupt the image file structure. Copy-paste carefully.

Step 7: Convert the Modified Base64 Data Back to File

Open the Convert to File node.

  • Set the operation to “toBinary” and source property to “data” (the Base64 string from the previous node).

This converts the updated Base64 string back into a binary file format that Google Drive can understand.

Step 8: Update Original Image File with Enhanced Metadata

Open the Update Image File Google Drive node.

  • Set operation to “update.”
  • Use the file ID from the “Download Image File” node to target the correct file.
  • Enable “changeFileContent” to true and use the converted binary file from the previous node as the new content.
  • Keep the filename unchanged for seamless replacement.

Run this node to overwrite the original image with the enriched metadata.

Common mistake: Forgetting to enable content change or mismatching file IDs, which would leave metadata unchanged.

5. Customizations ✏️

  • Use a different AI model: In the “Analyze Image Content” node, change the modelId parameter to another OpenAI model like “gpt-4” or an alternative API provider. This swaps the image description source.
  • Add additional metadata fields: Modify the JavaScript in the “Write Metadata to Base64 Code” node to insert creator or copyright details into the XMP dc:creator or photoshop namespaces.
  • Adjust folder to monitor: Change the folder ID in the Google Drive Trigger node to any other folder you want to watch for new images, adapting the workflow to different projects.
  • Modify keyword separator: Adjust the AI prompt to change how tags are delivered (e.g., using semicolons instead of commas), then update the code logic accordingly.

6. Troubleshooting 🔧

  • Problem: “OpenAI API request failed or returned an empty response.”
    • Cause: API key missing, quota exceeded, or incorrect input format.
    • Solution: Double-check OpenAI credentials in n8n, verify usage limits on your account, and ensure the input type is set to Base64 image.
  • Problem: “Google Drive file update failed with permission denied.”
    • Cause: OAuth credentials lack update permissions or folder access issues.
    • Solution: Reconnect Google Drive OAuth credentials with proper scopes and verify folder permissions.
  • Problem: “Image file gets corrupted or cannot open after update.”
    • Cause: Code node script modification errors or encoding issues.
    • Solution: Restore original code script exactly as given, ensure no stray characters or encoding problems.

7. Pre-Production Checklist ✅

  • Confirm Google Drive API credentials have read, write, and update file permissions.
  • Test OpenAI API connection and ensure image input returns keyword tags successfully.
  • Verify the watched Google Drive folder ID is correct and accessible.
  • Run manual test by uploading a sample image to the folder and check that metadata updates correctly.
  • Backup original images before running the workflow for the first time.

8. Deployment Guide

Once you complete the setup, activate the workflow in n8n by toggling the “Active” switch.

The Google Drive Trigger node will poll every minute looking for new images. Upon detection, the workflow automatically processes and updates image metadata.

Use n8n’s execution logs to monitor for errors or failed executions. Any issues can be addressed by re-running steps or fixing credential issues.

9. FAQs

  • Q: Can I use alternatives to OpenAI for image analysis?

    A: Yes, you can replace the OpenAI LangChain node with other AI providers n8n supports, like Anthropic or Ollama, by adjusting the node accordingly.
  • Q: Will embedding metadata increase file size significantly?

    A: The addition of XMP tags slightly increases file size but is minimal compared to original image size.
  • Q: Is the image content secure during processing?

    A: Yes, the workflow uses secure OAuth for Google Drive and encrypted API communication with OpenAI, but avoid using sensitive images in public workflows.
  • Q: How many images can this workflow handle per day?

    A: Volume depends on API quotas and n8n resource limits; for large scale, consider batching or rate limiting.

10. Conclusion

By following this detailed tutorial, you’ve built an Automated Image Metadata Tagging workflow that analyzes images uploaded to a Google Drive folder, generates descriptive keywords using AI, and writes these tags right back into the image’s metadata. This automation saves hours of manual work weekly, increases accuracy, and makes image search effortless for Sarah and her team.

Next, consider extending this workflow by:

  • Integrating with a digital asset management system for tagging across various storage platforms.
  • Adding multi-language support for metadata tags using AI translation nodes.
  • Sending notifications via Slack or email when new images are tagged and ready.

You’re now empowered to streamline image organization confidently with n8n and OpenAI!

Related Workflows

Automate Viral UGC Video Creation Using n8n + Degaus (Beginner-Friendly Guide)

Learn how to automate viral UGC video creation using n8n, AI prompts, and Degaus. This beginner-friendly guide shows how to import, configure, and run the workflow without technical complexity.
Form Trigger
Google Sheets
Gmail
+37
Free

AI SEO Blog Writer Automation in n8n (Beginner Guide)

A complete beginner guide to building an AI-powered SEO blog writer automation using n8n.
AI Agent
Google Sheets
httpRequest
+5
Free

Automate CrowdStrike Alerts with VirusTotal, Jira & Slack

This workflow automates processing of CrowdStrike detections by enriching threat data via VirusTotal, creating Jira tickets for incident tracking, and notifying teams on Slack for quick response. Save hours daily by transforming complex threat data into actionable alerts effortlessly.
scheduleTrigger
httpRequest
jira
+5
Free

Automate Telegram Invoices to Notion with AI Summaries & Reports

Save hours on financial tracking by automating invoice extraction from Telegram photos to Notion using Google Gemini AI. This workflow extracts data, records transactions, and generates detailed spending reports with charts sent on schedule via Telegram.
lmChatGoogleGemini
telegramTrigger
notion
+9
Free

Automate Email Replies with n8n and AI-Powered Summarization

Save hours managing your inbox with this n8n workflow that uses IMAP email triggers, AI summarization, and vector search to draft concise replies requiring minimal review. Automate business email processing efficiently with AI guidance and Gmail integration.
emailReadImap
vectorStoreQdrant
emailSend
+12
Free

Automate Email Campaigns Using n8n with Gmail & Google Sheets

This n8n workflow automates personalized email outreach campaigns by integrating Gmail and Google Sheets, saving hours of manual follow-up work and reducing errors in email sequences. It ensures timely follow-ups based on previous email interactions, optimizing communication efficiency.
googleSheets
gmail
code
+5
Free