前回は音声ソフト”VOICEVOX”と連動して、テキストから自動で音声データを作成することに成功しました!
今回はVTuverの体部分をデザインしたり動かしたりする”VTube Studio”と連動させる未来です。
つくる人レッツトライ!
次はどうする? 教えてLM!
AITuber 開発用LMの回答
次は、以前話題に出た VTube StudioのAPIトークン(許可証) を取得し、Pythonからキャラクターを動かせるようにします。以下の手順で進めましょう。
VTube Studioと連携しよう!
手順
1. 必要なライブラリの追加インストール
VTube Studioとの通信には「WebSocket(ウェブソケット)」という仕組みを使います。そのためのライブラリをインストールします。
PowerShell(ターミナル)で以下を実行してください:
pip install websockets
2. トークン取得用プログラムの作成
「許可証(トークン)」を発行してもらうための、1回だけ使う専用プログラムを作成します。
• ファイル名: setup_vts.py (ルートディレクトリに作成)
以下のコードをコピーして貼り付けてください。
import asyncio
import websockets
import json
import os
# 設定
VTS_URL = "ws://localhost:8001"
PLUGIN_NAME = "MyAITuber" # 好きな名前に変更可
DEVELOPER_NAME = "MyName" # あなたの名前に変更可
async def authenticate():
print(f"🔌 VTube Studio ({VTS_URL}) に接続中...")
try:
async with websockets.connect(VTS_URL) as websocket:
print("✅ 接続成功!")
print("⏳ VTube Studioの画面を見てください。「許可」を求めるポップアップが出ます。")
# 1. 認証トークンをリクエストする
request = {
"apiName": "VTubeStudioPublicAPI",
"apiVersion": "1.0",
"requestID": "TokenRequestID",
"messageType": "AuthenticationTokenRequest",
"data": {
"pluginName": PLUGIN_NAME,
"pluginDeveloper": DEVELOPER_NAME,
}
}
await websocket.send(json.dumps(request))
# 2. レスポンスを待つ(VTS側で「許可」が押されるまで待機)
response = await websocket.recv()
data = json.loads(response)
# 3. 結果の確認
if "data" in data and "authenticationToken" in data["data"]:
token = data["data"]["authenticationToken"]
print("\n" + "="*50)
print("🎉 トークン取得に成功しました!")
print("以下のトークンを .env ファイルの VTUBE_STUDIO_API_TOKEN に貼り付けてください:")
print("-" * 50)
print(token)
print("-" * 50)
print("="*50 + "\n")
else:
print("❌ 失敗しました。VTube Studio側で「拒否」されたか、エラーが発生しました。")
print(f"レスポンス: {data}")
except ConnectionRefusedError:
print("❌ エラー: VTube Studioに接続できませんでした。")
print("ヒント: VTube Studioは起動していますか? 設定で「APIの起動」はONになっていますか?")
if __name__ == "__main__":
asyncio.run(authenticate())
3. 実行してトークンを取得する
重要:実行前に必ず VTube Studio アプリを起動しておいてください。
ファイルができたら、ターミナルで以下を実行してトークンを取得してください。
python setup_vts.py
VTube Studioの画面を見ると、「MyAITuberからのアクセスを許可しますか?」というポップアップが出ているはずです。
PowerShellの画面に、長い文字列(トークン)が表示されます。
4. .env に貼り付け
表示されたトークンをコピーして、.env ファイルの VTUBE_STUDIO_API_TOKEN= の後ろに貼り付けて保存してください。
これができたら、ついに「脳(AI)」「声(VOICEVOX)」「体(VTube Studio)」をつなげる準備が整います!
1. 必要なライブラリの追加インストール
VTube Studioとの通信には「WebSocket(ウェブソケット)」という仕組みを使います。そのためのライブラリをインストールします。
PowerShell(ターミナル)で以下を実行してください:
pip install websockets





いざ、ENTER!


この画面が出たら完了です。すぐ終わった。
2. トークン取得用プログラムの作成
「許可証(トークン)」を発行してもらうための、1回だけ使う専用プログラムを作成します。
• ファイル名: setup_vts.py (ルートディレクトリに作成)



これって手動でファイルを作成するのかな?
AITuber 開発用LMの回答
はい、その通りです!手動で setup_vts.py というファイルを新規作成してください。
このファイルはAITuberの本体(メインシステム)ではなく、**「VTube Studioから許可証(APIトークン)をもらうためだけに使う、1回限りの設定用ツール」**であるため、最初のプロジェクト自動生成には含めていませんでした。
以下の手順で進めてください。
方法A:手動で作る(確実)
1. Cursorの左側のファイル一覧(エクスプローラー)の何もないところを右クリックします。
2. 「新しいファイル (New File)」 を選択します。
3. 名前を setup_vts.py と入力してEnterを押します。
4. 先ほど提示したコードをコピーして、そのファイルに貼り付けて保存(Ctrl + S)してください。
コピペするコード
import asyncio
import websockets
import json
import os
# 設定
VTS_URL = "ws://localhost:8001"
PLUGIN_NAME = "MyAITuber" # 好きな名前に変更可
DEVELOPER_NAME = "MyName" # あなたの名前に変更可
async def authenticate():
print(f"🔌 VTube Studio ({VTS_URL}) に接続中...")
try:
async with websockets.connect(VTS_URL) as websocket:
print("✅ 接続成功!")
print("⏳ VTube Studioの画面を見てください。「許可」を求めるポップアップが出ます。")
# 1. 認証トークンをリクエストする
request = {
"apiName": "VTubeStudioPublicAPI",
"apiVersion": "1.0",
"requestID": "TokenRequestID",
"messageType": "AuthenticationTokenRequest",
"data": {
"pluginName": PLUGIN_NAME,
"pluginDeveloper": DEVELOPER_NAME,
}
}
await websocket.send(json.dumps(request))
# 2. レスポンスを待つ(VTS側で「許可」が押されるまで待機)
response = await websocket.recv()
data = json.loads(response)
# 3. 結果の確認
if "data" in data and "authenticationToken" in data["data"]:
token = data["data"]["authenticationToken"]
print("\n" + "="*50)
print("🎉 トークン取得に成功しました!")
print("以下のトークンを .env ファイルの VTUBE_STUDIO_API_TOKEN に貼り付けてください:")
print("-" * 50)
print(token)
print("-" * 50)
print("="*50 + "\n")
else:
print("❌ 失敗しました。VTube Studio側で「拒否」されたか、エラーが発生しました。")
print(f"レスポンス: {data}")
except ConnectionRefusedError:
print("❌ エラー: VTube Studioに接続できませんでした。")
print("ヒント: VTube Studioは起動していますか? 設定で「APIの起動」はONになっていますか?")
if __name__ == "__main__":
asyncio.run(authenticate())
方法B:CursorのAIに作らせる(楽な方法)
Cursorを使っているので、AIに任せることも可能です。
1. Ctrl + I (Composer)を開きます。
2. 以下の指示を入力します。
3. 生成されたら「Accept(適用)」を押します。


3. 実行してトークンを取得する
重要:実行前に必ず VTube Studio アプリを起動しておいてください。


ターミナルで以下を実行してトークンを取得してください。
python setup_vts.py


VTube Studioの画面を見ると、「MyAITuberからのアクセスを許可しますか?」というポップアップが出ているはずです


PowerShellの画面に、長い文字列(トークン)が表示されます。


4. .env に貼り付け
表示されたトークンをコピーして、.env ファイルの VTUBE_STUDIO_API_TOKEN= の後ろに貼り付けて保存してください。
これができたら、ついに「脳(AI)」「声(VOICEVOX)」「体(VTube Studio)」をつなげる準備が整います!





なんかスムーズにここまで来てしまったよ
順調すぎて怖いくらいだよ。
いよいよ
「脳(AI)」「声(VOICEVOX)」「体(VTube Studio)」
つなげるそうだけど、果たしてどうなるかな。。。楽しみ!