Remotion × AI Pipeline Gemini 3.1 Flash BudouX SE Auto-Mix

AI動画編集
自動化技術仕様書

テロップ分割LLMプロンプト・BudouX文節改行・Gemini画像生成・SE配置の4工程を、 Remotion動画生成パイプラインに統合するための実装リファレンス。

セクション
4 工程
SE 素材
15 種類
画像タイプ
3 type
対応フォーマット
3 16:9 / 9:16 / 1:1
Section 01
1

テロップ分割 LLM プロンプト

動画の文字起こしテキストをYouTube向けテロップ単位に分割するためのLLMプロンプト仕様。 意味のまとまりと表示文字数の両方を満たすルールセット。

2-2. LLMへのプロンプト

あなたはYouTube動画のテロップ分割の専門家です。以下のテキストをテロップ表示用に分割してください。

絶対ルール

  1. 1テロップ最大 <MAX_CHARS> 文字(フォーマット: <format>
  2. 意味のまとまりで分割する
  3. 以下の位置で切る(優先度順):
    • a 文末(。 ! ?
    • b 接続助詞の後(〜して、〜ので、〜から、〜けど、〜ことで)
    • c 読点()の後
    • d 「〜を」「〜に」「〜で」「〜が」「〜は」の後
  4. 以下の位置では絶対に切らない:
    助詞の直前
    「時間 | を」→ NG
    「時間を | 」→ OK
    用言の途中
    「自動 | 化する」→ NG
    固有名詞の途中
    「Claude | Code」→ NG
    数字と助数詞の間
    「3 | つ」→ NG
  5. 句読点(。 、)はテロップでは省略する

入出力フォーマット

Input
## 入力テキスト
<セグメントテキスト>

## 入力words(タイムスタンプ参照用)
<words JSON配列>
Output
[
  {
    "text": "AIを使って動画編集を自動化することで",
    "wordIndices": [0,1,2,3,4,5,6,7,8,9]
  },
  {
    "text": "作業時間を大幅に削減できます",
    "wordIndices": [10,11,12,13,14,15,16]
  }
]
Section 02 · ★核心
2

BudouX 改行処理

BudouX(Google開発の文節分割ライブラリ)でテロップ内の自然な改行位置を決定する。 形態素解析より粒度が「文節」のため、テロップ用途に最適。

3-0. BudouXとは

従来の形態素解析(MeCab等)
「動画」「編集」「を」
← 細かすぎる
BudouX(文節分割)
「動画編集を」
← テロップ改行に最適
  • Google開発、Apache 2.0 ライセンス
  • 約 15-20KB、超軽量
  • npm: budoux(template/package.jsonに追加済み)
  • Chrome 119 / Android 14 にネイティブ搭載

3-1. 改行判定ルール

テロップテキストの文字数が 2行化の閾値 を超えたら改行する。

format 閾値 挙動
youtube 15文字超 2行化
short 10文字超 2行化
square 12文字超 2行化

テロップ・タイトルを分析して画像が効果的な箇所を抽出し、Gemini 3.1 Flash Image Preview で生成する。 詳細スキル仕様 → gemini-image-skill.pages.dev

Phase 1

コンテンツ分析

1-1. データ読み込み

  • telopData.ts — 全テロップのテキスト・スタイル・タイミング
  • titleData.ts — セグメント(チャプター)構成
  • project-config.json — format, tone, notes

1-2. 画像候補の自動抽出

テロップとタイトルを分析し、画像が効果的な箇所を自動判定:

判定基準画像タイプ
数字・データが含まれるinfographic「3つのポイント」「売上が50%増」
手順・ステップの説明infographic「まず〜、次に〜、最後に〜」
比較・対比infographic「AとBの違い」「ビフォーアフター」
抽象的な概念photo「未来のビジョン」「成功のイメージ」
ツール・サービス紹介infographic「ChatGPTとは」「Remotionの特徴」
ネガティブな問題提起overlay「こんな悩みありませんか?」
タイトル切り替わりなしタイトル自体が表示

1-3. 候補リスト生成

[
  {
    "insertAt": { "startFrame": 150, "endFrame": 450 },
    "reason": "「3つのポイント」を説明している箇所",
    "suggestedType": "infographic",
    "promptDraft": "3つのポイントを示す図解。1.○○ 2.○○ 3.○○",
    "priority": "high"
  }
]
Phase 2

画像計画(ヒアリング)

候補リストをユーザーに提示し、確認:

テロップ内容を分析しました。以下の箇所に画像を挿入する計画です:

1. [0:05-0:15] 📊 インフォグラフィック(高優先)
   → 「3つのポイント」の図解
   → プロンプト案: "3つのポイントを示すモダンな図解..."

2. [0:30-0:45] 🖼️ イメージ画像(中優先)
   → 「AIの未来」のビジュアル
   → プロンプト案: "未来的なAIテクノロジーのイメージ..."

3. [1:20-1:35] 📊 インフォグラフィック(高優先)
   → 「ステップ1→2→3」のフロー図
   → プロンプト案: "3ステップのフローチャート..."

修正・追加・削除があれば教えてください。OKならこのまま生成します。
ユーザーが調整できるポイント
画像の追加/削除 プロンプトの修正 タイプの変更(infographic ↔ photo ↔ overlay) 表示タイミングの変更
Phase 3

Gemini API で画像生成

モデル指定: gemini-3.1-flash-image-preview を使用してください

3-1. フォーマット別アスペクト比

project-config.jsonformat に連動:

formatGemini API -a用途
youtube16:9横長(デフォルト)
short9:16縦長
square1:1正方形

3-2. タイプ別プロンプトテンプレート

infographic図解・データ
Create a clean, modern infographic with the following content:
[内容]
Style: minimalist, dark background (#1a1a2e), bright accent colors,
no text (text will be overlaid separately),
aspect ratio: [format], high contrast for video overlay
photoイメージ画像
Photorealistic image of [内容].
Style: cinematic lighting, shallow depth of field,
professional stock photo quality,
aspect ratio: [format]
overlay問題提起・暗い背景
Dark, moody background image representing [内容].
Style: abstract, dark tones with subtle color accents,
suitable as a video overlay with text on top,
aspect ratio: [format]

3-3. 生成実行

cd ~/.claude/skills/gemini-api-image && \
python scripts/run.py api_generator.py \
  --prompt "<プロンプト>" \
  -a <アスペクト比> \
  -m pro \
  -o "<PROJECT>/public/images/generated/<filename>.png"
Section 04
4

SE 配置ロジック

テロップのスタイル・タイミング・プロジェクトトーンに合わせて効果音を自動配置。 連続回避ルールでバリエーション管理。

Phase 1

データ読み込み

  1. 1-1. テロップデータsrc/テロップテンプレート/telopData.ts から全セグメントを取得
  2. 1-2. タイトルデータsrc/Title/titleData.ts からセグメント境界を取得
  3. 1-3. プロジェクト設定project-config.jsontone を取得(SE密度の調整)
Phase 2

SE素材準備

2-1. 素材チェック

public/se/ の中身を確認。空の場合は共通素材をコピー:

cp /Users/tonodukaren/movie/YT/03_AI×動画編集革命_YT/public/se/* "<PROJECT>/public/se/"

2-2. SE素材カタログ

ファイル名略称用途
パッ (1).mp3POP汎用アクセント
決定ボタンを押す2.mp3BTN-2決定・強調
決定ボタンを押す3.mp3BTN-3決定バリエーション
決定ボタンを押す4.mp3BTN-4決定バリエーション
決定ボタンを押す12.mp3BTN-12決定バリエーション
ニュッ1.mp3WSH-1スライド・登場
ニュッ2.mp3WSH-2スライドバリエーション
ニュッ3.mp3WSH-3スライドバリエーション
カーソル移動2.mp3CUR-2軽いクリック
カーソル移動7.mp3CUR-7クリックバリエーション
カーソル移動8.mp3CUR-8クリックバリエーション
間抜け3.mp3COMICコミカル・ツッコミ
水滴3.mp3DROP感動・しみじみ
涙のしずく.mp3TEAR悲しみ・共感
クイズ不正解1.mp3BUZZ失敗・ブザー
Phase 3

SE配置ロジック

3-1. 配置密度(トーン別)

トーンSE密度(テロップ比)特徴
プロフェッショナル30-40%控えめ、POP中心
エンタメ50-70%積極的、バリエーション豊富
カジュアル40-50%程よい、自然な配置
教育的25-35%最小限、邪魔しない

3-2. スタイル別SE選択マトリクス

styleSE候補(ランダム選択)volume
normalPOP WSH-1 WSH-2 WSH-30.30
emphasisBTN-2 BTN-3 BTN-4 BTN-120.35
warningBUZZ COMIC0.25
successBTN-2 BTN-30.35
(感動文脈)DROP TEAR0.25

3-3. 配置ルール(優先度順)

必ずSEを置く(優先度: 高)
  1. emphasis テロップの startFrame → BTN系
  2. warning テロップの startFrame → BUZZ or COMIC
  3. success テロップの startFrame → BTN系
  4. タイトル切り替わりフレーム → CUR系
  5. 画像出現フレーム(insertImageData.tsstartFrame)→ WSH系(スライド音)
間引きルールで配置(優先度: 中)
  1. normal テロップ → 2〜3個に1個の頻度で POP or WSH系
配置しない(優先度: 低)
  1. 直前のSEから 10フレーム以内 の場合 → スキップ
  2. 動画の最後5秒 → 余韻のため控える

3-4. バリエーション管理

連続回避ルール
  • 同一SEファイルが 3回連続 しない
  • BTN系は 2, 3, 4, 12 をローテーション
  • WSH系は 1, 2, 3 をローテーション
  • CUR系は 2, 7, 8 をローテーション
実装: ラウンドロビン方式
BTN_ROTATION = [BTN-2, BTN-3, BTN-4, BTN-12]  // index循環
WSH_ROTATION = [WSH-1, WSH-2, WSH-3]
CUR_ROTATION = [CUR-2, CUR-7, CUR-8]