Kurage AI VTuberで、PNGアバターの「VTuberくらげ」が番組を読み上げるライブ配信基盤を作り、その様子をKurage Argo Video(kargov)でデモ動画化するところまで到達しました。
公開デモはこちらです。
今回のポイントは、単にVTuber風の画面を作ったことではありません。admin画面から番組を開始し、配信用viewerでアバターが話し、その画面と音声を録画して、Kurageの動画一覧で見られる成果物にしたことです。
番組データ
↓
kvtuber adminで配信開始
↓
/viewer?broadcast=1 にVTuberくらげを表示
↓
TTS音声 + 字幕 + 口パク
↓
kargovでブラウザ操作と録画
↓
Kurageへデモ動画として投稿
Kurage AI VTuberで実現したこと
kvtuberは、ブラウザで動くAI VTuber配信ランタイムです。今回の実装では、まず「配信番組を安定して流せること」を優先しました。
実現した主な機能は次の通りです。
- PNGアバター表示
- 音声に合わせた口パク
- 字幕表示
- admin画面からの番組開始・停止
- 番組スケジュール管理
- コメント割り込み
- 配信用viewer
/viewer?broadcast=1 - YouTube Live / RTMP配信用のChrome + Xvfb + ffmpeg構成
VTuberというとLive2Dや3Dモデルが最初に思い浮かびます。しかし今回の狙いは、キャラクター表現そのものよりも「AIが番組を進行する配信パイプライン」を作ることでした。
そのため、まずはPNGアバターで十分です。口閉じ・口開きの差分を音声に合わせて切り替え、字幕と音声で内容が伝われば、技術解説やセミナー配信として成立します。
配信用viewerを固定した理由
通常のWebアプリでは、ユーザーごとにviewerを開きます。しかしライブ配信では、視聴者それぞれの画面を配信するわけではありません。
配信元として1つだけブラウザを起動し、その画面をOBS、RTMP、YouTube Liveへ流す方が安定します。
http://localhost:18308/viewer?broadcast=1
この専用viewerでは、画面サイズ、字幕位置、アバター位置、音量を固定します。自由に操作できる通常viewerとは別に、配信専用の画面を持つことで、録画やライブ配信の再現性が上がります。
これは今回かなり重要な設計判断でした。視聴者向けUIと配信用UIを分けないと、スマホ表示、スクロールバー、音声ONボタン、字幕位置などが配信画面に混ざってしまいます。
ライブ配信で詰まったところ
YouTube Live配信では、いくつか実運用らしい問題が出ました。
1つ目はffmpegです。サーバー内に複数のffmpegがあり、片方は x11grab に対応していませんでした。ライブ配信では仮想ディスプレイをキャプチャするため、/usr/bin/ffmpeg のように使うバイナリを明示する必要があります。
2つ目はChromeプロファイルです。配信用Chromeを起動したつもりでも、既存ChromeにURLが吸われると、Xvfb上には何も描画されません。その状態でffmpegを動かすと、正常に「黒画面」を配信してしまいます。配信用Chromeには専用の --user-data-dir を指定する必要があります。
3つ目はLLM生成待ちです。ライブ配信中に毎回LLMの返答を待つと、番組が止まります。そこで、セミナー配信では登録済み台本をTTSで読み上げる方式を優先しました。ライブ配信では、リアルタイム生成よりも、止まらない進行の方が大事です。
Kurage Argo Videoでデモ動画制作を成功させた
kargovは、ブラウザ操作を含むデモ動画制作ツールです。
コンセプトは、AIエージェントがブラウザを操作し、その操作過程を録画し、必要に応じてナレーション、字幕、短縮編集、16:9/9:16書き出しまで行うことです。
今回のデモでは、次の流れを収録しました。
VNCで見えるChromeを起動
↓
kvtuber admin画面を開く
↓
配信開始ボタンをクリック
↓
viewerへ移動
↓
VTuberくらげがバイブコーディングセミナーを話す
↓
セミナー音声込みで録画
↓
前後にデモ説明ナレーションを追加
重要なのは、セミナー中に別の説明ナレーションを重ねなかったことです。デモ動画なので冒頭と締めには説明が必要ですが、配信中はkvtuber本体の音声が主役です。ここを分けたことで、「実際に配信されている」ことがわかる動画になりました。
完成した動画は、Kurage側の動画として公開しています。
技術的に見えてきた構成
今回の成果を抽象化すると、次のようになります。
kvtuber = AIキャラクター配信ランタイム
kargov = ブラウザ操作デモ動画制作エンジン
Kurage = 生成動画の公開・配信面
kvtuberは、配信用viewerを提供します。kargovは、そのviewerやadmin画面を操作・録画します。Kurageは、完成した動画を公開し、実績として見せる場になります。
この3つがつながると、AI OSSプロダクトの紹介動画をかなり短いサイクルで作れます。
例えば、新しい機能を作ったら、次のような流れで公開できます。
機能実装
↓
admin/viewerで動作確認
↓
kargovで操作デモを録画
↓
短く編集してナレーションを追加
↓
Kurageへ投稿
↓
記事・SNS・YouTubeで紹介
これは、OSS開発の広報としても強いです。READMEだけでは伝わりにくい「実際に動いている感」を、動画として残せます。
なぜこれが商品っぽいのか
今回の商品性は、VTuber単体でも、録画ツール単体でもありません。
価値があるのは、AIエージェントが作業し、AIキャラクターが説明し、その様子をAI動画生成パイプラインで公開できるところです。
つまり、次の3つが一体になります。
- AIが操作する
- AIが話す
- AIが動画として見せる
これは、バイブコーディングの普及にも相性が良いです。技術を文章で説明するだけではなく、VTuberくらげが実際に話しながら見せる。さらに、そのデモ動画自体も自動生成に近づける。
開発、教育、広報が1本のパイプラインにつながります。
今後の拡張
次に伸ばすなら、次の方向が自然です。
- 番組テンプレートを増やす
- YouTubeコメントをadminから割り込み反映する
- 配信スケジュールを安定運用する
- Live2D/VRMアバターへ差し替えられるようにする
- kargovからKurage投稿までをさらに自動化する
- デモ動画からYouTube投稿までを一気通貫にする
ただし、今回の到達点だけでも大きいです。
Kurage AI VTuberは、ブラウザ上で番組を配信できるようになりました。Kurage Argo Videoは、その配信の様子をデモ動画として成果物にできました。そしてKurage上で、その動画を公開できました。
OSSとしては、ここからが面白いところです。コードを公開し、仕組みを説明し、動くデモを見せる。この3点が揃うと、単なる実験ではなく、プロダクトとして伝わり始めます。