- This hub is for : Veo frame grabs, thumbnails, and cover JPGs you will post as stills.
- Not for : Gemini/Imagen chat stills (use Gemini) or stripping Veo MP4 containers.
Why Veo frames get Instagram AI Info
A Veo clip and a Veo frame are different uploads. Instagram can read XMP on the still you pick as a post or Reels cover even when the video is a separate file. Carousel frames are each their own ingest.
Do not use the Gemini hub for these grabs. Gemini chat stills (including Nano Banana) are a different Google export path. A player screenshot is not Veo’s frame export.
Instagram AI Info on a Veo still is often file metadata on the frame JPG - XMP, optional C2PA, EXIF naming the video stack - not a verdict on the clip. Feed, carousel, and Reels cover can be three ingest events. Strip each frame you will tap. Keep Gemini chat PNGs out of the Veo folder. Convert HEIC if the phone wrapped the grab, then strip that raster. A Studio hash filename is a weak extra signal; rename after strip.
What Veo stills often write
Flow-style frame grabs, Studio clip downloads, and the Gemini app’s video save can disagree on XMP even for the same prompt. Instagram reads the JPG you tap, not the clip title in Studio.
- XMP software fields on thumbnail/frame exports
- EXIF Software naming Veo or Google video stacks
- Optional C2PA on some still paths
- Default filenames that mention Veo
- Veo frame → Instagram scenario guide
- Gemini stills hub
Veo vs Gemini stills vs Kling covers
Google ships Gemini/Imagen chat stills and Veo video. They look similar in Downloads. A Veo pause-frame can carry video-stack tags; a Gemini chat PNG can carry Imagen credentials. Mixing them in one batch hides which hub you meant to use. Kling covers are a different video model and usually a TikTok destination - use the Kling hub for those JPGs.
Instagram may scan a Reels cover still separately from the clip. Strip the frame JPG you pick in the cover picker. SynthID can still label a checker-clean file because it lives in pixels - that is a different guide. Do not treat a player screenshot as a Veo export.
Recommended workflow
Export Veo’s thumbnail or pause-frame JPG - not a player screenshot and not a Gemini chat still. Optional checker on that file. Strip, then attach the cleaned raster as an Instagram feed still, carousel slide, or Reels cover. Identical bytes can serve more than one picker; a new crop is a new file. Keep Veo frames in their own folder so a 30-file batch does not mix Imagen PNGs. If you export both a 16:9 feed still and a 9:16 cover from the same timestamp, those are two files - strip both unless you cropped after strip and saved new bytes.
- Inspect first: AI metadata checker .
- Export the Veo frame you will post
- Optional checker on that JPG
- Strip C2PA/XMP/EXIF in the browser
- Store an upload-ready still
- Attach that master on Instagram
Batch up to 30 frames per session. Keep Gemini chat stills in the Gemini folder.
Gemini app video, Studio clips, and thumbnail exports
Veo frames may come from the Gemini app’s video flow, AI Studio, or a later thumbnail export. Those paths do not always write the same XMP. Check the JPG you will tap - not the player preview in any of those UIs.
A Studio hash name and a short “veo-frame” name can be the same prompt on different writers. Treat them as different files. This section is export-path tags. The Reels cover picker is a separate Instagram ingest, covered below.
- App vs Studio vs thumbnail export: check the attachment bytes
- Do not assume one Google video UI wrote the same XMP as another
- Do not drop Gemini chat stills into a Veo batch
Clean this file before you upload
Strip C2PA and XMP in your browser, then publish the cleaned copy.
Use tool above Check file first
What this tool removes
On Veo frame grabs this strips file tags on the still. It does not touch the Veo MP4, Gemini chat PNGs, or SynthID in pixels. Use the frame raster Veo actually exported, then attach that cleaned JPG on Instagram feed, carousel, or Reels cover. Batch up to 30 frames per session from a Veo-only folder.
- XMP generation and software metadata
- C2PA / JUMBF when present on the still
- EXIF software strings
- PNG text chunks if you saved PNG
Does not remove SynthID or MP4 atoms. See disclaimer .
Creator scenarios
Creators grab a Veo pause-frame for feed, another thumbnail for Reels cover, and sometimes a carousel of frames from one clip. Each JPG is its own Instagram ingest. Do not confuse those files with Gemini Nano Banana stills sitting in the same Downloads folder.
Stories stickers that use a Veo still are another ingest. YouTube Shorts gallery covers that reuse a Veo frame are a third picker - this hub still only prepares the raster; Shorts policy is the YouTube hub. If Studio and the Gemini app wrote different XMP for the same clip, strip the file you will actually tap.
- Veo pause-frame as an Instagram feed still
- Custom Reels cover from a Veo thumbnail
- Carousel of Veo frames - clean each JPG
- Do not confuse with Gemini Nano Banana stills
Reels cover picker vs a Veo feed still
Instagram may scan a Reels cover still separately from the clip. Strip the frame JPG you pick in the cover picker. Feed still and Reels cover can share one cleaned master when bytes match. Cropping in Canva or Instagram’s editor can mint a new file; strip that export if you saved it out.
A player screenshot is not Veo’s frame export. SynthID can still label a checker-clean file because it lives in pixels - that is a different guide. Do not treat a pause-screen capture as the master.
- Strip the cover/frame JPG, not only the Veo MP4
- Identical bytes can serve feed and Reels cover
- A new square crop is a new file
- Player screenshots are not frame masters
HEIC, share sheet, and scheduler cover slots
iPhone share sheet and Photos often wrap a Veo grab as HEIC or a second JPG. Convert to the raster Instagram will attach, then strip that copy. A cleaned Downloads frame is not a cleaned Recents HEIC. Android Downloads vs Google Photos “save to library” can recode the same thumbnail - strip the Photos copy if that is what Instagram Compose shows.
Later, Buffer, and similar tools that upload a cover image separately ingest whatever file sits in the slot. Point them at the cleaned frame JPG, not a cloud preview of the Veo MP4. If the scheduler re-exports, strip those bytes. Kling cover stills belong on the Kling hub - keep them out of this batch.
- HEIC in Recents is not automatically the cleaned Veo JPG
- Share sheet “Save Image” can mint a new container - strip that file
- Scheduler cover slot is not a player screenshot
- Strip before Later/Buffer ingest
- Kling covers belong on the Kling hub
If a label remains
Confirm Instagram ingested the cleaned frame, not a player screenshot or a Gemini chat still you mixed into the folder. If the checker is clean, remaining UI may be SynthID, a classifier, or a Reels cover that was a different crop than the feed still you stripped.
Re-check the exact JPG in the cover picker. This hub does not strip Veo MP4 atoms. A scheduler slot still pointing at a player screenshot will re-label even when your folder master is clean.
Carousel slide three can flag while slide one is clean if a Gemini chat PNG sat next to the Veo grabs. Isolate the flagged JPG in the checker before you re-strip the whole set.
FAQ
Is a Veo frame the same as a Gemini still?
No. Gemini / Imagen / Nano Banana stills have their own hub. This page is a pause-frame, thumbnail, or cover grab from Veo. Clean the raster you actually exported from the video tool.
Does Veo write C2PA on frame grabs?
Thumbnail and frame-export JPGs can carry Google XMP, EXIF software strings, and on some paths C2PA. Instagram reads that still on feed, carousel, or Reels cover - separate from the MP4.
Does this strip Veo MP4 metadata?
No. This hub is raster stills only. Export the frame you will post, then strip that JPG/PNG.
Veo in Gemini app vs AI Studio / Flow frame - same tags?
Export paths differ. A Gemini-app video save, an AI Studio clip, and a Flow-style frame grab can write different XMP. Check the JPG you will attach on Instagram, not the player preview.
Can I batch-clean Veo frames?
Yes - up to 30 JPG/PNG per session. Process every frame grab before Instagram or a scheduled week.
Screenshot the Veo player instead?
Screenshots drop tags but add chrome and softness. Export the frame raster, then strip.
Are Veo, Kling, and Sora stills the same cleanup?
Same job (video → still), different generators. Use this page for Veo frames; Kling and Sora have their own hubs.
Does this remove SynthID?
No. SynthID is pixel-domain. This tool only strips file metadata. See the SynthID guide if a label remains on a clean checker.
Label remains after a clean checker?
Re-check the Instagram attachment bytes. If tags are gone, remaining UI may be caption, classifier, or SynthID.
Reels cover crop vs feed still - strip twice?
If you re-export or crop, yes. Identical bytes can serve feed and Reels cover. A new square crop in another app is a new file - strip that crop.
Same frame for Instagram and TikTok?
Yes if bytes match. Strip once, then use that master as a feed still or a cover.
Veo 3 vs older Veo - does the hub change?
No. This page is still the frame grab, not the MP4 and not a Gemini chat still. Newer Veo versions can change thumbnail export; always check the file you hold.
Should I rename Veo frame filenames?
Yes after strip if the name still says veo or frame. Filenames are a weak extra signal; Instagram still reads XMP/C2PA on the still.
Veo then Later/Buffer for Reels covers?
Strip before the scheduler ingest. A cloud preview of the MP4 is not the cleaned cover JPG.
Veo frame vs Gemini Nano Banana in Downloads?
Different hubs. Gemini chat stills belong on the Gemini page. Do not mix them into a Veo frame batch even if both came from Google.
Does this strip Veo audio or the MP4?
No. This hub is frame rasters only. MP4 atoms, audio, and captions are out of scope.
Try now
Use our AI metadata checker .