ゲレの工房

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

雑記:Gemini CLIでYouTubeショート動画制作を効率化してみた

概要

久しぶりの記事になります。ゲレの工房です。

今回は、Googleが提供する`Gemini CLI`というツールを使って、YouTubeのショート動画制作の一部を自動化した話をご紹介します。
普段、Final Fantasy XIVFF14)に登場する難読漢字を紹介するクイズ形式のショート動画を制作しているのですが、毎回同じような構成のシナリオ作成や音声生成を手作業で行うのが少し手間だと感じていました。
そこで、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.  **完了報告**
    - 音声ファイルの再生成が完了したことを報告する。

作成したショート動画

こちらが、実際にGemini CLIを使って作成したショート動画です。


www.youtube.com

終わりに

Gemini CLIを活用することで、これまで手作業で行っていた動画制作の定型的な部分を大幅に効率化することができました。これにより、新しい問題の考案や、動画のクオリティ向上といった、よりクリエイティブな作業に多くの時間を割けるようになりそうです。

まだまだプロンプトの改善の余地や、やりたいことを繋げる方法。ディレクトリ構成を考えるなどやりたいことはありますが、AIアシスタントと協力しながらコンテンツ制作を進めていく面白さを実感できました。皆さんも、日々の作業の中に自動化できるものがないか探してみてはいかがでしょうか。

雑記:鶏が先か卵が先か :精神病が先か身体的な病気が先か

序論:この記事を書く理由と目的

この記事では、私が抱える精神病と身体の病気について、またその関連性についてお話しします。
特に、私の精神的な問題が身体的な病気に起因している可能性について考察し、同じような悩みを抱える方々や、その子どもたちの問題を考えるきっかけになればと思い、執筆しました。

記事は長文になるため、時間がない方は「伝えたいこと」の章だけでも読んでいただければ幸いです。


続きを読む

【ショート動画用】 IFTTT Proのfilterで、YouTube動画を予約投稿したらX(旧Twitter)などで自動通知投稿するときのfilterテンプレート

前回の記事はこちら
blog.gelehrte.com

かなり昔の記事ですが、今でも役立っている様子。ただ最近は私はショート動画をアップロードすることが多いので改良を加えました

使い方は前回の記事をどうぞ。
改良点としては

//ショート動画用のURLに切り替える
//#short もしくは #shorts がタイトルに入っていたらショート動画URLにする
if(title.indexOf("#short") != -1){
  url = "https://www.youtube.com/shorts/" + id
}

これだけです。これだけでまぁショート動画のURLがポストされるようになりました。


最近VTuberさんなどの活動盛んですので、何かの役に立てれば幸いです。
今日の記事は短めですかここまで!

FF14雑記:第一世界やトラル大陸の種族の呼び名に変換するIME辞書とAtok用を作ってみた話

種族名覚えにくいですよね。
ミコッテがヘイザ・アロ族とか

私の記憶容量が足りないので辞書を作ってみました。

ただ、私がまだ黄金のレガシーをクリアしていないせいか、アウラ族とルガディン族のトラル大陸呼びがわかりませんでした。
もし知っている方がいらっしゃいましたら、教えていただけると幸いです。

ダウンロードはこちらから

Atok

https://gelehrtecrest.github.io/ff14-ime/races_atok.txt

インストールできないよなどの疑問点がありましたらどしどしお待ちしています。

また他の辞書はこちらからダウンロードできます。インストールの仕方もこちらからどうぞ。
blog.gelehrte.com

FF14雑記:サブクエストで必要なエモート用のIME辞書などのAtok用のを作ってみた話

以前、WindowsIME用のを作りました。
blog.gelehrte.com

ただこのままではAtokではインストール出来なかったようなので、辞書を作り直しました。
利用したサイトはこちらです。
blog.aimix.jp


Atok用の辞書はこちらです

その他用

https://gelehrtecrest.github.io/ff14-ime/other_atok.txt

こちらです。
もしよろしければご利用いただければ幸いです

FF14雑記:モブハントに書かれている文字はなに?

きっとエオルゼアのモブハントに抱えているエオルゼア文字とあまり変わらないと思って調べてなかったのですが、黄金のレガシーのモブハントの文字を読んでみました。詳しくは

この文字の


© SQUARE ENIX

この部分です。

続きを読む

広告