OBSでは、WebSocket機能を活用することで、OBSのリモート操作や自動化、外部デバイスやプログラムとの接続などができるようになります。
本記事では、OBSでのWebSocketの設定方法や具体的な活用方法について詳しく解説します。
WebSocketとは、ウェブアプリケーションがサーバーとブラウザ(または他のクライアント)間でリアルタイムの双方向通信を行うための技術標準です。このプロトコルは、単一の長期間開かれた接続を通じて、データの片道または双方向の即時送受信を可能にします。
OBSでは、この技術を使うことで、別のデバイスやプログラムからシーンの切り替えや録画の開始などを遠隔操作できるようになります。
例えば、複数のカメラや音声を切り替えたり、映像ソースを自動的に表示・非表示にしたりするなど、さまざまな操作を効率的に実行できるようになります。
OBSのバージョン28以降では、WebSocketでの通信機能が標準機能として搭載されているため、別途プラグインをインストールする必要はありません。
もしバージョン28以降でプラグインをインストールしてしまうと、WebSocket機能が正しく動作しなくなる可能性があるので注意が必要です。
誤ってプラグインをインストールしてしまった場合は、OBSを再インストールすることで、元の状態に戻すことができます。
上部メニューから「ツール >> WebSocketサーバー設定」に進み、プラグイン設定にある「WebSocketサーバーを有効にする」にチェックを入れます。
次に、サーバー設定でサーバーポートとサーバーパスワードを設定します。
「サーバーポート」はデフォルトで4455が設定されています。このままでも問題ありませんが、他のアプリで同じポートを使っている場合は別の番号に変更しましょう。
「認証を有効にする」にチェックを入れると「サーバーパスワード」の生成が可能になります。
パスワードを生成せずに接続することもできますが、不正アクセスなどを防ぐためにも、通信テスト以外では必ずパスワードを設定しておきましょう。
「接続されているWebSocketセッション」では、OBSに接続しているスマホやPCなどが表示され、デバイスの接続状況や接続時間などが確認できます。
設定が完了したら下にある「OK」をクリックして設定を保存しましょう。
「WebSocket」機能は、さまざまなプログラム言語と連携が可能です。ここでは、Pythonを使ってOBSをWebSocket経由で操作する方法について紹介します。
OBSの上部メニューから「ツール >> WebSocketサーバー設定」を選択し、「WebSocketサーバーを有効にする」にチェックを入れます。
OBSとPythonを連携するためには、「obs-websocket-py」というPythonライブラリをインストールする必要があります。
はじめに、Pythonがインストールされていない場合は、Python公式サイトからインストールします。
次に、コマンドプロンプトまたはターミナルを開き、コマンド(pip install obs-websocket-py)を入力して「obs-websocket-py」をインストールします。
次に、OBSにPythonを使って接続するためのコードを書いていきます。
VSCodeやPyCharmなどのエディタで新しいPythonファイルを作成します。
接続用のコードを入力してOBSと接続します。
# 必要なライブラリのインポート
from obswebsocket import obsws, requests
# 接続するための情報を設定します
host = "localhost" # 同じPCならlocalhost
port = 4444 # WebSocketサーバー設定で確認したポート番号
password = "your_password" # WebSocketサーバー設定で設定したパスワード
# OBSに接続
ws = obsws(host, port, password)
ws.connect() # WebSocket接続を開始
print("OBSに接続しました!")
# ここにOBSを操作するコードを書く
# OBSの操作が完了したら接続を切断
ws.disconnect()
print("OBSから切断しました。")
OBSに接続したら、Pythonコードでさまざまな操作が可能になります。例えば、シーンのリストを取得する、特定のソースをオン・オフするなどができます。
OBSに登録されているシーンのリストを取得し、表示するコードは以下の通りです。
# シーンのリストを取得して表示
scenes = ws.call(requests.GetSceneList())
if scenes.status:
print("シーン一覧:")
for scene in scenes.getScenes():
print(f"シーン名: {scene['name']}")
シーン内に含まれるソース(例: ウィンドウキャプチャ、画像など)のリストを取得します。
# シーンの名前を指定して、ソースのリストを取得
scene_name = "シーン名" # 取得したシーン名を使用
sources = ws.call(requests.GetSceneItemList(sceneName=scene_name))
print("ソース一覧:")
for source in sources.getSceneItems():
print(f"ソース名: {source['sourceName']}")
特定のソースをオン・オフ(表示・非表示)することも可能です。
# ソースのIDを取得
scene_name = "シーン名"
source_name = "ソース名"
source_id = ws.call(requests.GetSceneItemId(sceneName=scene_name, sourceName=source_name)).getSceneItemId()
# ソースを非表示にする(Trueなら表示、Falseなら非表示)
ws.call(requests.SetSceneItemEnabled(sceneName=scene_name, sceneItemId=source_id, sceneItemEnabled=False))
print(f"{source_name}を非表示にしました。")
StreamDeckはOBSの操作を簡単にする便利なデバイスですが、公式ソフトだけでは複数の機材を同時に操作することができません。
ここで「Companion」というソフトとWebsocketにより通信することで、StreamDeckからOBSだけでなく映像スイッチャー等の一括操作が可能になります。
Companion公式サイトにアクセスし、アカウント作成後にソフトをダウンロードします。
OBSの上部メニューから「ツール >> WebSocketサーバー設定」を開き、「WebSocketサーバーを有効にする」にチェックを入れます。
サーバー設定の「接続情報を表示」をクリックします。
「Companion」にOBSのWebSocket接続情報(IPやポート番号)を入力し、ネットワーク経由でOBSと連携させます。
以上の設定が完了すると、OBSだけでなく映像スイッチャーなど複数の機材も同時に操作可能になります。
今回は、OBSのWebSocket機能の設定方法や活用方法について解説しました。WebSocketを使うことで、OBSのリモート操作や複数のデバイスとの連携がスムーズになり、より効率的な配信環境を整えることができます。正しく設定して積極的に活用していきましょう。
配信で視聴者のコミュニティ形成をうまく行うことで、日常の配信をより面白いものにすることができます。
そのような観点で最もおすすめな配信ツールがCastCraftです。
大きく分けて、
の三つの機能があり、それぞれ下記のような目的があります。
機能 | 目的 |
---|---|
YouTube/Twitchコメビュ | 視聴者が配信に馴染めるようなやり取りをサポート |
Screen | 視聴者とのやり取りを視覚的に楽しくする |
収益化 | 視聴者を大事にする形で収益化する |
CastCraftのYouTube/Twitchコメビュで視聴者ごとにコメントを蓄積することで視聴者全員を覚えて、配信中のダッシュボードで分かりやすく情報を表示することで、視聴者が常連化していくためのやり取りをサポートします。
特定の条件に当てはまった視聴者やコメントに対して、Chatbotやリッチな画面演出で視聴者をインタラクティブに楽しませる仕組みも作ることができます。
さらに、視聴者を大事に定着させながらも配信活動のための収益を上げる仕組みも提供しています。
CastCraftは上記のような機能により、配信者(ゲーム配信者やVtuber)が視聴者との関係を深めることを手助けします。
導入している配信者さんの事例としては、
等がいらっしゃいます。
導入されたチャンネルの総登録者数は1.3億人を超えており、これまで120万回以上の配信で使われています。
CastCraftを活用すれば、視聴者との関係をより良いものに進化させ、あなたの配信コミュニティをより濃いものにできます。
日々の配信をより楽しくするために、ぜひ導入を検討されてみてください。