◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/API / SDK
◈ API / SDK/2026-07-07上級

Omni Flash で短尺動画から SNS 告知メタデータを1パス抽出する

公開プレビューの Gemini Omni Flash に短尺動画を1回渡すだけで、告知文・チャプター・見せ場タイムスタンプを構造化 JSON で受け取る実装をまとめます。フレーム抽出を挟む多コール構成との違い、fps と media_resolution の効かせどころ、1本あたりのコスト試算まで、個人開発の告知作業を回す視点で扱います。

gemini119omni-flashmultimodal24video6structured-output26

✦ プレミアム記事

新しい短尺動画を作るたびに、いちばん手が止まるのは動画本体ではなく「告知文をどう書くか」でした。30秒のクリップを何度も見返して、見せ場の秒数をメモして、キャプションとハッシュタグを起こす。この一連の作業が、私自身の個人開発では毎回ボトルネックになっていました。App Store と Google Play の両方でアプリを配信していると、告知動画を出す機会も増え、そのたびに同じ手起こしを繰り返していたのです。

Omni Flash が公開プレビューに入って、この手起こしを1回のAPI呼び出しに畳めるようになりました。動画をフレームに割ってから個別に投げるのではなく、動画そのものをネイティブに受け取り、告知に必要な要素を構造化 JSON で返してもらう。今日はその最小構成を、実際に動くコードとコスト試算とともに置いていきます。

フレーム抽出を挟まない、という選択

これまでの動画理解は、ffmpeg で数秒おきにフレームを切り出し、静止画として個別に投げるのが定番でした。安定はしますが、抜き出した瞬間の間に起きた動きは落ちますし、呼び出し回数がそのままコストと待ち時間になります。

Omni Flash はネイティブに動画を1本受け取り、時間軸を保ったまま解釈します。フレーム抽出をどこで手放すべきか、その境界そのものはOmni Flash で動画理解を1パスに畳む設計で実測ベースに整理しました。本記事はその先、「1パスで受け取った理解を、告知に使える構造化データとして取り出す」ところに焦点を当てます。

告知メタデータの抽出は、実は動画理解のなかでも Omni Flash の相性が良い部類です。理由は、欲しい出力が最初から決まっているからです。キャプション、ハッシュタグ、チャプター、見せ場のタイムスタンプ。出力の形を先に固定できるなら、モデルに自由記述をさせず、スキーマに流し込むのが最も安定します。

欲しい出力の形を先に決める

まずは受け取りたい JSON の形を Pydantic で宣言します。ここを曖昧にすると、モデルは毎回違う構造で返してきて、後段のパースが崩れます。

from pydantic import BaseModel
 
class Chapter(BaseModel):
    start: str   # "0:07" のような mm:ss
    title: str   # そのチャプターの短い見出し
 
class Highlight(BaseModel):
    timestamp: str  # 見せ場の秒数 "0:12"
    reason: str     # なぜここが見せ場なのか
 
class PromoMeta(BaseModel):
    hook_caption: str        # 最初の1行に置く短い引き
    long_caption: str        # 本文用のやや長いキャプション
    hashtags: list[str]      # 5〜8個を想定
    chapters: list[Chapter]  # 動画の流れ
    highlights: list[Highlight]  # サムネや切り抜きに使う候補

ポイントは、timestamp を数値ではなく mm:ss の文字列にしていることです。動画の時間表現をモデルに数値化させると、単位(秒かフレームか)が揺れます。表示に使う形のまま受け取り、必要なら後で秒に直すほうが安定します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦動画から告知文を毎回手起こししていた人が、1回のAPI呼び出しで下書きを受け取れるようになる
✦response_schema で告知文・チャプター・見せ場タイムスタンプを型付きで取り出す設計を、コピペで動くコードごと手に入れられる
✦fps と media_resolution をどこまで削ると精度が崩れるかの境界と、1本あたりのコスト試算を自分の運用に当てはめられる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ API / SDK2026-08-29
Omni Flash の 4K を API 側で受け取るか、配布直前に自分で上げるか
Gemini Omni Flash の 1080p と 4K はアップスケール出力です。解像度を引き上げる地点を配布先から逆算して決める手順と、受け取った動画の細部を自分で確かめる方法をまとめました。
◈ API / SDK2026-08-22
メディエーショングループが20を超えたとき、設定の抜けをどう見つけるか
広告メディエーションのグループが増えると、設定の抜けや型のずれが静かに溜まります。設定を1枚の表に正規化して機械でずれを確定させ、判断が必要なセルだけを Gemini に渡す分担にした手順をまとめました。
◈ API / SDK2026-05-18
Gemini Vision で壁紙アプリの自動カテゴリ分類を実装した話
個人開発の壁紙アプリで Gemini Vision API を使い、画像の自動カテゴリ分類を実装した実体験です。精度改善のプロセスと、公式ドキュメントには載っていない落とし穴、GPT-4o Vision とのコスト比較までまとめました。