概要
久しぶりの記事になります。ゲレの工房です。
今回は、Googleが提供する`Gemini CLI`というツールを使って、YouTubeのショート動画制作の一部を自動化した話をご紹介します。
普段、Final Fantasy XIV(FF14)に登場する難読漢字を紹介するクイズ形式のショート動画を制作しているのですが、毎回同じような構成のシナリオ作成や音声生成を手作業で行うのが少し手間だと感じていました。
そこで、Gemini CLIに一連の作業をプロンプトとして定義しておくことで、これらの定型作業を効率化できないか試してみました。
Gemini CLIとは?
Gemini CLIは、Googleが開発したコマンドラインインターフェース(CLI)ツールです。ターミナル上で対話するように、ファイルの検索や作成、コードの生成、シェルコマンドの実行などを依頼できます。
これを使うことで、普段行っている開発タスクや定型作業を自動化し、よりクリエイティブな作業に集中できるようになります。
作成したプロンプトの紹介
今回は、動画制作プロセスの中でも特に定型的だった「新規の問題作成」と「手動で修正したシナリオに合わせた音声の再生成」の2つの作業を自動化するためのプロンプトを作成しました。
1. 新規の問題作成プロンプト
こちらは、新しい難読漢字クイズの動画素材(シナリオファイルと音声ファイル)をゼロから作成してもらうためのプロンプトです。
シリーズ名、問題番号、難読文字、そしてその読み方を指定するだけで、動画の構成に沿ったSRT形式のシナリオと、VOICEVOXを利用した読み上げ音声を自動で生成してくれます。
# 目的 Final Fantasy XIV (FF14) に登場する難読漢字をテーマにしたYouTubeショート動画(30秒程度)の制作を自動化する。 # 前提条件 - 音声合成にはVOICEVOXの「四国めたん(ノーマル)」を使用する。 - VOICEVOXはDocker Desktop上でAPIが利用可能な状態で起動しているものとする。 - 起動していない場合は、以下のコマンドでバックグラウンドで起動する。 ```bash docker run --rm -d -p 50021:50021 voicevox/voicevox_engine ``` - 動画素材は `[シリーズ名]/問題[番号]/[難読文字]/` の形式で一元管理する。 # 具体的な情報(ユーザーが入力) - **シリーズ名**: `[ここにシリーズ名を入力]` - **問題番号**: `[ここに問題番号を入力]` - **難読文字**: `[ここに難読文字を入力]` - **読み方**: `[ここに読み方を入力]` # 実行ステップ 1. **出力ディレクトリの決定と作成** - 上記の「具体的な情報」を元に、出力先ディレクトリパスを変数 `OUTPUT_DIR` として定義する。 - `OUTPUT_DIR = "[シリーズ名]/問題[番号]/[難読文字]/"` - `OUTPUT_DIR` が存在しない場合は、再帰的にディレクトリを作成する。 2. **シナリオ(SRT形式)の作成** - `OUTPUT_DIR` 内に `scenario.srt` というファイル名で、以下の要件を満たすシナリオを作成する。 - **要件:** - 形式: SRT形式(通し番号、タイムスタンプ `HH:MM:SS,ms --> HH:MM:SS,ms`、セリフの3要素で構成)。 - 動画全体の長さが30秒程度になるようにタイムスタンプを調整する。 - セリフは視聴者が読みやすいように、各ブロックで3〜5秒程度の長さに区切る。 - **シナリオ構成例:** 1. オープニング「FF14難読文字クイズ!」 2. 問題提示「この文字、読めるかな?」 3. (考える時間として5秒程度の無音区間) 4. 正解発表「正解は「ぎじょう」でした!」 5. FF14内での使われ方や豆知識を簡潔に解説。「「儀仗」は、敬意を表すための武器や装備のこと。ゲーム内では、式典などで兵士が持っているね。」 6. 締め「みんなは読めたかな?また挑戦してね!」 3. **音声ファイル(WAV形式)の作成** - 作成した `scenario.srt` からテキスト部分のみを抽出・連結する。 - VOICEVOX API (http://localhost:50021) を使用して、連結したテキストを「四国めたん(ノーマル)」で読み上げた音声データを生成する。 - 生成した音声データを `speech.wav` というファイル名で `OUTPUT_DIR` 内に保存する。
2. シナリオ修正時の音声再生成プロンプト
生成されたシナリオの言い回しなどを手動で修正した場合に、その修正内容を反映した音声を再生成してもらうためのプロンプトです。
修正したファイルの場所を伝えるだけで、Gemini CLIが既存のPythonスクリプトを書き換えて実行し、音声を更新してくれます。
# 目的 手動で修正したシナリオ(`scenario.srt`)に基づき、対応する音声ファイル(`speech.wav`)を再生成する。 # 前提条件 - `[シリーズ名]/問題[番号]/[難読文字]/scenario.srt` というパスに、修正済みのシナリオファイルが既に存在している。 - 音声合成にはVOICEVOXの「四国めたん(ノーマル)」を使用する。 - VOICEVOXコンテナが起動している。起動していない場合は、以下のコマンドでバックグラウンドで起動する。 ```bash docker run --rm -d -p 50021:50021 voicevox/voicevox_engine ``` # 具体的な情報(ユーザーが入力) 修正したシナリオの情報を指定してください。 - **シリーズ名**: `[ここにシリーズ名を入力]` - **問題番号**: `[ここに問題番号を入力]` - **難読文字**: `[ここに難読文字を入力]` # 実行ステップ 1. **対象ファイルの特定** - 上記の「具体的な情報」を元に、対象のディレクトリパスを組み立てる。 - `SRT_PATH = "[シリーズ名]/問題[番号]/[難読文字]/scenario.srt"` - `WAV_PATH = "[シリーズ名]/問題[番号]/[難読文字]/speech.wav"` 2. **音声生成スクリプトの実行** - 既存の `generate_audio.py` スクリプト内の `SRT_PATH` と `OUTPUT_WAV_PATH` の値を、上記で特定したパスに書き換える。 - スクリプトを実行し、`WAV_PATH` に新しい音声ファイルを上書き保存する。 3. **完了報告** - 音声ファイルの再生成が完了したことを報告する。