Find Veo 3.1 preview ids in your repo before Oct 22: a scanner

Google's Veo 3.1 preview ids shut down Oct 22, 2026. A short Python scanner lists every file and line using them, and a Sume id to switch to.

4 min readSume
All posts

Short answer

Search your code for three strings: veo-3.1-generate-preview, veo-3.1-fast-generate-preview and veo-3.1-lite-generate-preview. Google's deprecations page (read 2026-10-04) lists a shutdown date of Oct 22, 2026 for these ids and recommends gemini-omni-1.1-flash. That is 18 days from today. The script below finds every use and prints file, line and text. On Sume, the equivalent catalog id is gemini-omni-flash-1.1; Sume does not list Veo.

The scanner

It walks a directory tree, skips .git, node_modules and .venv, and matches the three ids with one regular expression. Run it from the repo root; it reads text files only and writes nothing.

import asyncio, pathlib, re

PATTERN = re.compile(r"veo-3\.1(?:-fast|-lite)?-generate-preview")
SKIP = {".git", "node_modules", ".venv"}

def scan(root):
    hits = []
    for path in pathlib.Path(root).rglob("*"):
        if SKIP & set(path.parts) or not path.is_file():
            continue
        try:
            text = path.read_text(errors="ignore")
        except OSError:
            continue
        for n, line in enumerate(text.splitlines(), 1):
            if PATTERN.search(line):
                hits.append(f"{path}:{n}: {line.strip()[:80]}")
    return hits

async def main():
    for hit in await asyncio.to_thread(scan, "."):
        print(hit)

asyncio.run(main())

What to look for besides code

The ids also hide in config files, environment variable defaults, notebooks, CI secrets and prompt templates that tell an agent which model to call. The scanner covers text files in the tree; check your deployment settings and any workflow tools separately, since those do not live in the repo.

Facts that decide the migration

Veo 3.1 preview ids and the move (Google pages read 2026-10-04)
ItemVeo 3.1 previewsGemini Omni Flash 1.1
ShutdownOct 22, 2026Current model
Clip length8 s at 720p, 1080p, 4K3 to 10 s on Sume
ExtensionUp to 7 s, up to 20 times, 720p onlyNot in a one-shot Sume request
Sume idNot listedgemini-omni-flash-1.1
Sume rate at 720pn/a$0.125 per second

Switch with one string, then test

Replace the id, keep duration: 8 if you want the same length, and run your prompt set. Omni prices differ from Veo, so rerun your cost estimate too: Sume bills Omni at provider list times 1.25, which is $0.125 a second at 720p, $0.1875 at 1080p and $0.375 at 4K. If your code leaned on Veo extension to build clips past 8 seconds, plan chained requests with frame_images instead.

Do the switch behind a config flag so you can compare outputs side by side for a few days before Oct 22 rather than discovering differences on the day.

A migration checklist

Run the scanner, list the hits, and sort them into live calls, config defaults and documentation. Replace live calls first. Run your prompt set on the new id, compare cost with the table above, and ship behind a flag. Then update docs and tests. Finally, set a calendar item for Oct 21 to confirm no hit remains, because a forgotten default in a cron job is the usual way an old id survives.

Caveats

  • A match in a comment or a test fixture is not a live call; read before deleting.
  • The scanner does not cover dynamic ids built from parts of a string.
  • Google may change the date; re-read the deprecations page before you freeze.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume