Record

Start Recording

Start recording the stream. If the requested stream does not exist on the server, this recording task is reserved. And when the stream is created, it automatically starts recording.

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:startRecordhashtag
Authorization: Basic {credentials}

# Authorization
    Credentials for HTTP Basic Authentication created with <AccessToken>

Body : Single file recording

{

    "id": "{unique_record_id}",
    "stream": {
        "name": "{output_stream_name}",
        "variantNames": []
    }
}

# id (required)
    unique ID to identify the recording task
    
# stream (required)
    ## name (required)
        output stream name
        
    ## variantNames (optional)
        Array of track names to record. If empty, all tracks will be 
        recorded. This value is Encodes.[Video|Audio|Data].Name in the
        OutputProfile setting.

Body : Interval based split recording

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "interval": 60000,
  "segmentationRule": "discontinuity"
}

# interval (optional)
    Recording time per file (milliseconds). Not allowed to use with schedule
    
# segmentationRule (optional)
    Define the policy for continuously or discontinuously timestamp 
    in divided recorded files.
    
    continuity : timestamp of recorded files is continuous
    discontinuity(default) : timestamp starts anew for each recorded file

Body : Schedule based split recording

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "schedule" : "0 */1 *"
  "segmentationRule": "continuity"
}

# schedule (optional)
    <Second Minute Hour> format, same as crontab syntax
    "10 */1 *" means to output the recorded file every 10 minutes of the hour
    Not allowed to use with schedule

Body : Recoding file path setting

{
  "id": "{unique_record_id}",
  "stream": {
    "name": "{output_stream_name}"
  },
  "filePath" : "/path/to/file_name.mp4"
  "infoPath": "/path/to/file_name.xml"
}

# filePath(optional)
    The path for recorded files can be specified. 
    Please refer to the Recording Guide for details on using macros

# infoPath(optional)
    The path for recorded infomation file can be specified. 
    Please refer to the Recording Guide for details on using macros

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Content-Type: application/json

Body

Please note that responses are incorrectly returned in Json array format for version 0.15.3 and earlier.

{
    "statusCode": 200,
    "message": "OK",
    "response": {
        "id": "2",
        "state": "ready",
        "vhost": "default",
        "app": "app",
        "stream": {
            "name": "stream",
            "trackIds": [],
            "variantNames": []
        },
        "interval": 60000,
        "segmentationRule": "discontinuity",
        "createdTime": "2023-03-15T21:15:20.113+09:00",
    }
}

# statusCode
	Same as HTTP Status Code
# message
	A human-readable description of the response code
# response
	Created recording task information
chevron-right400 Bad Requesthashtag

Invalid request.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

WWW-Authenticate: Basic realm=”OvenMediaEngine”

Body

{
    "message": "[HTTP] Authorization header is required to call API (401)",
    "statusCode": 401
}
chevron-right404 Not Foundhashtag

The given vhost or application name could not be found.

Body

chevron-right409 Conflicthashtag

duplicate ID

Stop Recording

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:stopRecordhashtag

Header

Body

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Body

chevron-right400 Bad Requesthashtag

Invalid request.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

Body

chevron-right404 Not Foundhashtag

The given vhost/application name or id of recording task could not be found.

Body

Get Recording State

Request

chevron-rightPOST /v1/vhosts/{vhost}/apps/{app}:recordshashtag

Header

Body

Responses

chevron-right200 Okhashtag

The request has succeeded

Header

Body

The response is Json array format.

chevron-right401 Unauthorizedhashtag

Authentication required

Header

Body

chevron-right404 Not Foundhashtag

The given vhost or application name could not be found.

Body

State of Recording

The Recording task has the state shown in the table below. You can get the state in the Start Recording and Get Recording State API response.

Ready

Preparing to start or waiting for the stream to be created.

Started

In Progress

Stopping

Is stopping

Stopped

Stopped

Error

Error

Last updated

Was this helpful?