Google Veo 2 API authentication issue while using N8N

Facing challenges with video creation from images using Veo 2 in my N8N workflow

I am attempting to set up a routine that transforms images into videos with Google’s Veo 2 API through N8N. While some aspects appear to work, I’m encountering a significant authentication hurdle.

What’s functioning well:

  • My API calls to the Veo 2 service return success (HTTP 200)
  • I see charges for the API usage from Google
  • The video generation steps are completed successfully

Here’s the issue I’m running into:

  • When I attempt to fetch the generated video from the supplied link, I receive a 403 error
  • This error points to a GCP project that I cannot find in my account
  • I only have two projects where I turned on the Gemini API, and they operate correctly
  • I’ve searched diligently in my Google Cloud console but cannot uncover this unidentified project

Here are the error details I received:

{
  "error": {
    "code": 403,
    "message": "Generative Language API has not been used in project YYYYYYYY before or it is disabled. Enable it by visiting console.developers.google.com/apis/api/generativelanguage.googleapis.com/overview?project=YYYYYYYY then retry.",
    "status": "PERMISSION_DENIED",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.ErrorInfo",
        "reason": "SERVICE_DISABLED",
        "domain": "googleapis.com",
        "metadata": {
          "activationUrl": "console.developers.google.com/apis/api/generativelanguage.googleapis.com/overview?project=YYYYYYYY",
          "containerInfo": "YYYYYYYY",
          "service": "generativelanguage.googleapis.com",
          "consumer": "projects/YYYYYYYY",
          "serviceTitle": "Generative Language API"
        }
      }
    ]
  }
}

Has anyone faced similar authentication challenges when integrating N8N with Google’s video generation APIs? I’m uncertain if it’s related to project settings or if there’s another underlying issue.

Check if ur using OAuth vs service acct auth - Veo2 download links sometimes need OAuth tokens instead of service acct keys. hit this issue where creation worked fine but downloads threw 403s.

Had this exact authentication nightmare with Veo 2 through N8N last month. Google’s video generation hits multiple backend services, and each one checks permissions separately. Here’s what fixed it for me: create a brand new service account just for Veo 2 and give it ‘Vertex AI User’ and ‘Storage Object Viewer’ roles at the org level, not project level. That mystery project ID you’re seeing? It’s from Google’s internal video processing that checks your credentials against different API quotas. You’ll also need to enable both Vertex AI API and Generative Language API in all your projects. The video download URLs authenticate against whichever project has the most open settings for your service account - that’s why you’re getting the random project reference.

i had a similar problem b4. make sure ur service accounts have the right permissions and are all linked to the same proj. sometimes n8n can switch stuff round without u knowing. double check the creds u r using for download vs creation.

This authentication mess happens because of how Google routes video processing internally. When N8N calls Veo 2, your request hits one service, but the video gets stored in Google’s distributed system that checks permissions through completely different endpoints. That phantom project ID shows up because Google’s video pipeline creates temp storage containers that reference internal project structures you can’t access directly. What worked for me: enable the Generative Language API in your billing project, not just where you activated Vertex AI. Go to your Google Cloud billing console, find which project’s getting charged for Veo 2 calls, and enable all the required APIs there. Also make sure your service account has cross-project permissions - Google’s video system spans multiple internal services during processing.

That mystery project ID is a cross-service auth issue in Google’s system. Veo 2’s download URLs go through different Google services than the creation API does. I ran into this same problem recently. The project ID in your error belongs to an internal Google service account that needs the Generative Language API enabled for your account. Try opening the activation URL from the error message in your browser while you’re logged into Google - it might show hidden projects or ask you to enable the right APIs. Also make sure your service account has the “AI Platform User” role on top of the standard API permissions. Veo 2 needs those enhanced ML service permissions to pull files.

Google’s video API authentication is a nightmare - it keeps bouncing between different internal services and that random project ID shows up when Veo 2 dumps your video into their storage system.

I got tired of fighting Google’s messy service account permissions and their mystery project routing, so I switched to Latenode.

Connect your Google account once and it handles all the auth complexity automatically. No more digging for hidden projects or guessing which roles go where. Video generation and download just works.

Moved my whole workflow over and it’s saved me hours of debugging Google’s permission nightmare.

Classic Google API mess. Video generation and retrieval use different services, so you get that random project ID popping up.

N8N makes the Veo 2 call with your credentials, but when it tries downloading the video, Google bounces you to another endpoint that needs the Generative Language API enabled.

I’ve been through this nightmare. Instead of fighting Google’s tangled project setup, I just moved to Latenode.

Latenode sorts out all the auth stuff automatically. Connect your Google account once and it handles the different API calls and routing for you. No more mystery project IDs or permission headaches.

It’s got built-in error handling for Google’s weird quirks too. When I moved my video workflows over, everything just worked.