GUIに疲れたあなたへ|シェルスクリプトでYouTube動画を自動生成する方法

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

GUIに疲れたあなたへ|シェルスクリプトでYouTube動画を自動生成する方法

動画を作るときは、編集ソフトを開いて、素材を並べ、字幕を入れ、音声の位置を合わせます。1本だけなら問題ありませんが、同じような動画を何本も作ると、この作業が少しずつ負担になってきます。

もちろん、GUIの動画編集ソフトはとても便利です。画面を見ながら細かく調整できるので、丁寧に作り込みたい動画には向いています。

ただ、毎回同じ形式で作る動画では、同じ操作を何度も繰り返すことになります。設定を探したり、字幕の位置を合わせたりする時間が増えると、肝心の内容を考える時間が減ってしまいます。

そこで今回は、台本を用意するだけで対話動画を作れるように、シェルスクリプトで自動生成する仕組みを用意しています。現在はGitHubで公開しています。

目次

公開したもの

公開したリポジトリはこちらです。

Dialogue Video Generator – GitHub

このリポジトリには、動画を組み立てるためのシェルスクリプトと、動作確認に使えるサンプル台本を入れています。

  • 含めているもの:動画生成用のシェルスクリプト、README、サンプル台本、セットアップ手順です。
  • 含めていないもの:キャラクター画像、背景画像、BGM、生成済み音声、生成済み動画です。

画像や音声などの素材には、それぞれ利用条件があります。そのため、今回は誰でも使い回しやすい形として、スクリプトだけを公開しています。

何ができるスクリプトなのか

このスクリプトは、テキストで書いた台本をもとに、対話形式の動画を自動で作ります。

使い方の流れはシンプルです。台本を用意し、背景画像とキャラクター画像を決まった場所に置きます。そのあとVOICEVOX ENGINEを起動し、スクリプトを実行します。

  • 台本:誰が、どのセリフを話すかを書きます。
  • 音声:VOICEVOX ENGINEでセリフを読み上げます。
  • 映像:背景、キャラクター画像、字幕などを組み合わせます。
  • 出力:ffmpegで最終的な動画ファイルにします。

動画編集ソフトで1つずつ配置するのではなく、台本から動画を組み立てる考え方です。

必要なツール

macOSでは、Homebrewを使うと必要なコマンドをまとめて用意できます。

brew install ffmpeg ghostscript imagemagick jq

VOICEVOXで音声を作る場合は、先にVOICEVOX ENGINEを起動しておきます。

curl http://127.0.0.1:50021/version

このコマンドを実行してバージョン番号が表示されれば、VOICEVOX ENGINEに接続できています。

台本の書き方

台本では、話者名とセリフを | で区切って書きます。

GitHubのサンプルでは英語の例を載せていますが、日本語の台本でも同じ形式で使えます。

Speaker A|Hello.
Speaker B|Hi. Let's make a video.

日本語で書く場合は、次のようになります。

【ミナちゃん】|こんにちは。今日はシェルスクリプトで動画を作ります。
【ユニ先生】|台本を書くだけで動画にできるのは便利ですね。

読み上げる文章と、画面に表示する字幕を分けたい場合は、3つ目の項目を追加します。

Speaker A|This text is sent to VOICEVOX.|This text appears in the subtitle.

日本語で書く場合は、次のようになります。

【ユニ先生】|グレップは、とても役に立つんだ。|`grep` はとても役に立つんだ。

この形式にしておくと、動画編集ソフトで字幕を1つずつ置く必要がありません。台本を直してもう一度実行すれば、動画も作り直せます。

素材の置き方

画像やBGMは、次のようなフォルダ構成で置きます。

.
├── generate_video.sh
├── script.txt
├── board_script.txt
├── backgrounds/
│   └── background.png
├── images/
│   ├── speaker-a/
│   │   └── 001.png
│   └── speaker-b/
│       └── 001.png
└── mp4/
    └── bgm.m4a

BGMはなくても実行できます。使う場合は、次のようにBGMファイルを指定します。

BGM_AUDIO_FILE=mp4/bgm.m4a ./generate_video.sh

実行方法

基本的な実行手順は次の通りです。サンプル台本をコピーしてから、スクリプトを実行します。

chmod +x generate_video.sh
cp examples/script.txt script.txt
cp examples/board_script.txt board_script.txt
./generate_video.sh

出力する動画ファイルの名前を変えたい場合は、次のように指定します。

OUTPUT_FILE=lesson.mp4 ./generate_video.sh

すでにWAV形式の音声ファイルを用意している場合は、VOICEVOXを使わずに外部音声モードで作成できます。

AUDIO_INPUT_MODE=external ./generate_video.sh

GUIではなくシェルスクリプトにした理由

今回の目的は、動画編集時の繰り返し作業を減らして、台本作成や内容の整理に時間を使えるようにすることです。

シェルスクリプトにしておくと、動画の作り方そのものをテキストで管理できます。設定を変更したときも、Gitを使えばどこを変えたのか確認できます。

  • 再現しやすい:同じ台本と素材を使えば、同じ手順で動画を作れます。
  • 直しやすい:字幕やセリフをテキストファイルで修正できます。
  • 共有しやすい:スクリプトとサンプルをGitHubで公開できます。
  • 増やしやすい:台本を変えるだけで、同じ形式の動画を作れます。

特に、シリーズ動画や解説動画のように毎回の形が決まっている場合は、自動化の効果が大きくなります。

VOICEVOXや素材の扱いについて

VOICEVOX ENGINE、音声モデル、キャラクター画像、背景画像、BGMには、それぞれ利用条件があります。

そのため、GitHubには素材を含めていません。公開対象は、動画を作るための仕組みだけです。

作成した動画を公開する場合は、使った音声、キャラクター、画像、BGMのライセンスを確認してください。

実際に作った動画

この仕組みを使って、UNIXやターミナル操作を扱う動画を作成しています。

第1回では、viエディタのビジュアルモードを取り上げています。テキスト記事だけでは伝えにくい画面の動きや、範囲選択の流れを動画で確認できます。

YouTubeチャンネルはこちらです。

UNIX Cafe YouTubeチャンネル

まとめ

GUIの動画編集ソフトは強力です。ただ、決まった形式の動画を何度も作るなら、すべてを手作業で行う必要はありません。

台本、素材、設定をテキストで管理し、シェルスクリプトで動画を生成できるようにすると、作業の見通しが良くなります。

今回公開しているDialogue Video Generatorは、そのための小さな道具です。自分の動画制作に合わせて、自由に変更して使えます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

目次