OBSでのWebSocketの使い方|設定から接続方法まで解説

最終更新 2024-10-12
01-WebSocketの設定方法

目次

OBSをさらに便利にするWebSocket

OBSでは、WebSocket機能を活用することで、OBSのリモート操作や自動化、外部デバイスやプログラムとの接続などができるようになります。

本記事では、OBSでのWebSocketの設定方法や具体的な活用方法について詳しく解説します。

WebSocketとは?

WebSocketとは、ウェブアプリケーションがサーバーとブラウザ(または他のクライアント)間でリアルタイムの双方向通信を行うための技術標準です。このプロトコルは、単一の長期間開かれた接続を通じて、データの片道または双方向の即時送受信を可能にします。

OBSでは、この技術を使うことで、別のデバイスやプログラムからシーンの切り替えや録画の開始などを遠隔操作できるようになります。

例えば、複数のカメラや音声を切り替えたり、映像ソースを自動的に表示・非表示にしたりするなど、さまざまな操作を効率的に実行できるようになります。

OBS WebSocketの導入方法(注意)

OBSのバージョン28以降では、WebSocketでの通信機能が標準機能として搭載されているため、別途プラグインをインストールする必要はありません。

もしバージョン28以降でプラグインをインストールしてしまうと、WebSocket機能が正しく動作しなくなる可能性があるので注意が必要です。
誤ってプラグインをインストールしてしまった場合は、OBSを再インストールすることで、元の状態に戻すことができます。

OBSの再インストール方法|インストール後の設定についても合わせて解説

OBSでのWebSocketの設定方法

上部メニューから「ツール >> WebSocketサーバー設定」に進み、プラグイン設定にある「WebSocketサーバーを有効にする」にチェックを入れます。

01-WebSocketの設定方法

次に、サーバー設定でサーバーポートとサーバーパスワードを設定します。
「サーバーポート」はデフォルトで4455が設定されています。このままでも問題ありませんが、他のアプリで同じポートを使っている場合は別の番号に変更しましょう。
02-WebSocketサーバー設定1

「認証を有効にする」にチェックを入れると「サーバーパスワード」の生成が可能になります。
03-WebSocketサーバー設定2

パスワードを生成せずに接続することもできますが、不正アクセスなどを防ぐためにも、通信テスト以外では必ずパスワードを設定しておきましょう。

「接続されているWebSocketセッション」では、OBSに接続しているスマホやPCなどが表示され、デバイスの接続状況や接続時間などが確認できます。
04-WebSocketサーバー設定3

設定が完了したら下にある「OK」をクリックして設定を保存しましょう。

WebSocketの具体的な活用方法

外部プログラムとの連携(Python)

「WebSocket」機能は、さまざまなプログラム言語と連携が可能です。ここでは、Pythonを使ってOBSをWebSocket経由で操作する方法について紹介します。

手順1:WebSocket機能の有効化

OBSの上部メニューから「ツール >> WebSocketサーバー設定」を選択し、「WebSocketサーバーを有効にする」にチェックを入れます。
09-WebSocketの有効化

手順2:Pythonで必要なライブラリをインストール

OBSとPythonを連携するためには、「obs-websocket-py」というPythonライブラリをインストールする必要があります。

はじめに、Pythonがインストールされていない場合は、Python公式サイトからインストールします。
10-Pythonのインストール

次に、コマンドプロンプトまたはターミナルを開き、コマンド(pip install obs-websocket-py)を入力して「obs-websocket-py」をインストールします。
11-obs-websocket-pyのインストール

手順3:PythonコードでOBSに接続する

次に、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から切断しました。")  

手順4:OBSの操作をPythonで行う

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とCompanionで複数の機材を操作

StreamDeckはOBSの操作を簡単にする便利なデバイスですが、公式ソフトだけでは複数の機材を同時に操作することができません。

Stream Deckの使い方を詳しく解説!ダウンロードから設定方法、配信者におすすめのプラグインもあわせて紹介

ここで「Companion」というソフトとWebsocketにより通信することで、StreamDeckからOBSだけでなく映像スイッチャー等の一括操作が可能になります。

手順1:Companionのインストール

Companion公式サイトにアクセスし、アカウント作成後にソフトをダウンロードします。
05-Companionのインストール

手順2:WebSocket機能を有効にする

OBSの上部メニューから「ツール >> WebSocketサーバー設定」を開き、「WebSocketサーバーを有効にする」にチェックを入れます。
06-WebSocketの有効化

手順3:接続情報を表示する

サーバー設定の「接続情報を表示」をクリックします。
07-接続情報を表示

手順4:Companionに入力

「Companion」にOBSのWebSocket接続情報(IPやポート番号)を入力し、ネットワーク経由でOBSと連携させます。
08-Companionに入力

以上の設定が完了すると、OBSだけでなく映像スイッチャーなど複数の機材も同時に操作可能になります。

OBSでWebSocket機能を活用しよう!

今回は、OBSのWebSocket機能の設定方法や活用方法について解説しました。WebSocketを使うことで、OBSのリモート操作や複数のデバイスとの連携がスムーズになり、より効率的な配信環境を整えることができます。正しく設定して積極的に活用していきましょう。

OBS配信をより面白くするために

配信で視聴者のコミュニティ形成をうまく行うことで、日常の配信をより面白いものにすることができます。
そのような観点で最もおすすめな配信ツールがCastCraftです。

大きく分けて、  

  • 視聴者を覚えるYouTube/Twitchコメビュ
  • 配信画面演出のScreen
  • 収益化のための機能

の三つの機能があり、それぞれ下記のような目的があります。

機能 目的
YouTube/Twitchコメビュ 視聴者が配信に馴染めるようなやり取りをサポート
Screen 視聴者とのやり取りを視覚的に楽しくする
収益化 視聴者を大事にする形で収益化する

CastCraftのYouTube/Twitchコメビュで視聴者ごとにコメントを蓄積することで視聴者全員を覚えて、配信中のダッシュボードで分かりやすく情報を表示することで、視聴者が常連化していくためのやり取りをサポートします。
CRM候補1

特定の条件に当てはまった視聴者やコメントに対して、Chatbotやリッチな画面演出で視聴者をインタラクティブに楽しませる仕組みも作ることができます。
ペンライト

さらに、視聴者を大事に定着させながらも配信活動のための収益を上げる仕組みも提供しています。
収益管理

CastCraftは上記のような機能により、配信者(ゲーム配信者やVtuber)が視聴者との関係を深めることを手助けします。

導入している配信者さんの事例としては、

等がいらっしゃいます。

導入されたチャンネルの総登録者数は1.3億人を超えており、これまで120万回以上の配信で使われています。

CastCraftを活用すれば、視聴者との関係をより良いものに進化させ、あなたの配信コミュニティをより濃いものにできます。
日々の配信をより楽しくするために、ぜひ導入を検討されてみてください。

CastCraftのダウンロードページ(利用無料)