LiveKitは、WebRTCで音声・映像・データをやり取りするためのSFUサーバーと、各言語のSDKをまとめたオープンソース基盤です。ビデオ会議の部品として生まれましたが、いまはAIと音声で会話するエージェントの通信路として使われる場面が増えています。使い方は、マネージドのLiveKit Cloudに乗るか、サーバーをセルフホストするかの2択です。この記事では、仕組みとできることを押さえたうえで、LiveKit Cloudの料金表を実数で読み、セルフホストとの分かれ目と、手元で動かす手順まで解説します。掲載したコマンドとコードは、livekit-server v1.13.9とlivekit-server-sdk 2.19.1で実行して確認しました。
まとめ:LiveKitを選ぶ前に押さえる要点
- LiveKitはWebRTCの「規格」ではなく「実装」。多人数通話のSFU、認証トークン、録画、電話接続まで揃ったサーバーとSDKで、ライセンスはApache License 2.0です。
- LiveKit Cloudは無料のBuildから始められる。WebRTC 5,000分・エージェント1,000分・同時接続100が月0ドルで、本番向けはShip(50ドル〜)とScale(500ドル〜)に従量課金が乗ります。
- 音声エージェントの原価は1分あたり数セント。公式の試算例(Shipプラン・電話着信)で約0.0412ドル/分。この試算では約36%をTTSが占めるため、モデルの選び方で原価が変わります。
- セルフホストはソフトが無料でも運用は軽くない。本番にはドメインと信頼された証明書、UDPポートの開放、TURN、複数台ならRedisが要ります。
- Dockerで試すなら
--bind 0.0.0.0を付ける。付けないと開発サーバーはコンテナ内の127.0.0.1にだけ待ち受け、ホストから接続できません。
以降では、仕組み→機能→Agents→料金→提供形態の選び方→動かす手順→採用しない方がよい場面、の順に詳しく見ていきます。
LiveKitとは:WebRTCのSFUサーバーとSDKをまとめたOSS
LiveKitは、米LiveKit社が開発するリアルタイム通信基盤です。サーバー本体(livekit-server)はGo言語で書かれ、WebRTCの実装にはGo製ライブラリのPionを使っています。SDKはブラウザ、iOS、Android、Flutter、Unity向けのクライアント用と、Go、Node.js、Python、Ruby向けのサーバー用があります。ChatGPTの音声モード(Advanced Voice)もLiveKitのSDKとLiveKit Cloudを通して音声を流しているとLiveKit社が公表しており、2025年4月には4,500万ドルのシリーズBを調達しています。
2026年10月時点の最新はlivekit-server v1.13.9(GitHubのリリースは2026年10月7日)です。GitHubのlivekit/livekitはApache License 2.0で公開されており、商用サービスに組み込んでもライセンス料はかかりません。ソースを改変して自社サービスに組み込むこともできます。
WebRTCとLiveKitの違い:規格と実装
WebRTCは、ブラウザやアプリの間で音声・映像を低遅延でやり取りするための規格とAPIです。ただし規格が決めているのは「2点間をどうつなぐか」までで、3人以上の会議の中継、誰が入室してよいかの認証、録画、電話網との接続は利用者が自分で組む必要があります。LiveKitはその部分をサーバーとSDKで肩代わりする製品で、アプリ側から見ると「ルームに入る→トラックを公開・購読する」というAPIだけで済みます。WebRTCそのものの仕組み(ICE・STUN・TURN)はWebRTCとは?P2Pの仕組み・ICE/STUN/TURNからSFU選定・実装・運用判断まで実装者向けに解説で詳しく扱っています。
SFU方式:meshやMCUとの違い
LiveKitの中核はSFU(Selective Forwarding Unit)です。各参加者が送った映像・音声をサーバーが受け取り、合成せずに必要な相手へ転送します。多人数通話の方式は主に3つあります。
| 方式 | 中継の仕方 | 端末の送信本数 | サーバー負荷 |
|---|---|---|---|
| mesh(P2P) | 全員が全員へ直接送る | 参加者数−1本 | なし |
| SFU(LiveKit) | サーバーが選んで転送 | 1本(画質別に最大3本) | 転送のみ |
| MCU | サーバーで合成して1本に | 1本 | デコードと合成で重い |
meshでは参加者ごとに他の参加者へ送信するため、人数の増加に伴って上り帯域と端末の処理負荷が増えます。実用上の人数は、映像のビットレート、回線速度、端末性能によって変わります。MCUは端末に優しい代わりに、サーバーが全員分の映像をデコードして合成するので台数が増えます。SFUはその中間で、「画質別に複数本送る(simulcast)」「見えている相手の映像だけ受け取る」といった工夫で、帯域と負荷の両方を抑えます。
LiveKitでできること:映像・音声・録画・電話接続
LiveKitがSDKの呼び出しで提供する主な機能は次のとおりです。
- simulcastとSVC:1本の映像を複数の画質で送り、受信側の回線に合わせて配り分けます。AV1・VP9ではSVC(階層符号化)も使えます。
- 選択購読と適応ストリーム:画面に表示されている相手だけ、表示サイズに合った解像度で受け取ります。
- Egress(録画・配信):ルーム全体や個別トラックをMP4などに記録したり、RTMPで外部の配信サービスへ流したりします。
- Ingress(取り込み):OBSなどからRTMPやWHIPで送った映像をルームの参加者として取り込みます。料金表では「Stream import」と呼ばれ、変換不要のWHIP取り込みは無料です。
- SIP(電話接続):電話の発着信をルームの参加者として扱えます。LiveKit Cloudでは米国の電話番号を直接取得できます。
- Connectors:2026年9月1日に公式ブログで発表された機能で、Twilio Programmable VoiceとWhatsApp Business Callingの通話を、SIPトランクを用意せずにルームへ引き込みます。
- エンドツーエンド暗号化(E2EE):参加者間でメディアを暗号化します。中継サーバーではメディアを復号できません。ただし、AIエージェントにクライアントと同じ暗号鍵を渡し、接続時にE2EEを設定すれば併用できます。録画については、録画方式と復号への対応を別途確認する必要があります。
既にTwilioで電話の業務フローを組んでいる場合は、Connectors経由でLiveKitのエージェントだけを差し込む構成が取れます。CPaaSそのものの比較はVonageとTwilio比較|CPaaS選定で見る料金・提供体制・SMS制約が参考になります。
LiveKit Agents:音声AIエージェントの仕組み
LiveKit Agentsは、ルームに「AIの参加者」を入れるためのフレームワークです。ユーザーの音声を受け取り、文字起こし(STT)→LLMで応答を生成→音声合成(TTS)して返す流れを1つのセッションとして扱います。2025年4月10日に1.0.0がPyPIへ公開され、2026年10月時点の最新はPython版のlivekit-agents 1.8.6、Node.js版の@livekit/agents 1.9.2です。動作要件はPython 3.10以上、またはNode.js 20以上です。
構成は2通りあります。STT・LLM・TTSを別々のモデルでつなぐパイプライン型と、音声を直接入出力するリアルタイムモデル(OpenAIのGPT-Live、Gemini Liveなど)を1つ使うリアルタイム型です。パイプライン型はモデルを個別に差し替えられ、原価も読みやすい。リアルタイム型は声の抑揚なども入力として扱えます。費用の大小はモデルと利用条件によって変わるため、パイプライン型より常に高いわけではありません。音声モデル側の違いはGPT-Live-1とは?OpenAIのフルデュプレックス音声モデルの仕組み・Realtime APIとの違いと実装判断を解説【2026年7月版】で整理しています。
音声エージェントの品質を分けるのは、相手が話し終えたかどうかの判定です。無音の長さだけで判定すると、考えながら話す人の言葉にAIがかぶせて話し始めてしまいます。LiveKitは発話の内容から話し終えたかを推定するターン検出モデルを持ち、2026年6月17日に発表したv1は英語を含む14言語に対応し、LiveKit Cloud上のエージェントでは既定になりました。
LiveKit Cloudには、STT・LLM・TTSを1つのAPIキーで呼べるLiveKit Inference(2025年10月発表)と、ブラウザ上でコードを書かずにエージェントを試作できるAgent Builder(2025年11月発表)もあります。Agent BuilderはSDK版より機能が少ないと公式クイックスタートに明記されており、試作で手応えを見たらSDKへ移る前提で使います。電話の自動応答としての設計論はボイスボットとは?仕組み・IVRとの違い・導入判断の基準を解説【2026年】も参照してください。社内の業務に音声エージェントを組み込む場合は、AIエージェント開発の支援も行っています。
LiveKit Cloudの料金:Build・Ship・Scaleの違い
LiveKit Cloudは、月額の基本料金に含まれる分数を超えた分だけ従量課金される仕組みです。公式の料金ページ(2026年10月12日に確認)の主な項目を抜き出すと次のとおりです。
| 項目 | Build | Ship | Scale |
|---|---|---|---|
| 月額 | 0ドル | 50ドル〜 | 500ドル〜 |
| WebRTC参加者の分数 | 5,000分 | 15万分 | 150万分 |
| 同上の超過単価 | 超過不可 | 0.0005ドル/分 | 0.0004ドル/分 |
| 同時接続数 | 100 | 1,000 | 5,000 |
| エージェントセッション | 1,000分 | 5,000分 | 5万分 |
| 同上の超過単価 | 超過不可 | 0.01ドル/分 | 0.01ドル/分 |
| 同時エージェントセッション数 | 5 | 20 | 初期50・申請で最大600 |
| 下り転送量 | 50GB | 250GB | 3TB |
| Inferenceクレジット | 2.50ドル | 5ドル | 50ドル |
| 米国の電話番号 | 1つ無料 | 1つ無料+1ドル/月 | 1つ無料+1ドル/月 |
Buildはクレジットカード不要で、含まれる分を使い切った後に課金されることはありません。Shipで加わるのはチームでの共同作業、エージェントの即時ロールバック、メールサポートです。Scaleではロールベースのアクセス制御、リージョン固定、HIPAA対応、SOC 2 Type IIのレポートが付きます。SSOとサポートSLAはEnterprise(個別見積もり)です。セルフホストしたエージェントをLiveKit Cloudのルームにつなぐ場合、エージェントセッションではなくWebRTC参加者の分数として数えられます。
音声エージェントの原価:1分あたりの試算
公式の料金ページには、1分あたりの原価を出す計算式と試算例が載っています。パイプライン型の式は「エージェントセッション+(電話なら電話料金、Webなら接続料金)+LLM+STT+TTS+有効にした録音・観測機能の料金」です。以下の試算は録音・観測機能を含まず、月額基本料金の加算とプラン内の含有分・クレジットの控除も行っていません。Shipプランで電話着信を受ける例は次の内訳です。
| 要素 | 前提 | 1分あたり |
|---|---|---|
| LLM | Gemma 4 31B・入力3,000/出力175トークン | 0.0014ドル |
| STT | Deepgram Nova-3(Monolingual) | 0.0048ドル |
| TTS | Inworld Realtime TTS 2.0・600文字 | 0.0150ドル |
| エージェントセッション | LiveKit Cloudでホスト | 0.0100ドル |
| 電話(米国の番号への着信) | LiveKitの電話番号 | 0.0100ドル |
| 合計 | 約0.0412ドル |
この例で最も重いのはTTSで、全体の36%を占めます。Webアプリから話しかける構成なら電話料金の代わりに接続料金(目安0.001ドル/分)がかかるため、合計は約0.032ドル/分まで下がります。リアルタイム型はSTT・TTSが不要になる代わりにモデルの単価が乗り、公式の見積もりはGPT Realtimeで約0.0676ドル/分、Gemini Live 2.5 Flashで約0.0144ドル/分です。Webから使う場合の合計は、前者で約0.079ドル/分、後者で約0.025ドル/分になります。月に1万分話す想定なら、上のパイプライン型が約320〜410ドル、GPT Realtimeは約790ドル、Gemini Live 2.5 Flashは約250ドルが原価の目安です(いずれも基本料金に含まれる分を差し引く前の値)。料金表は改定されるため、契約前に必ず公式ページで最新の単価を確認してください。
LiveKit Cloudとセルフホストの選び方
LiveKit Cloudとセルフホストは、SDKもアプリのコードも共通です。違いは「サーバーの運用を誰が持つか」と、何に費用を払うかです。
| 観点 | LiveKit Cloud | セルフホスト |
|---|---|---|
| ソフトの費用 | 月額+従量 | 無料(Apache 2.0) |
| かかる費用 | 上の料金表のとおり | サーバー・帯域・運用の人件費 |
| 拡張 | 自動(世界の拠点に分散) | Redisで複数台を束ねて自前設計 |
| エージェントのホスト | lk agent createでデプロイ | 自前のサーバーで常駐 |
| Inference・電話番号 | 使える | 使えない(各社と個別契約) |
| データの置き場所 | Scale以上でリージョン固定 | 自社の環境に閉じられる |
判断の分かれ目は2つです。1つは通話量で、WebRTCの分数が月に数百万分を超えてくると、Scaleの従量よりサーバー代の方が安くなる可能性が出てきます。もう1つはデータの扱いで、音声を国外の拠点に流せない要件があるならセルフホストが有力です。どちらにも当てはまらないうちは、運用の人手がかからないLiveKit Cloudで始め、Buildの無料枠で品質を確かめるのが合理的です。
セルフホストを本番で動かすときに必要なもの
「ソフトが無料」という言葉から想像するより、本番のセルフホストは準備が多めです。公式のデプロイガイドとポートとファイアウォールの資料が求めるものは次のとおりです。
- ドメインと証明書:SDKは
wss://で接続するため、信頼された認証局が署名した証明書が要ります。自己署名の証明書では動きません。TURNを使うなら、TURN用に別のドメインと証明書も用意します。 - 開放するポート:API・WebSocketの7880(ロードバランサーでTLS終端)、ICE/TCPの7881、メディア用のUDP 50000〜60000(1参加者あたり2ポート)。UDPを1ポートにまとめるなら7882を使います。
- TURN/TLS:UDPや非TLSのTCP通信が制限されるネットワーク向けに、TURN通信をTLSで暗号化して中継する経路です。ロードバランサーを使わない構成では、公開ポートを443番に設定します。企業向けサービスでは実質的に必須です。
- Redis:複数台でルームを分散するときの調整役です。公式設定例では本番に推奨とされています。
このうち、UDPを広く開放できない社内環境と、TURNの証明書管理は運用で詰まりやすい箇所です。
LiveKitを手元で動かす手順:開発サーバーとトークン発行
セルフホストの開発サーバーは、Dockerで1行起動できます。ここではmacOS上のDocker(colima)で、livekit/livekit-serverの v1.13.9 イメージを使いました。
docker run --rm \
-p 7880:7880 -p 7881:7881 -p 7882:7882/udp \
livekit/livekit-server:v1.13.9 --dev --bind 0.0.0.0
--devを付けると、APIキーdevkeyとシークレットsecretで起動します。起動ログには"version": "1.13.9"、TCPの7881番、UDPの7882番が表示されます。開発モードは鍵が固定でデバッグ用の情報も出るため、本番では使いません。
Dockerで起動したのに接続できないときの原因
よくある失敗が、--bind 0.0.0.0を付けずに起動するケースです。開発サーバーは既定で127.0.0.1:7880に待ち受けるため、コンテナの中のローカルアドレスにしか応答しません。実際に--bindなしで起動すると、ログの待ち受けアドレスは["127.0.0.1", "::1"]になり、ホストからcurl http://127.0.0.1:7880/を叩いても応答がありませんでした。--bind 0.0.0.0を付けるとOKが返ります。
もう1つの落とし穴が、サーバーが利用者に知らせるIPアドレスです。コンテナ内では自動判定でコンテナのIP(今回は172.17.0.2)が選ばれるため、ブラウザから映像を送るとメディアの経路が確立しないことがあります。手元のブラウザで試すときは--node-ip 127.0.0.1を加え、知らせるIPを明示します。
アクセストークンの発行とルームの作成
クライアントがルームに入るには、サーバー側で発行したアクセストークン(JWT)が必要です。トークンには参加者のID、入れるルーム、公開・購読の権限が入り、APIシークレットで署名されます。作業ディレクトリでnpm install [email protected]を実行します。次のコードをtoken.mjsとして保存し、node token.mjsで実行するとトークンが出力されます。
import { AccessToken } from 'livekit-server-sdk';
const at = new AccessToken('devkey', 'secret', {
identity: 'user-7f3a',
ttl: '10m',
});
at.addGrant({ roomJoin: true, room: 'demo-room', canPublish: true, canSubscribe: true });
console.log(await at.toJwt());
参加者のIDとルーム名はLiveKitのログやトレースに残るため、氏名やメールアドレスではなくUUIDのような識別子にするよう公式のトークン解説が注意しています。サーバーAPIが応答しているかは、ルームを作って一覧を取ると確かめられます。
import { RoomServiceClient } from 'livekit-server-sdk';
const svc = new RoomServiceClient('http://127.0.0.1:7880', 'devkey', 'secret');
await svc.createRoom({ name: 'demo-room', emptyTimeout: 300 });
console.log((await svc.listRooms()).map(r => r.name));
上の開発サーバーに対して実行すると[ 'demo-room' ]が返りました。あとはクライアントSDK(ブラウザならlivekit-client 2.22.4)で、発行したトークンを使ってws://127.0.0.1:7880に接続します。
LiveKit Cloudでの音声エージェントの初期設定
エージェントを作るなら、LiveKit CLI(lk)を入れてLiveKit Cloudの無料プロジェクトにつなぐのが近道です。公式のVoice AIクイックスタートの流れは次のとおりです。
brew install livekit-cli uv
lk cloud auth
lk agent init my-agent --template agent-starter-python
cd my-agent
uv sync
lk agent dev
lk agent initはテンプレートを複製し、接続情報を書いた.env.localを作ります。lk agent devで開発モードのエージェントが動き、表示されたリンクのコンソールからマイクで話しかけられます。LiveKit Cloudへのデプロイはlk agent createです。Node.js版はテンプレートをagent-starter-nodeに変え、pnpm installを使います。
LiveKitを選ばない方がよい場面
LiveKitは汎用性が高い分、要件によっては過剰です。次の場面では別の選択肢を先に検討します。
- 1対1の通話だけで、録画や電話・AI接続も不要:接続制御やTURNの運用を自前で担えるなら、P2Pを先に検討できます。小規模な音声通話の作り方はボイスチャットの実装方法|WebRTCで音声通話を作る手順とSDK選定で比較しています。
- 数千人への一方向配信が主:視聴者に双方向性が要らないなら、HLSなどの配信方式の方が安く広く届けられます。候補は動画配信システムのオープンソース8製品|ライセンス条件と自前運用の限界を実装目線で判定にまとめています。
- 完成済みの会議UIや導入用部品を優先したい:LiveKitもUI部品を持ちますが、会議画面まで含めて短期間で組み込むなら、100msやAmazon Chime SDKのUI部品と実装範囲を比べます(100ms.liveとは?WebRTC・HLSのライブ動画SDKの料金と上限、導入手順【2026年9月】、Amazon Chimeの終了後に残るChime SDKで会議機能を組み込む手順と料金)。
音声エージェントの文脈でよく比べられるPipecatは、Daily社とコミュニティがメンテナンスするPythonのOSSフレームワークです(BSD-2-Clause)。PipecatのREADMEは通信路の選択肢にLiveKitを挙げており、「PipecatでエージェントのロジックをLiveKitのルーム上で動かす」構成も取れます。比べるべきはLiveKit Agents対Pipecatという「エージェントの書き方」であって、LiveKitの通信基盤を捨てるかどうかではありません。
よくある質問
LiveKitとは何ですか?
WebRTCで音声・映像・データをやり取りするための、SFUサーバーとSDKをまとめたオープンソース基盤です。サーバーはGo言語製で、ライセンスはApache License 2.0です。ビデオ会議のほか、音声AIエージェントの通信路として使われています。
LiveKitの料金はいくらですか?
セルフホストならソフトの費用はかかりません。LiveKit CloudはBuildが月0ドル(WebRTC 5,000分・エージェント1,000分まで)、Shipが月50ドルから、Scaleが月500ドルからで、含まれる分を超えると従量課金です。2026年10月時点の単価は本文の表を参照し、契約前に公式の料金ページで確認してください。
LiveKit CloudとセルフホストでSDKやコードは変わりますか?
変わりません。接続先のURLとAPIキーを差し替えるだけで、同じアプリがどちらにもつながります。ただしLiveKit Inference、電話番号の取得、エージェントのホスティングはLiveKit Cloudだけの機能です。
LiveKitで日本語の音声エージェントは作れますか?
作れます。LiveKit AgentsはSTT・TTSのモデルを差し替えられるので、日本語に対応したモデルを選べば日本語で会話できます。ただしLiveKit Cloudの料金表にある電話番号は米国の番号だけです。日本の番号で着信させるには、国内の番号を提供するSIP事業者をつなぐ(料金表のThird-party SIP)構成になります。
LiveKitのサーバーの最新バージョンはいくつですか?
2026年10月12日時点では、GitHubで2026年10月7日に公開されたv1.13.9が最新です。Docker Hubのlivekit/livekit-serverのlatestタグも同じ版を指していました。更新は頻繁なので、導入時はGitHubのリリース一覧で確認してください。