本記事には広告・アフィリエイトリンクが含まれています(景品表示法に基づくPR表記)
YouTube Shortsの投稿を半自動化してみた
こんにちは、ぷーたです。副業でYouTube Shortsに動画を投稿しているのですが、毎回手作業で台本を書いて、録音して、編集して…とやるのは本業のあるサラリーマンには正直キツいです。
そこで台本生成から動画出力までを半自動化するパイプラインを作りました。完全自動ではなく、要所で人間が確認を入れる「半自動」です。この記事では実際に使っているツールと手順を紹介します。
パイプラインの全体像
僕のパイプラインは以下の4ステップです。
- 台本生成:Claude Codeでスクリプトを作成
- 音声合成:VOICEVOXでナレーション生成
- 動画編集:FFmpegで素材を結合
- アップロード:YouTube Studio(ここは手動)
それぞれ詳しく説明します。
ステップ1:Claude Codeで台本を生成
台本のテンプレートを事前に用意しておき、Claude Codeに「このテーマで台本を書いて」と指示します。
僕が使っているテンプレート構成はこうです。
- フック(1.5秒):視聴者の注意を引く一言
- 本体(6〜8文):具体的な情報を伝える
- エンドカード(2秒):フォローやチャンネル登録のCTA
Claude Codeはプロジェクト内のテンプレートファイルを読み込めるので、「前回の台本と同じトーンで」といった指示も通ります。
注意点:AIが生成した台本はそのまま使わず、必ず自分で読み返して修正します。事実確認が不十分な内容や、誇張表現が含まれていることがあるためです。
ステップ2:VOICEVOXで音声合成
台本が確定したら、VOICEVOXでナレーション音声を生成します。VOICEVOXは無料で使えるテキスト音声合成ソフトで、商用利用も可能です(キャラクターごとの利用規約を要確認)。
僕はVOICEVOXのAPIを叩くPythonスクリプトを作っています。
import requests
import json
def generate_voice(text, speaker_id=3, output_path="output.wav"):
# 音声合成クエリの作成
query_res = requests.post(
"http://localhost:50021/audio_query",
params={"text": text, "speaker": speaker_id}
)
query = query_res.json()
# 音声合成の実行
synth_res = requests.post(
"http://localhost:50021/synthesis",
params={"speaker": speaker_id},
data=json.dumps(query)
)
with open(output_path, "wb") as f:
f.write(synth_res.content)
VOICEVOXをローカルで起動しておけば、このスクリプトで一発で音声ファイルが生成されます。
ステップ3:FFmpegで動画を生成
音声ファイルができたら、FFmpegで背景画像と音声を結合して動画にします。
ffmpeg -loop 1 -i background.png -i narration.wav \
-c:v libx264 -tune stillimage -c:a aac \
-b:a 192k -pix_fmt yuv420p \
-shortest -vf "scale=1080:1920" \
output.mp4
もっと凝った動画を作りたい場合は、字幕を重ねる処理を追加します。僕はPythonのpysrtライブラリでSRTファイルを生成し、FFmpegのsubtitlesフィルターで合成しています。
字幕があると視聴維持率が上がる実感があります。
ステップ4:アップロード
現時点ではYouTube Studioから手動でアップロードしています。YouTube Data APIを使えば自動化も可能ですが、タイトルやサムネイルの最終確認は人間がやったほうが品質が安定するため、あえて手動にしています。
実際の成果と課題
成果
- 動画1本の制作時間:手作業で約60分 → パイプラインで約20分に短縮
- 投稿頻度:週1〜2本 → 週3〜5本に増加
課題
- 背景素材のバリエーションが不足すると動画が単調になる
- VOICEVOXの音声は自然だが、感情表現には限界がある
- 再生数は内容だけでなく、投稿タイミングやサムネイルにも大きく依存する
使っているツールまとめ
| 工程 | ツール | 費用 |
|---|---|---|
| 台本生成 | Claude Code | API従量課金 |
| 音声合成 | VOICEVOX | 無料 |
| 動画編集 | FFmpeg | 無料 |
| 字幕生成 | Python + pysrt | 無料 |
| アップロード | YouTube Studio | 無料 |
ほとんどのツールが無料で使えるのがこのパイプラインの良いところです。
まとめ:半自動化で「続けられる仕組み」を作る
YouTube Shortsは投稿頻度が重要ですが、毎回フルで手作業していたら続きません。面倒な部分を自動化して、クリエイティブな部分に集中するのが僕のやり方です。
完全自動化を目指すより、「確認→承認」のステップを残す半自動化のほうが、品質を保ちながら量を出せます。まずはVOICEVOXの導入から試してみてください。
よくある質問(FAQ)
Q1. プログラミングができなくても作れますか?
FFmpegのコマンドやPythonスクリプトを使うため、基本的なプログラミング知識は必要です。ただし、Claude CodeやChatGPTにコードを書いてもらうことで、学びながら構築することは可能です。
Q2. VOICEVOXの音声は商用利用できますか?
VOICEVOXは基本的に商用利用が可能ですが、キャラクター(話者)ごとに利用規約が異なります。使用するキャラクターの利用規約をVOICEVOX公式サイトで必ず確認してください。
Q3. 収益化にはどのくらいの期間がかかりますか?
YouTube Shortsの収益化には、チャンネル登録者1,000人以上かつ直近90日間のShorts視聴回数1,000万回以上(または総再生時間4,000時間以上)の条件を満たす必要があります。僕はまだ達成していないので、具体的な期間はお伝えできません。コツコツ続けることが前提です。
関連書籍
Pythonによる自動化を学びたい方はこちら。
