ページ

2026年6月21日日曜日

Kurage AI VTuberとKurage Argo Videoで、AIがライブ配信してデモ動画まで作る流れを実現した

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点が揃うと、単なる実験ではなく、プロダクトとして伝わり始めます。