Gemini Omni Flash API
Google (Gemini)OfficialPublished by Google (Gemini)
- Skill
- Tool integration
- Data and AI
- Apache-2.0
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a set of Python scripts to interface with the Gemini Omni 1.2 Flash model via the google-genai SDK. It enables users to generate videos from text, images, or reference videos, as well as perform video editing, frame-to-frame transitions, and video extensions. The toolset includes utilities for pre-processing media with ffmpeg, inspecting video metadata, and managing file uploads to the Gemini Files API.
What it does
- Generates videos from text prompts, single images, or two-frame keyframe transitions.
- Extends existing video clips by 3 to 10 seconds per turn, up to a 30-second total.
- Performs video editing tasks such as style changes or object modification.
- Supports reference-guided generation using uploaded images or videos.
- Provides utilities to trim, scale, and format source videos for model compatibility.
- Enables parallel batch processing of generation and editing jobs.
When to use it
- When you need to generate new video content from text or image inputs.
- When you need to extend or edit existing video clips within specified duration limits.
- When you need to prepare or inspect video files before using them with the Gemini API.
- When you require programmatic control over video generation parameters like resolution and aspect ratio.
Advantages
- Supports multiple generation modes including text-to-video and image-to-video.
- Includes built-in pre-processing tools for video normalization and audio stripping.
- Allows for turn-by-turn editing and extension of previous interactions.
- Provides flexible configuration for resolution, duration, and batch execution.
Usage examples
- “Generate a 10-second video of a cat drinking tea.”
- The tool uses generate_video.py to create the video and saves it to the specified local path.
- “Extend this video by 5 seconds and add a character from this reference image.”
- The tool uses the --extend and --image flags to generate a continuation of the source video incorporating the reference.
- “Transform the style of this video to anime and strip the original audio.”
- The tool processes the video with --strip-audio to allow for full audio regeneration in the new style.
- “Prepare a 15-second video for use as a 3-second reference clip.”
- The tool uses prep_video.py to trim the source video to the required 3-second duration.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/google-gemini/gemini-omni-flash-api/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip gemini-omni-flash-api.zip -d .agents/skills
Documentation by Google (Gemini)
Gemini Omni Flash Skill
This skill uses the Gemini Omni 1.2 Flash model (gemini-omni-1.2-flash) to perform text-to-video generation, image-to-video generation (first-frame and two-frame keyframe transitions), reference-to-video (R2V) generation, video extensions (3s–10s per turn, up to 30s total), and video editing.
[!WARNING] Important Regional Restrictions: Uploading videos to use for video edits, extensions, or references is NOT available in the EEA, Switzerland, the United Kingdom, and some US states. If a video-to-video edit completes quickly with empty outputs (
total_output_tokens: 0or no video content), it is likely due to this restriction.
Core capabilities
Text to video: Generating videos (
3s–15s, default10s) from a text prompt.First frame to video: Generating videos (
3s–15s, default10s) from a starting image (--first-frame).First and last frame transition: Generating videos (
3s–10s) interpolating between a starting image and a final image (--first-frameand--last-frame; note:--last-framemust be used with--first-frame).Video extensions: Extending existing videos by
3to10seconds per turn (10sdefault), up to a cumulative length of30seconds (--extendor--previous-interaction-id).Video editing and refinement: Editing existing videos (uploaded source video up to
10seconds), applying stylistic changes, or performing object addition/removal while keeping everything else consistent.Reference-to-video (R2V) & image-guided editing/extension: Guiding new video generation (
3s–15s) with reference images (--image, up to 6, including15sclips) or reference videos (--video-reference, up to 3 for3s–10sclips and max 1 for11s–15sclips). Reference images (--image) also work during video editing and prompt-based video extension, whereas only reference videos (--video-reference) are restricted to new video generation.
Workflow
Analyze request: Determine the target workflow (text-to-video, first-frame-to-video, two-frame keyframe transition, video extension, video editing, or reference-to-video generation) and inspect any input media assets.
Run SDK scripts:
Directly run the appropriate utility (
scripts/video/generate_video.pyorscripts/upload_file.py).Configure settings like
--aspect-ratio(16:9default,9:16),--resolution(360p,720pdefault,1080p,4k), and--duration(integer from3to15seconds, default10;3to10seconds when combining--first-frameand--last-frameor extending). Note:4krequests take longer to generate.
Retrieve and process output: Outputs are saved to the local filesystem (e.g.
media/). Report back the completed media path to the user.
Reference Documentation
Video Generation & Editing (Omni Flash): Full parameter reference, duration limits, and prompting patterns at aistudio.google.com/docs/omni.md.
Interactions API: All operations and state management for
gemini-omni-1.2-flashuse the Interactions API.Files API: Input media files (reference images and videos) are uploaded via the Files API and polled until
ACTIVEbefore passing their URI and MIME type ininteractions.create.Gemini API Skill Reference: Platform-wide guidelines, current model specifications, and SDK usage rules for the Gemini API.
Dependencies and Prerequisites
Python SDK (
google-genai): Requiresgoogle-genai >= 2.30.1(Python) to support the currentinteractionssteps schema, output helpers (interaction.output_video), and full video output resolution configuration (360p,720p,1080p,4k). Install or upgrade using:pip install -U google-genaiPython Runtime: Requires Python >= 3.10 (for compatibility with modern
google-genaiSDK types and methods).ffmpeg & ffprobe:
prep_video.py,inspect_video.py, andgenerate_video.py(when stripping audio via--strip-audio) requireffmpegandffprobebinaries installed and available in your systemPATH.API Key: Set the
GEMINI_API_KEYenvironment variable:export GEMINI_API_KEY="your-api-key"
Available scripts
Use the following Python scripts to upload media with the Files API, prepare input videos with ffmpeg, and generate video outputs using the Interactions API.
upload_file.py: Uploads local media (images and videos) to the Files API and polls until
ACTIVE. If uploading a video larger than 25MB, it prints an informative warning/tip highlighting that Gemini Omni Flash is optimized for editing 10s source videos at 720p/24fps, and recommends pre-processing withprep_video.pyfirst to speed up the upload../scripts/upload_file.py path/to/image.pnggenerate_video.py: Performs end-to-end video generation and downloads the output video. It detects and uploads local media references (images or videos) before calling the Interactions API.
Text to video (3s–15s, default 10s):
./scripts/video/generate_video.py "A close-up of a cat drinking tea" --duration 12 --output media/cat_tea.mp4Output resolution options (
--resolution):Gemini Omni 1.2 Flash natively supports four output resolutions across both landscape (
16:9) and portrait (9:16) aspect ratios:360p:640x360(16:9) or360x640(9:16)720p:1280x720(16:9) or720x1280(9:16) — (default)1080p:1920x1080(16:9) or1080x1920(9:16)4k:3840x2160(16:9) or2160x3840(9:16)
# High-definition (1080p) ./scripts/video/generate_video.py "A cinematic drone shot over misty mountains at sunrise" --resolution 1080p --output media/mountains_1080p.mp4 # Ultra-high-definition 4K (Note: 4K requests take longer to generate; pass --timeout if needed) ./scripts/video/generate_video.py "A macro shot of a dewdrop on a flower petal in golden sunlight" --resolution 4k --timeout 900 --output media/flower_4k.mp4Configurable request timeouts (
--timeout):Default HTTP timeout is
600seconds (10 minutes). For computationally intensive requests — such as generating 15s 4K clips or extending a clip up to the maximum 30s total length — generation can take several minutes. Use--timeout 900(or1200) to provide an extended execution budget.First frame to video (
3s–15s):./scripts/video/generate_video.py "The waves crash against the shore." --first-frame start.png --duration 12 --output media/waves.mp4First and last frame transition (
3s–10smax):Provide a starting frame and an ending frame to generate a smooth transition between them (
--last-framemust be used together with--first-frame, and two-frame keyframe interpolation is capped at10seconds):./scripts/video/generate_video.py "A smooth timelapse from sunrise to sunset" --first-frame start.png --last-frame end.png --duration 10 --output media/interpolation.mp4Looping video (identical start and end frame,
3s–10s):./scripts/video/generate_video.py "A crystal orb spinning continuously in place" --first-frame orb.png --last-frame orb.png --output media/loop.mp4Image-referenced video generation (R2V):
Describe how the uploaded reference image(s) should guide the generation in natural language:
./scripts/video/generate_video.py "A cybernetic warrior walking through a rain-soaked street in the painterly style of the reference image" --image reference.png --output media/warrior.mp4Video-referenced video generation:
Provide reference video(s) (
--video-reference/-vr) when generating a new video to guide character appearance, object details, or camera/motion style (ideal reference clip duration is ~3s; up to 3 reference videos for3s–10sclips, and at most 1 reference video for11s–15sclips; unlike--image,--video-referencecannot be used for video editing or extension):./scripts/video/generate_video.py "A cellist performing on stage with the expressive camera movement and lighting style of the reference video" --video-reference ref_camera.mp4 --output media/cello.mp4Video extension (
3s–10sper turn, up to30stotal):./scripts/video/generate_video.py "The scene continues as the sun sets below the horizon" --extend media/sunset.mp4 --duration 10 --output media/sunset_extended.mp4Video extension with reference images:
Prompt-based extension (omitting
--task) supports passing reference images (--image, up to 6 images) to introduce new characters, objects, or styles into the extended scene (only reference videos--video-referenceare restricted to new video generation):./scripts/video/generate_video.py "Extend this video: the character shown in the reference image walks into the frame and waves." --extend media/sunset.mp4 --image character.png --output media/sunset_extended_with_ref.mp4Video editing (keep original audio, optionally with reference images):
./scripts/video/generate_video.py "Transform the style to Japanese anime. Keep everything else the same." --video input.mp4 --output media/anime_style.mp4 # Guide an edit with a reference image (--image works for editing too; only --video-reference is restricted): ./scripts/video/generate_video.py "Replace the coat with the red coat from the reference image. Keep everything else the same." --video input.mp4 --image red_coat.png --output media/coat_swap.mp4Video editing (regenerate all audio from scratch):
./scripts/video/generate_video.py "Transform the style to Japanese anime" --video input.mp4 --strip-audio --output media/anime_style_new_audio.mp4Turn-by-turn video editing (edit previous interaction):
Edit a prior video generation without re-uploading assets by passing the interaction ID:
./scripts/video/generate_video.py "Change the setting to a snowy winter wonderland. Keep everything else the same." --previous-interaction-id "v1_..." --output media/winter_wonderland.mp4Turn-by-turn video extension (extend previous interaction):
Extend a prior video generation by
3s–10sby passing the previous interaction ID:./scripts/video/generate_video.py "Extend this video. The character turns around and begins to run." --previous-interaction-id "v1_..." --duration 10 --output media/extended_turn.mp4Parallel batch execution (prompts file): Run multiple prompts from a line-by-line text file concurrently:
./scripts/video/generate_video.py --prompts-file prompts.txt --concurrency 3Parallel batch execution (JSON config): Execute fully configured, distinct generation and editing jobs in parallel:
./scripts/video/generate_video.py --batch jobs.json --concurrency 3Example
jobs.json:[ { "prompt": "A smooth timelapse from sunrise to sunset.", "first_frame": "start.png", "last_frame": "end.png", "duration": 10, "resolution": "1080p", "output": "media/interpolation.mp4" }, { "prompt": "Extend this video: the character shown in the reference image enters the scene.", "extend": "media/sunset.mp4", "image": "character.png", "duration": 15, "output": "media/extended_with_image_ref.mp4" }, { "prompt": "A macro shot of a crystal orb refracting cosmic nebula colors.", "duration": 15, "resolution": "4k", "output": "media/nebula_orb_4k.mp4" }, { "prompt": "A musician playing cello with the camera motion of the reference video.", "video_reference": "cello_ref.mp4", "output": "media/cello.mp4" }, { "prompt": "Transform the style to Japanese anime. Keep everything else the same.", "video": "input.mp4", "output": "media/anime_style.mp4", "strip_audio": false, "aspect_ratio": "16:9" } ]
inspect_video.py: Inspects a local video file (using
ffprobe) to check its duration, resolution, frame rate (FPS), audio stream presence, and format details../scripts/video/inspect_video.py media/output.mp4To get a pre-parsed, structured JSON summary:
./scripts/video/inspect_video.py media/output.mp4 --jsonTo get the complete, unmodified
ffproberaw JSON dump:./scripts/video/inspect_video.py media/output.mp4 --raw
prep_video.py: Normalizes, trims, and formats any video file to fit standard Gemini Omni Flash editing and uploaded-extension input limits (up to
10ssource length). It handles timecode-based trimming, optional frame rate conversion, and proportional scaling of large videos (max 1280x720 for landscape, 720x1280 for portrait) to optimize upload times without stretching. If the video is longer than 10 seconds and the script is run interactively (in a TTY), it prompts the user to select the first 10s, last 10s, or enter a custom timecode (defaulting to the first 10s).Trim first 10s (default):
./scripts/video/prep_video.py path/to/source.mp4or explicitly specify the start and duration:
./scripts/video/prep_video.py path/to/source.mp4 --start 0 --duration 10Trim a 3s reference clip for R2V (
--video-reference):./scripts/video/prep_video.py path/to/source.mp4 --start 0 --duration 3 --output media/ref_3s.mp4Trim last 10s (automatically calculates starting point based on source length):
./scripts/video/prep_video.py path/to/source.mp4 --start lastTrim 10s starting at specific timecode (MM:SS or HH:MM:SS):
./scripts/video/prep_video.py path/to/source.mp4 --start 00:03 --output media/custom.mp4Custom frame rate and resolution:
./scripts/video/prep_video.py path/to/source.mp4 --fps 30 --resolution 1920x1080Strip audio for audio regeneration:
./scripts/video/prep_video.py path/to/source.mp4 --strip-audio --output media/video_with_no_audio.mp4
Audio handling in video editing
When editing a source video that contains audio, you must choose between keeping the original audio or regenerating all audio from scratch.
Keep original audio: By default, Gemini Omni Flash preserves the existing audio layer (though it may modify or adapt it slightly during generation). Use this when the original background music, dialogue, or sound effects are desired.
Regenerate all audio from scratch: If you want Gemini Omni Flash to re-create a brand-new audio layer tailored to the new visual style or prompt, you must upload the video with its audio stream stripped out. If any audio stream is present, Gemini Omni Flash will attempt to preserve/modify it instead of starting from scratch.
Use
--strip-audio(or-a) when pre-processing withscripts/video/prep_video.pyor executingscripts/video/generate_video.py.This forces Gemini Omni Flash to perform full audio generation.
Prompting Gemini Omni 1.2 Flash
Single scene
By default Gemini Omni Flash will try to create a video with a few different shots. It'll attempt to craft an interesting narrative based on the prompt.
If you need the output video to contain a single scene, prompt explicitly for it:
In a single unbroken scene
In a single continuous shot
No scene cuts
For example:
Continuous, unbroken handheld shot of a fluffy tabby cat sitting on a sunny windowsill, looking out into a leafy garden. The cat's tail twitches slowly, and its ears rotate slightly toward ambient noises. Sunbeams illuminate dust motes in the air. Sound design: Gentle breeze, distant bird chirps. No dialogue.Removing unwanted elements
If the generated video contains things you don't want, include simple negative prompts to avoid them:
No dialogue
No embellishments
No extra sound effects
Prompts for editing
Simple prompts work best for video editing. Overly descriptive prompts can lead to unintended changes.
Examples of effective editing prompts:
Make this video anime
Put a fashionable hat on this person
Change the lighting to be more dramatic
Change the text on the sign to say "Omni Flash"
When editing a specific aspect of the video, include "Keep everything else the same" to maintain visual consistency:
Avoid:
In the video of the man sitting on the sofa, please add a small black cat that runs from the right side of the screen, jumps onto his lap, and then he starts to stroke its head while looking down.Simplify:
Add a cat that jumps onto his lap, he begins to pet it. Keep everything else the same.
Avoid:
Please remove the cell phone that the person is holding in their hand and fill in the background so it looks like they are just holding their hand empty.Simplify:
Make the phone invisible. Keep everything else the same.
Prompting the audio
By default the model generates an appropriate audio track for a video. Use your prompt to specify the exact soundscape or music style:
Include calm background music
The video has a high energy techno beat
The audio is a low tinny radio broadcast in the background, playing a song
Timing events
You can prompt for events at specific timestamps using natural language or bracketed timecodes:
After 3 seconds, a woman enters the scene.
At 5s the chorus starts in the background audio.
Every 2s cut to a new frame.
In a rapid fire sequence, every half a second (12 frames at 24fps) change the scene to a new location.
Timecode syntax example (up to 15s):
[0-5s] A runner stretches at the starting line in early morning mist
[5-10s] They sprint forward along the wet coastal road
[10-15s] Wide aerial shot as the sun breaks over the cliffsMeta prompting
You can ask Gemini Omni Flash to pay attention to general qualities or principles of video generation:
Consider micro-detail, expression and timing to create a rich, detailed, natural scene.
Be specific in your descriptions of characters and environments, applying costume and production design details.
Include realistic background activity so the environment feels lived-in.
Make a rapid-fire video that shows a different rare
[thing]every 1s with upbeat music and on-screen labels.
Text in videos
You can prompt to include readable on-screen or diegetic text:
One word on the screen at a time: "did, you, know, that, Omni, can, do, awesome, text?" Each word appears for 1s with a different animated style. No dialogue.
There is a street sign that says: "This is an AI generation by Omni", there is a storefront that says: "All you need AI", there's a car with the number plate: "OMNI1.2"
Prompts for extending a video
With Gemini Omni 1.2 Flash you can extend videos with prompts like "Extend this video" or "The scene continues" by 3s to 10s per turn (10s default), up to a cumulative length of 30s.
Omni creates a continuation that keeps visuals, motion, characters, and audio coherent by using up to the last 10s of your original video as context. Some final frames of the source clip may be blended to make the transition seamless.
[!TIP] Extending with Reference Images (Omit
task): Leavegeneration_config.video_config.taskunset when extending via prompt ("Extend this video..."). Omittingtasklets you pass reference images (--image) alongside the source video to introduce new characters, objects, or styles into the extended clip. Settingtask="extend"enforces a strict single-video gateway constraint and blocks reference images.
When extending, apply these guidelines:
Describe how the audio evolves in the extended segment, e.g.,
"The music swells into the chorus".Specify whether the shot continues unbroken or cuts to a new angle with the same characters, e.g.,
"Cut to a wide shot showing the same two characters entering the station".Include reference images (
--image) when introducing new characters or props into the continuation, e.g.,"Extend this video: the person in the reference image enters through the doorway".Timestamps in extension prompts are relative to the start of the extended segment (
0s= start of the extension).
Video extension & reference constraints
Uploaded source video limit: Uploaded input videos for editing or extension must be
10seconds or shorter (multi-turn extensions viaprevious_interaction_idcan extend clips by3s–10sper turn up to30stotal).Two-frame keyframe cap: First-and-last-frame interpolation (
--first-frame+--last-frame) supports3sto10s(11s–15srequires single-frame, text-to-video, or R2V).Reference images (
--image) work across generation, editing, and extension: You can pass up to 6 reference images (including on15sclips) for standard reference-to-video (R2V) generation, video editing (--videoor--previous-interaction-id), and prompt-based video extension (--extendor--previous-interaction-id, when--taskis omitted).Only reference videos (
--video-reference) are restricted: Unlike reference images, reference videos are supported only when generating a new video — not during video editing (--videoor--previous-interaction-id) or video extension (--extendor--previous-interaction-id) — and11s–15svideo generations support at most 1 reference video (up to 3 reference videos for3s–10sclips; ideal reference clip length is ~3s, trim longer clips withprep_video.py --duration 3).Spoken dialogue on uploaded videos: You cannot extend an uploaded video where someone is already speaking in order to add new spoken dialogue (multi-turn voice extension via
previous_interaction_idis supported).taskparameter is fallback-only: Rely on natural-language prompting by default and pass--task(generation_config.video_config.task) only as a fallback when natural-language prompting alone fails to select the intended mode.
Binding uploaded images and videos with natural language
Gemini Omni 1.2 Flash binds uploaded images and videos to their roles using natural language based on their order in input — do not use deprecated <FIRST_FRAME>, <LAST_FRAME>, <IMAGE_REF_N>, <VIDEO_REF_N>, or [# Sources ...] prompt tags.
Starting frame (
--first-frame): Upload one image followed by your motion prompt, e.g.,"Use this image as the starting frame. The camera slowly pushes in as neon signs flicker on."Starting and ending keyframes (
--first-frame+--last-frame, up to10s): Upload the start image first and the end image second, e.g.,"Use the first image as the starting frame and the second image as the final frame, smoothly transitioning from day to night."(Pass the same image twice for a seamless loop:"Use this image as both the starting frame and the final frame.")Multiple reference images (
--image): Upload up to several reference images and refer to them clearly by order or visual content, e.g.,"A studio fashion sequence: the woman from the first image holds the leather bag from the second image while walking across the set shown in the third image. Use the given images as character, prop, and environment references rather than literal starting frames."Combined image + video references in R2V (
--image+--video-reference): Upload the reference image(s) and reference video(s) and describe each asset's role directly, e.g.,"The violinist shown in the reference image performs on a dimly lit stage using the bow movement and camera framing from the reference video."
Files
- ATTRIBUTION.mdAdded by AutoGineer914 B
- LICENSELicence file added by AutoGineer11.1 KiB
- SKILL.md24.9 KiB
- scripts/upload_file.pyScript14.3 KiB
- scripts/video/generate_video.pyScript31.5 KiB
- scripts/video/inspect_video.pyScript6.2 KiB
- scripts/video/prep_video.pyScript10.5 KiB
LICENSE
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an API key, Needs Python
Security
What our scanner noticed· Low risk
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Google (Gemini)
- Publisher
- Google (Gemini) (Official)
- Source
- google-gemini/gemini-skills · skills/gemini-omni-flash-api · commit 7cfc690
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Google (Gemini).
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download gemini-omni-flash-api.zip