obsws-python(OBS WebSocket v5準拠)を使って録画開始・停止する方法を解説します。
その他にも知りたい方はコチラの記事を見てください。
前提条件、環境
- OBS Studio:28.0以降
- Python:3.9以上
- obsws-python
- OBS WebSocketの接続設定
録画開始と録画終了のコード
実際にPythonで録画開始と録画終了するためのコードは以下となります。
# 録画開始
ws.base_client.req("StartRecord")
# 録画終了
ws.base_client.req("StopRecord")
OBS WebSocketの接続を含めた一通りのコードは以下となります。
import obsws_python as obsws
host = "localhost"
port = 4455
password = "**********"
# OBS WebSocketクライアントの作成
ws = obsws.ReqClient(host=host, port=port, password=password)
# 録画開始
ws.base_client.req("StartRecord")
# 録画停止
ws.base_client.req("StopRecord")
録画自動化のサンプル
録画自動化のサンプルコードです。
実用化させるためには以下を修正してください。
- ループの終了条件を修正
- “録画開始の確認”や”録画終了の確認”を見直し
# OBS WebSocketのインポート
import obsws_python as obsws
# OBS接続情報
host = "localhost"
port = 4455
password = "**********"
# OBS WebSocketクライアントの作成
ws = obsws.ReqClient(host=host, port=port, password=password)
# 録画フラグ
record_flg = False
# 録画の開始と停止を繰り返す
while(True):
# 録画開始の確認
if record_flg == False and input("録画開始しますか? y/n: ") == "y":
# 録画開始
ws.base_client.req("StartRecord")
record_flg = True
# 録画停止の確認
if record_flg == True and input("録画終了しますか? y/n: ") == "y":
# 録画停止
ws.base_client.req("StopRecord")
record_flg = False
ws.disconnect()
公式ドキュメント
録画開始と録画終了の公式ドキュメントは以下にあります。
録画終了時にはレスポンスにファイルパスが返却されます。
OBS WebSocket v5だとレスポンスが統一されていて、responseDataにファイルパスが格納されます。
StopRecordのレスポンスは以下の通りです。
{'requestId': 603, 'requestStatus': {'code': 100, 'result': True}, 'requestType': 'StopRecord', 'responseData': {'outputPath': '録画ファイルのフルパス'}}
実際の使い方としてはStopRecordのレスポンスを受け取り、ファイルパスを抜き出す必要があります。
responseDataは辞書(dict)型で返却されるので、以下のように取得しましょう。
# 録画停止
res = ws.base_client.req("StopRecord")
print("録画ファイルのパス:", res["responseData"]["outputPath"])


コメント