Google's June 15 deprecation notice gave 15 and 63 days: run a drill

Google announced Veo and Imagen 4 deprecations on Jun 15, 2026 with shutdowns Jun 30 and Aug 17. Here is a five-step drill that fits inside the shorter window.

4 min readSume
All posts

The Gemini API changelog entry dated June 15, 2026 announced Veo and Imagen 4 deprecations with shutdowns on June 30 and August 17, 2026. That is 15 days to the first cutoff and 63 days to the second, so a team with no inventory of its model ids has about two weeks.

Notice windows from the Gemini API changelog (read 2026-10-03)
Notice dateShutdown dateDays of notice
Jun 15, 2026Jun 30, 202615
Jun 15, 2026Aug 17, 202663

What the Veo docs flag

The Veo page on the Gemini API marks veo-3.0-generate-001 and its fast variant as deprecated. Newer ids in the same docs carry a preview suffix, which tells you they are not frozen either. Treat every id with preview in it as something that will be replaced.

A five-step drill

Run it before the next notice arrives, not after.

  • Inventory: search code, config, prompts and saved agent instructions for model id strings.
  • Map: for each id, pick a replacement that matches duration, resolution and reference needs from the live catalog.
  • Smoke test: send one request per replacement with a short duration and check the output file.
  • Switch: move the id into one config value and deploy the change behind a flag.
  • Record: log the model id per job so later audits can tell which outputs came from which model.

Step one in code

A short scan finds hard-coded ids. Extend the pattern with whichever ids your own vendors have flagged.

import pathlib
import re

PATTERN = re.compile(r"veo-3\.0-[a-z0-9-]+")
EXTENSIONS = {".py", ".ts", ".js", ".json", ".yaml", ".yml", ".md"}

for path in pathlib.Path(".").rglob("*"):
    if path.suffix not in EXTENSIONS or not path.is_file():
        continue
    try:
        text = path.read_text(errors="ignore")
    except OSError:
        continue
    for number, line in enumerate(text.splitlines(), 1):
        match = PATTERN.search(line)
        if match:
            print(f"{path}:{number}: {match.group(0)}")

Why the short window is the real constraint

Sixty-three days is enough for most teams to test and switch. Fifteen days is not enough for a team that first has to find where the ids live. The two cutoffs came from the same announcement, so a team that treated it as one deadline on August 17 would have broken on June 30.

The drill above is cheap to rehearse. A scan takes minutes, a smoke test takes one short clip per candidate, and the config switch is a single value. The expensive part is discovery in prompts, saved agent instructions and documentation snippets that nobody remembers writing, which is why step one comes first and why the scan above covers markdown files too.

Picking the replacement on Sume

Sume uses bare catalog ids and no provider prefix. GET /v1/videos/models returns each model's supported_durations, supported_resolutions, supported_aspect_ratios and pricing_skus, which is the information step two needs. Send Idempotency-Key on submits so a retried smoke test returns the original job instead of creating a second one. The Video generation docs list the request fields.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume