google-vids-apiSAFE
Google Vids API examples by useapi.net: Gemini Omni 1.1 Flash video with voiced AI avatars, extend to ~41 s, 1080p upscale, on your own Google AI plan, no captcha. Node.js and Python, plus a Vids watermark remover.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Runnable examples for the Google Vids API by useapi.net: make Gemini Omni 1.1 Flash video in Google Vids with voiced avatars, your own reference images, extends up to about 41 seconds and a 1080p upscale, through a REST API that runs on your own Google AI plan. Vids has its own monthly allowance, separate from Google Flow's credits, and asks for no captcha.
8b16e2b2aa3fOBSERVED · 2026-10-14Install
Commands as the repository documents them. They are shown, not run.
git clone https://github.com/useapi/google-vids-api.git
pip install numpy
npx skills add useapi/google-vids-api --skill google-vids-video
git clone https://github.com/useapi/google-vids-api.git
pip install numpy
Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| claude-code | mentioned | |
| codex | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: google-vids-video description: Make AI video in Google Vids with Gemini Omni 1.1 Flash through the useapi.net Google Vids API, on the user's own Google AI plan. Creates talking AI avatars (a person drawn from a description, with one of 30 voices) and puts them in clips as an AI influencer, spokesperson or UGC ad presenter; also text-to-video, reference images, start image, extend a clip up to about 41 seconds, upscale to 1080p, edit by prompt, and Vids images. Downloads the .mp4. Use when the user asks for a Google Vids video, a Gemini Omni or Omni Flash clip, an AI avatar or talking-avatar video, an AI influencer or spokesperson video, a UGC-style ad, or to extend or upscale a Vids clip from the command line. Needs curl, jq and a USEAPI_TOKEN environment variable. license: MIT compatibility: Needs bash, curl, jq and network access to api.useapi.net. Requires a useapi.net API token (USEAPI_TOKEN) and a Google account on a paid Google AI plan (Pro or Ultra) connected to useapi.net with the Google Vids setup. metadata: author: useapi.net homepage: https://github.com/useapi/google-vids-api --- # Gemini Omni 1.1 Flash video and AI avatars with the useapi.net Google Vids API These scripts call the [useapi.net Google Vids API](https://useapi.net/docs/api-google-vids-v1), a third-party REST API that drives the user's own Google Vids account. Every clip spends seconds of the monthly Vids allowance of the user's Google AI plan. Every script is in `scripts/` next to this file. Run them with bash. ## Before you start 1. `USEAPI_TOKEN` must be set. If it is missing, ask the user for their useapi.net API token (setup: https://useapi.net/docs/start-here/setup-useapi). Their Google account must already be connected (https://useapi.net/docs/start-here/setup-google-vids). To connect one by hand, the clean sign-in scripts at https://github.com/useapi/google-account-setup give cookies that keep working. **Never print the token, echo it, or write it to a file.** 2. `USEAPI_EMAIL` is optional: the connected Google account to use. Leave it unset and the API picks a healthy account with allowance left. Avatars, clips and images belong to the account that made them, and everything in one request must come from the same account, so set it when the user has several accounts. 3. `curl` and `jq` must be installed. ## Fastest path: one command ```bash scripts/video.sh "<prompt>" [key=value ...] ``` It prints progress on stderr and the saved `.mp4` path on stdout, with the job record next to it as `.json` (`OUT_DIR` sets the folder, default the current one). A clip usually takes 30 to 100 seconds; run it in the background (in Claude Code, `run_in_background`) or with a timeout of at least 10 minutes, and do not start a second copy while it runs. ```bash # Text to video, 8 s landscape 720p (the defaults) scripts/video.sh "A lighthouse keeper climbs the spiral stairs at dusk, lantern swinging. Slow handheld follow shot." # A talking avatar for Shorts/Reels/TikTok AV=$(scripts/avatar.sh "Maya" Kaci appearance="a woman in her late twenties with a curly brown bob and freckles" outfit="cream knit sweater" shot=upper-body) scripts/video.sh "@avatar_1 holds up the mug, smiles and says: \"Honestly the best coffee I've had all year.\" Handheld phone camera, natural light." \ avatar_1="$AV" aspectRatio=portrait duration=6 ``` ## Costs (the Vids allowance) Vids meters video in **seconds** and images by **count**, per month, separate from Google Flow credits. Google AI Pro gets 500 s, Ultra 5x 2,500 s, Ultra 20x ($199) 10,000 s of video; images 30 / 300 / 1,000. A free Google account gets no video or images (it can still make avatars). Allowances reset on the 1st at 00:00 Pacific. | Request | Uses | |---|---| | A clip (`generate.sh`, `video.sh`) | its `duration` in seconds. **`720p` and `1080p` cost the same.** Avatars and references add nothing | | Extend (`extend.sh`) | only the seconds it adds, whatever the clip's length | | Upscale (`upscale.sh`) | the clip's full length again (an 8 s clip uses 8 s) | | Edit (`edit.sh`) | the length it returns, at most 10 s | | Image (`image.sh`) | 1 image | | Avatar from a description | 1 image. From an `image.sh` image: nothing more. Voices are free | | A request Google refuses (content `422` or quota `429`) | nothing | Every finished job reports what is left (`result.quota`, logged by `wait-job.sh`). Tell the user the cost before anything over 10 s or more than one clip. ## 720p first, upscale once at the end A `1080p` clip behaves like an upscaled `720p` one and takes about twice as long. Extending or editing a `1080p` clip makes faces softer and waxier at every step. So: - Make, extend and edit at `720p` (the default). - When the clip is finished and is **20 seconds or less**, upscale it once with `upscale.sh`. Longer clips are refused (`400`, nothing charged). - A single clip that won't be extended or edited can be `resolution=1080p` from the start (same cost). - For a `1080p` clip longer than 20 s, set `resolution=1080p` on the last extend only. ## Avatars An avatar is a fixed picture of a person plus one of 30 voices, saved in the account's Vids document and reusable by `avatarId` in any number of clips (`avatar.sh --list` shows them, including ones made in the Vids web app). - Made **from a description** (`appearance=`, plus `outfit=`, `shot=close-up|upper-body|full-body`, `expression=`, `details=`), where Google draws the person and the picture is saved as `avatar_<name>.jpg`; or **from an image** made with `image.sh` (`image=<mediaId>`, within a few hours of making it). - **Not from the user's own photo**: an avatar of a real person needs Google's live selfie and phone check, which an API cannot do. Say so if asked, and offer a description instead. - Voice: `scripts/avatar.sh --voices` lists name, voice id and style (e.g. `Holt` = Charon, informative; `Kaci` = Autonoe, bright). Ask the user or pick one that fits. - A clip takes **up to 3 reference
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (3 observation(s))
- Network
- declared (6 observation(s))
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (1)
- Download your clips with [GET /media/`mediaId`](https://useapi.net/docs/api-google-vids-v1/get-google-vids-media-mediaId?utm_source=github.com&utm_medium=referral&utm_campaign=google-vids-api) and r
Gates applied: no_behavioural_pass.
8b16e2b2aa3ffull audit observations/trust-audit/skill/useapi__google-vids-api.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | 8b16e2b2aa3f | SAFE | B | 89 | first audit |
Questions
What does the google-vids-api skill do?
Google Vids API examples by useapi.net: Gemini Omni 1.1 Flash video with voiced AI avatars, extend to ~41 s, 1080p upscale, on your own Google AI plan, no captcha. Node.js and Python, plus a Vids watermark remover.
Is google-vids-api safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can google-vids-api access on my machine?
The audit observed that it reaches the network and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: none found.
Which assistants does google-vids-api work with?
Its documentation mentions claude-code and codex. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (8b16e2b2aa3f), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.