Veo/Gemini API Video Download 403 Error: "Project Mismatch" (asset hosted on project 542708778979, not mine)

Hello Google AI team,

I’m encountering a repeatable issue when generating videos with the Gemini API (Veo 3.0, via Python/FastAPI backend).

Details:

  • My working GCP project: gen-lang-client-0704402353 (API key properly restricted and API enabled)

  • Video generation request completes successfully – status completed

  • However, the download URL for the generated video points to a Google API path with the project ID 542708778979 (which I do not own or control)

Error Response Example:

json

{ "error": { "code": 403, "message": "Generative Language API has not been used in project 542708778979 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/generativelanguage.googleapis.com/overview?project=542708778979 then retry...", "status": "PERMISSION_DENIED" } }

API Key/Project Configuration:

  • Gemini API Key from gen-lang-client-0704402353, restricted properly

  • All IAM, billing, and quota settings correct

  • API is enabled on my own project, NOT on 542708778979

What I’ve Tried:

  • Verified all API key and IAM/billing settings

  • Retried video generation; issue persists

  • Tried with different prompts and waited for API propagation

  • Found similar reports from other users on forums, but no end-user solution

  • Created a dedicated GCS bucket (gen-lang-client-0704402353-video-output) for video outputs and configured my API calls to use output_gcs_uri per documentation and community advice. Despite this, responses still provide inaccessible Google-internal asset URLs, not paths in my bucket.

Issue:
The video asset is being hosted under a Google-internal project, leading to a 403 (Permission Denied), and there is no way for an end user to enable the API on that project. This seems like a backend misrouting for output assets.

References:

  • Multiple forum users reporting the same project mismatch with Veo/Gemini video assets

Example from my code:

text

video_uri: https://generativelanguage.googleapis.com/v1beta/files/zqnm4ir3wmp5:download?alt=media

.env/project config:

text

Project: gen-lang-client-0704402353 Key: (Gemini API key, restricted to Generative Language API)

Request:
Please advise on a workaround or escalate for a backend fix. Can these output assets be routed correctly to the user’s own project/bucket? Or how should end users proceed when encountering this project mismatch/403?

Thank you,
Amit Kharva

It is solved. I have used below reference.

ref: 3 days trying to solve: Veo 3.0 403 error Generative Language API has not been used in project 542708778979 etc - #12 by mastin8

## :wrench: **Solution Overview**

We implemented a **workaround** by appending the Gemini API key to the download URL, making it accessible for frontend download.

### **URL Transformation**:

```

:cross_mark: Original URL (403 Error):
.com/v1beta/files/xxxxx:download?alt=media

:white_check_mark: Working URL (with API Key):
.com/v1beta/files/xxxxx:download?alt=media&key=YOUR_GEMINI_API_KEY