AI VTuber「ATW」を、配信のたびにダブルクリックだけで起動できるようにした手順です。Claude Code に頼んだ指示と、作ってもらったスクリプト、毎回の起動手順、困ったときの見るところを載せます。
手順10:毎回の起動を自動にする
配信のたびに、5つを決まった順番で起動します。順番を間違えると動きません(たとえば VOICEVOX を起動する前にボットを起動すると、ボットがすぐ止まります)。
- AWS にログインする(VS Code の外の PowerShell で。ログインは最大12時間で切れます)
- VOICEVOX を起動する
- 立ち絵を表示するサーバーを起動する
- OBS を起動し、立ち絵が映っているか確認する
- ボットを起動する
ここまでは手で順番に起動していましたが、毎回は大変なので、こう頼みました。
① 私の指示
手順を最大限に自動化して。
② Claude Code がしたこと
- ダブルクリックだけで全部を順番に起動する
起動.cmd、全部を止める停止.cmdを作った - 中身の
start.ps1は、VOICEVOX のエンジン(画面なし)→ 立ち絵サーバー → OBS → ボット、の順に起動し、起動済みのものは飛ばす。ボットが止まったら10秒後に自動で起動し直す - AWS のログインが切れているときだけ、ログイン用の画面を開く
- トークンは、手順書やスクリプトには書かず、
secrets.ps1から読み込む形にした
start.ps1 の中心部分です(途中を省いています)。
function Test-Url($url) {
try { Invoke-WebRequest -UseBasicParsing -TimeoutSec 2 $url | Out-Null; return $true } catch { return $false }
}
function Wait-Until($what, $seconds, [scriptblock]$check) {
$end = (Get-Date).AddSeconds($seconds)
while ((Get-Date) -lt $end) {
if (& $check) { Write-Host " OK: $what" -ForegroundColor Green; return }
Start-Sleep -Seconds 2
}
throw "$what が $seconds 秒たっても準備できませんでした"
}
# 3. 立ち絵サーバー(画面は出さず裏で動かす)
if (-not (Test-Url 'http://127.0.0.1:3000/status.json')) {
Start-Process python -ArgumentList "`"$here\serve.py`"" -WorkingDirectory $here -WindowStyle Hidden
}
Wait-Until '立ち絵サーバー' 30 { Test-Url 'http://127.0.0.1:3000/status.json' }
# 5. Twitch ボット(止まったら10秒後に起動し直す。終わるときは Ctrl + C)
while ($true) {
python "$here\twitch_bot.py"
Write-Host "ボットが止まりました。10秒後に起動し直します(やめるときは Ctrl + C)" -ForegroundColor Yellow
Start-Sleep -Seconds 10
}
補足:自分のパソコンの中のサーバーを確かめるときは 127.0.0.1
最初は、立ち絵サーバーの確認先を http://localhost:3000 と書いていました。すると、Windows PowerShell 5.1 では最初の接続に2秒以上かかり、待ち時間(2秒)で毎回「失敗」になって、黒い画面が止まりました。127.0.0.1 に直すと0.3秒で通りました。頼むときは、こう書くと避けられます。
PowerShell 5.1 で自分のパソコンの中のサーバーを確認する処理は、localhost ではなく 127.0.0.1 で書いて。
起動したあと、確認が通るところまで実際に試して。
毎回の起動手順(そのまま使える)
ふだんはこれだけ
フォルダを開いて、次のファイルをダブルクリックします。
| やりたいこと | ダブルクリックするファイル |
|---|---|
| 起動する(配信は OBS の「配信開始」を自分で押す) | 起動.cmd |
| 起動して、配信もすぐ始める | 起動して配信.cmd |
| 全部止める | 停止.cmd |
起動.cmdを開くと、黒い画面に「1/5」〜「5/5」の進み具合が出ます。「ゼロスBot接続完了」と出たら準備完了です。この黒い画面は配信中、閉じません- 終わるときは、黒い画面で
Ctrl + Cを押してから停止.cmdをダブルクリックします 起動して配信.cmdは、OBS が起動するとすぐ配信が始まります。ふだんは起動.cmdを使います
試して動いたのは 起動.cmd と 停止.cmd です。AWS のログインが切れたときの動きと、起動して配信.cmd は、まだ試していません。
手で起動するとき
| 順番 | 何を起動するか | どこで |
|---|---|---|
| 1 | AWS にログイン(aws login --profile プロファイル名) | Windows PowerShell(VS Code の外) |
| 2 | VOICEVOX | スタートメニュー |
| 3 | 立ち絵サーバー(python serve.py) | VS Code のターミナル① |
| 4 | OBS(立ち絵が映っているか確認) | スタートメニュー |
| 5 | ボット(. .\secrets.ps1 のあと python twitch_bot.py) | VS Code のターミナル② |
5 の最初の . .\secrets.ps1 は、トークンを読み込む命令です。最初の「.」と空白を忘れないでください。
困ったとき
| 症状 | 見るところ |
|---|---|
| 「[エラー]」と出て、Token・credential・expired などの文字がある | AWS のログインが切れている。やり直す |
| ボットの起動直後に URLError や 10061 と出て止まる、声が出ない | VOICEVOX が起動していない |
| 立ち絵が映らない | 立ち絵サーバーが止まっていないか確認する。OBS のブラウザソースを右クリック →「プロパティ」→「現在のページのキャッシュを更新」 |
| チャットに書いても反応しない | 黒い画面に「接続完了」が出ているか確認する。出ていれば send_test.py で試して、ボット側か Twitch 側かを切り分ける |
| OBS に「Twitch のチャンネル情報の読み込みに失敗(401)」と出る | OBS の「設定 → 配信」で、アカウントの接続を解除して、もう一度接続する |

コメント