録画 (セッション単位) API¶
録画されたファイルは sora.conf の archive_dir に指定したディレクトリに置かれます。
StartRecording¶
バージョン 2023.2.0 で追加。
- x-sora-target:
Sora_20231220.StartRecording
指定したチャネルの録画を開始します。
クラスター機能利用時には、クラスター内のどのノードで実行しても開始された録画情報はすべてのノードで共有されます。
キー |
型 |
|---|---|
channel_id |
string |
expire_time (オプション) |
integer |
split_duration (オプション) |
integer |
split_only (オプション) |
boolean |
metadata (オプション) |
JSONValue |
format (オプション) |
string |
expire_timeを指定しない場合は未指定になりますexpire_timeを指定しない場合、録画の期限が無くなります
expire_timeを指定する範囲は1から86400までで、秒数を指定してください- 指定できる最大値はデフォルトで
86400で recording_max_expire_time に指定した値で変わります
- 指定できる最大値はデフォルトで
split_onlyはtrueかfalseを指定してください。指定しない場合はfalseが指定されますsplit_onlyをtrueに指定する場合はsplit_durationを指定する必要がありますsplit_durationを指定する範囲は1から86400までで、秒数を指定してください- 指定できる最大値はデフォルトで
86400で、 recording_max_split_duration に指定した値で変わります
- 指定できる最大値はデフォルトで
metadataはrecording.reportウェブフックやレポートファイルにrecording_metadataとして含まれるようになります。formatはwebmまたはmp4を指定してくださいformatが未指定の場合は default_recording_format の値が利用されます- 映像コーデックが H.265 の場合
formatにmp4を指定しない場合、録画が行われません
一括録画を行いたい場合¶
split_onlyをfalseに指定するか、未指定にしてください
分割録画を行いたい場合¶
split_onlyをtrueに指定してくださいsplit_durationを指定してください
一括&分割録画を行いたい場合¶
sora.confの recording_dual_output をtrueに指定してくださいsplit_onlyをfalseに指定するか、未指定にしてくださいsplit_durationを指定してください
expire_time が指定無し¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20231220.StartRecording" \
--json '{"channel_id":"sora"}' \
| jq .
{
"channel_id": "sora",
"expire_time": 0,
"session_id": "96D7CQDEMS5CHCKDX46REWWTX4",
"recording_id": "C0YTCRZM715BKATBXWFPKTYGRM"
}
expire_time が 3600¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20231220.StartRecording" \
--json '{"channel_id":"sora","expire_time":3600}' \
| jq .
{
"channel_id": "sora",
"expire_time": 3600,
"session_id": "96D7CQDEMS5CHCKDX46REWWTX4",
"recording_id": "C0YTCRZM715BKATBXWFPKTYGRM"
}
split_only が true¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20231220.StartRecording" \
--json '{"channel_id":"sora","split_duration":3600,"split_only":true}' \
| jq .
{
"channel_id": "sora",
"expire_time": 0,
"session_id": "96D7CQDEMS5CHCKDX46REWWTX4",
"recording_id": "MK4J54QBGS4ES0MCSZMF6C9M9M",
"split_duration": 3600,
"split_only": true
}
エラー¶
- "STARTED-RECORDING"
- 指定したチャネル ID で、すでに録画が開始している
- "NOT-CLUSTER-MAJORITY"
- クラスターで半数以下のグループに所属している
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20231220.StartRecording" \
--json '{"channel_id":"sora","expire_time":3600}' \
| jq .
{
"error_type": "STARTED-RECORDING"
}
StopRecording¶
バージョン 2023.2.0 で追加。
- x-sora-target:
Sora_20231220.StopRecording
指定したチャネルの録画を停止します。
この API は非同期です。200 が返ってきた場合でも録画ファイルや録画メタデータファイルが生成されていることを保証しません。 イベントウェブフックの archive.available または recording.report の通知を利用してください。
キー |
型 |
|---|---|
channel_id |
string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20231220.StopRecording" \
--json '{"channel_id":"sora"}' \
| jq .
{
"channel_id": "sora",
"session_id": "96D7CQDEMS5CHCKDX46REWWTX4",
"recording_id": "C0YTCRZM715BKATBXWFPKTYGRM"
}
エラー¶
- "NOT-STARTED-RECORDING"
- 指定したチャネルの録画が開始されていない
- "NOT-CLUSTER-MAJORITY"
- クラスターで半数以下のグループに所属している