レガシー録画 API¶
バージョン 2025.2.0 で削除。
録画されたファイルは sora.conf の archive_dir に指定したディレクトリに置かれます。
StartRecording¶
- x-sora-target:
Sora_20161101.StartRecording
指定したチャネルの録画を開始します。
クラスター機能利用時には、クラスター内のどのノードで実行しても開始された録画情報はすべてのノードで共有されます。
キー |
型 |
|---|---|
channel_id |
string |
expire_time |
integer |
split_duration (オプション) |
integer |
split_only (オプション) |
boolean |
metadata (オプション) |
JSONValue |
expire_timeの範囲は0から86400までで、秒数を指定してください。expire_timeを0に指定した場合、録画の期限が無くなります- 指定できる最大値はデフォルトで
86400で recording_max_expire_time に指定した値で変わります
split_onlyはtrueかfalseを指定してください。指定しない場合はfalseが指定されますsplit_onlyをtrueに指定する場合はexpire_timeは0を指定する必要がありますsplit_onlyをtrueに指定する場合はsplit_durationを指定する必要がありますsplit_durationを指定する範囲は1から86400までで、秒数を指定してください- 指定できる最大値はデフォルトで
86400で、 recording_max_split_duration に指定した値で変わります
- 指定できる最大値はデフォルトで
- この
metadataはrecording.reportウェブフックやレポートファイルに含まれるようになります。
expire_time が 0¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.StartRecording" \
--json '{"channel_id":"sora","expire_time":0}' \
| jq .
{
"channel_id": "sora",
"expire_time": 0,
"recording_id": "C0YTCRZM715BKATBXWFPKTYGRM"
}
expire_time が 3600¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.StartRecording" \
--json '{"channel_id":"sora","expire_time":3600}' \
| jq .
{
"channel_id": "sora",
"expire_time": 3600,
"recording_id": "C0YTCRZM715BKATBXWFPKTYGRM"
}
split_only が true¶
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.StartRecording" \
--json '{"channel_id":"sora","expire_time":0,"split_duration":3600,"split_only":true}' \
| jq .
{
"channel_id": "sora",
"expire_time": 0,
"recording_id": "MK4J54QBGS4ES0MCSZMF6C9M9M",
"split_duration": 3600,
"split_only": true
}
エラー¶
- "STARTED-RECORDING"
- 指定したチャネル ID で、すでに録画が開始している
$ curl -sS \ -X POST \ http://127.0.0.1:3000/ \ -H "x-sora-target: Sora_20161101.StartRecording" \ --json '{"channel_id":"sora","expire_time":3600}' \ | jq . { "error_type": "STARTED-RECORDING" } - "NOT-CLUSTER-MAJORITY"
- クラスターで過半数以下のグループに所属している
StopRecording¶
- x-sora-target:
Sora_20161101.StopRecording
指定したチャネルの録画を停止します。
この API は非同期です。200 が返ってきた場合でも録画ファイルや録画メタデータファイルが生成されていることを保証しません。 イベントウェブフックの archive.available または event-webhook-recording.report の通知を利用してください。
キー |
型 |
|---|---|
channel_id |
string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.StopRecording" \
--json '{"channel_id":"sora"}' \
| jq .
{
"channel_id": "sora"
}
エラー¶
- "NOT-STARTED-RECORDING"
- 指定したチャネルの録画が開始されていない
- "NOT-CLUSTER-MAJORITY"
- クラスターで過半数以下のグループに所属している
GetStartedRecording¶
- x-sora-target:
Sora_20161101.GetStartedRecording
録画が有効かどうかを確認します。
キー |
型 |
|---|---|
channel_id |
string |
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.GetStartedRecording" \
--json '{"channel_id":"sora"}' \
| jq .
{
"channel_id": "sora",
"expire_time": 3600,
"expired_at": 1479563964,
"created_at": 1479560364
}
エラー¶
- "NOT-STARTED-RECORDING"
- 指定したチャネルの録画が開始されていない
$ curl -sS \ -X POST \ http://127.0.0.1:3000/ \ -H "x-sora-target: Sora_20161101.GetStartedRecording" \ --json '{"channel_id":"sora"}' \ | jq . { "error_type": "NOT-STARTED-RECORDING" } - "NOT-CLUSTER-MAJORITY"
- クラスターで過半数以下のグループに所属している
ListStartedRecording¶
- x-sora-target:
Sora_20161101.ListStartedRecording
録画が行われているチャネル一覧を取得します。
クラスター機能利用時には、クラスター内のどのノードで実行しても、クラスター内で有効な録画の一覧を取得できます。
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.ListStartedRecording" \
| jq .
[
{
"channel_id": "sora",
"created_at": 1638234656,
"expire_time": 3600,
"expired_at": 1638238256,
"recording_id": "WWZ61PT4GS03F80F39MCPVSEQR",
"split_only": false
},
{
"channel_id": "zakuro",
"created_at": 1638234654,
"expire_time": 3600,
"expired_at": 1638238254,
"recording_id": "Z60BJP5YDN4PD0D7RGM4TFEE48",
"split_only": false
}
]
エラー¶
- "NOT-CLUSTER-MAJORITY"
- クラスターで過半数以下のグループに所属している
ListArchiving¶
- x-sora-target:
Sora_20161101.ListArchiving
現在録画中の状態を取得します。
$ curl -sS \
-X POST \
http://127.0.0.1:3000/ \
-H "x-sora-target: Sora_20161101.ListArchiving" \
| jq .
[
{
"audio": {
"codec_type": "OPUS"
},
"channel_id": "sora",
"client_id": "C0YTCRZM715BKATBXWFPKTYGRM",
"bundle_id": "C0YTCRZM715BKATBXWFPKTYGRM",
"connection_id": "C0YTCRZM715BKATBXWFPKTYGRM",
"seconds": 146,
"video": {
"bit_rate": 1000,
"codec_type": "VP9",
"vp9_params": { "profile_id": 0 }
}
}
]
- seconds は録画を開始してからの経過時間(秒)です
- video が設定されていない場合は
"video": falseという値が入ってきます - audio が設定されていない場合は
"audio": falseという値が入ってきます