Movie Recorder

The MovieRecorder action controls Softron MovieRecorder through its REST API.

Use it to:

  • Start, stop, pause, and resume recordings
  • Split, lock, or unlock individual recording sources
  • Control multiple sources simultaneously
  • Change recording names, reel names, destinations, and recording settings
  • Update source metadata and metadata sets
  • Create, update, or delete scheduled recordings
  • Restore a MovieRecorder configuration
  • Send custom REST API requests

The action runs in the background and is available on iPhone, iPad, and Mac.

Warning: Recording commands are sent immediately. A phrase can start or stop active recordings without additional confirmation.

Requirements

You will need:

  • Action Phrase Core or higher
  • A Mac running Softron MovieRecorder
  • Remote Control enabled in MovieRecorder
  • Network access between your Action Phrase device and the MovieRecorder Mac
  • The MovieRecorder password, if password protection is enabled

Some endpoints depend on the installed MovieRecorder version and license. Consult the API documentation served by your copy of MovieRecorder for the exact capabilities available.

Enable Remote Control

On the Mac running MovieRecorder:

  1. Open MovieRecorder Settings.
  2. Enable Remote Control.
  3. Confirm the remote control port. The default is 8080.
  4. Optionally enable password protection and set a password.
  5. Restart MovieRecorder if prompted.

Softron documents 1234 as the default password, but you should replace it with a unique password.

You can verify that the REST API is available by opening the following address on the MovieRecorder Mac:

http://localhost:8080/api.html

This page contains the API documentation for your installed version of MovieRecorder.

MovieRecorder also provides a browser-based remote interface at:

http://localhost:8080/index.html

See Softron’s MovieRecorder remote-control guide and REST API guide for additional information.

Add the action

  1. Create or edit a phrase in Action Phrase.
  2. Add an action.
  3. Select MovieRecorder.
  4. Enter the connection information for the MovieRecorder Mac.
  5. Enter the MovieRecorder password, if required.
  6. Leave Use Raw Request disabled.
  7. Select a command.
  8. Enter the parameters required by the command.
  9. Add a JSON body when required.
  10. Save the phrase.

Connection settings

Setting Description
Host The IP address or hostname of the Mac running MovieRecorder.
Port The MovieRecorder REST API port. The default is 8080.
Use HTTPS Connect using HTTPS instead of HTTP. HTTPS must first be configured in MovieRecorder.

Example host values include:

192.168.1.50
movierecorder.local

If Action Phrase and MovieRecorder are running on the same Mac, you can use:

localhost

Do not use localhost from an iPhone, iPad, or another Mac. On those devices, localhost refers to the device itself. Use the MovieRecorder Mac’s IP address or hostname instead.

Authentication

MovieRecorder uses password-based authentication.

Enter the Remote Control password in the action’s Password field. Action Phrase adds it to the request URL as a passwordquery parameter.

For example:

/sources/0/record?password=YOUR_PASSWORD

MovieRecorder does not use the username and token authorization flow used by OnTheAir Video.

If password protection is disabled in MovieRecorder, leave the Password field empty.

Security: The password is included in the request URL. Use HTTPS when requests travel over an untrusted network, and avoid exposing request URLs in logs.

HTTPS

Recent MovieRecorder versions support HTTPS for the REST API. Softron introduced this capability in MovieRecorder 4.6.5.

The certificate must be named:

tls_certificate.p12

Place it in:

/Library/Application Support/Softron/MovieRecorder/Certificates/tls_certificate.p12

After configuring the certificate:

  1. Restart MovieRecorder.
  2. Enable HTTPS in MovieRecorder’s Remote Control settings.
  3. Enable Use HTTPS in the Action Phrase action.

When HTTPS is enabled in a Softron application, HTTP is disabled. The certificate must also be trusted by the device running Action Phrase.

See Softron’s HTTPS setup guide for additional instructions.

Test the connection

The MovieRecorder action does not currently have a separate Test Connection button.

To verify the connection:

  1. From the device running Action Phrase, open:
http://HOST:PORT/api.html
  1. Confirm that the MovieRecorder API page loads.
  2. If password protection is enabled, confirm that the password works with MovieRecorder’s browser interface.
  3. Test recording commands using a non-critical source or a test MovieRecorder configuration.

You can also use a raw GET request to the following endpoint:

/info

The action sends the request but does not display its response. Use MovieRecorder’s interface or Activity & Logs window to confirm activity.

Warning: Avoid testing Record, Stop, Restore Configuration, or gang-control commands against production sources.

Identifying objects

Several commands require an object ID or index.

Field Accepted value
Source ID or Index A MovieRecorder source ID or numerical index
Scheduled Recording ID or Index A scheduled recording ID or index
Metadata Set ID or Index A metadata-set ID or index

Using IDs is generally safer than using indexes because indexes can change when sources or other objects are reordered.

Source indexes and disabled sources

By default, a source index refers to the list of enabled MovieRecorder sources.

Enable Include Disabled Sources when the index should refer to every available source, including sources that are currently disabled.

When enabled, Action Phrase adds:

include_disabled_sources=YES

This parameter requires a MovieRecorder version that supports disabled-source indexing. Softron added it in MovieRecorder 4.6.5.

If you use a stable source ID instead of an index, source ordering is less likely to affect the command.

Source-control commands

These commands target an individual MovieRecorder source.

Command Required parameters Optional parameters Description
Record Source Source ID or Index Duration, End Date, Include Disabled Sources Starts recording the selected source.
Stop Source Source ID or Index Include Disabled Sources Stops the selected source.
Pause Source Source ID or Index Include Disabled Sources Pauses the selected source’s recording.
Resume Source Source ID or Index Include Disabled Sources Resumes the selected source’s recording.
Manual Split Source Source ID or Index Include Disabled Sources Closes the current recording segment and begins a new one.
Lock Source Source ID or Index Include Disabled Sources Locks the selected source.
Unlock Source Source ID or Index Include Disabled Sources Unlocks the selected source.

Record Source parameters

Parameter Required Description
Source ID or Index Yes The source to begin recording.
Duration (seconds) No Automatically stops the recording after the specified number of seconds.
End Date No Schedules the recording to stop at a particular date and time.
Include Disabled Sources No Includes disabled sources when resolving a numerical index.

The format accepted by End Date can vary by MovieRecorder version. Consult the api.html page served by your installed version.

If neither Duration nor End Date is provided, the recording continues until it is stopped manually or by another MovieRecorder event.

Source-setting commands

Source-setting commands use a JSON body to provide the new value or configuration.

Command Required parameters Body
Set Source Destinations Source ID or Index Destination configuration
Set Recording Name Source ID or Index Recording-name object
Set Reel Name Source ID or Index Reel-name object
Set Recording Settings Source ID or Index Recording-settings object
Set Source Metadata Source ID or Index Metadata object

Each command also supports Include Disabled Sources.

Set Recording Name example

{
  "recording_name": "Interview {{takeNumber}}"
}

The variable is replaced when the phrase runs. If takeNumber is 15, MovieRecorder receives:

{
  "recording_name": "Interview 15"
}

The JSON structures accepted by the other source-setting commands depend on your installed MovieRecorder version. Open the local API documentation to obtain the expected properties:

http://localhost:8080/api.html

Important: Action Phrase sends the JSON exactly as entered. It does not validate whether the properties are supported by MovieRecorder.

Gang-control commands

Gang-control commands operate on multiple MovieRecorder sources.

Command Description
Record Sources Starts recording on the targeted sources.
Pause Sources Pauses recording on the targeted sources.
Resume Sources Resumes recording on the targeted sources.
Stop Sources Stops recording on the targeted sources.

Each gang-control command provides:

Parameter Description
Include Disabled Sources Includes disabled sources when MovieRecorder resolves source indexes.
Selected Sources Only Limits the command to sources currently selected in MovieRecorder.
Body (JSON) An optional source list or other body supported by the installed endpoint.

When Selected Sources Only is enabled, Action Phrase adds:

selected_only=YES

Softron added this parameter in MovieRecorder 4.6.5.

If the Body field is empty, MovieRecorder determines the target sources from the query parameters and the endpoint’s default behavior.

Warning: Record Sources and Stop Sources can affect several recording channels simultaneously.

Scheduled recording commands

Scheduled-recording commands create or modify MovieRecorder’s recording schedule.

Command Required parameters Body Description
Create Scheduled Recording None Scheduled-recording JSON Creates a scheduled recording.
Update Scheduled Recording Scheduled Recording ID or Index Scheduled-recording JSON Updates an existing scheduled recording.
Delete Scheduled Recording Scheduled Recording ID or Index None Deletes an existing scheduled recording.

The JSON structure for scheduled recordings can change as scheduling features are added. Use the api.html page served by MovieRecorder to obtain the correct structure for your version.

MovieRecorder also provides a schedule interface at:

http://HOST:8080/schedule/index.html

This can help you create and inspect scheduled recordings before automating them.

Warning: Scheduled-recording changes can affect future production recordings. Confirm the source assignments, start time, duration, time zone, and recurrence settings before enabling the phrase.

Metadata commands

Set Source Metadata

Set Source Metadata updates the metadata assigned to a particular recording source.

Required fields:

  • Source ID or Index
  • Body (JSON)

Optional field:

  • Include Disabled Sources

The JSON must match the metadata structure expected by your installed MovieRecorder version.

Metadata-set commands

Command Required parameters Body Description
Create Metadata Set None Metadata-set JSON Creates a new metadata set.
Update Metadata Set Metadata Set ID or Index Metadata-set JSON Updates an existing metadata set.
Delete Metadata Set Metadata Set ID or Index None Deletes a metadata set.

Warning: Deleting a metadata set may affect sources or recording workflows that reference it.

Restore Configuration

Select Restore Configuration to restore MovieRecorder settings from a JSON configuration.

The command requires a Body (JSON) containing the configuration data accepted by MovieRecorder’s /restore_configurationendpoint.

Warning: Restoring a configuration can change sources, destinations, recording settings, and other operational properties. It can interrupt an active workflow. Test the configuration on a non-production system before using this command on an active recorder.

Configuration formats can change between MovieRecorder versions. Only restore configuration data compatible with the target installation.

JSON bodies

Commands that support a body show a Body (JSON) field.

Enter a valid JSON object or array, such as:

{
  "recording_name": "Camera A - {{take}}"
}

Action Phrase:

  • Resolves variables before sending the request
  • Sends the body as UTF-8
  • Automatically sets Content-Type to application/json for POST, PUT, and PATCH
  • Does not alter or validate the JSON structure

A JSON body is not sent with GET or DELETE requests.

If MovieRecorder does not perform the requested change, validate the JSON in a JSON editor and compare it with the endpoint description in api.html.

Variables

Text, number, path, and JSON fields support Action Phrase variables using double braces:

{{variableName}}

For example:

{
  "recording_name": "{{programName}} - Take {{takeNumber}}"
}

A source field can also use a variable:

{{sourceId}}

Variables are resolved when the phrase runs.

Variables can be used in:

  • Source, schedule, and metadata identifiers
  • Recording duration
  • End Date
  • Raw Path
  • Body JSON
  • Recording names and metadata values

The command and HTTP method selectors cannot be replaced with template variables.

Raw REST requests

Enable Use Raw Request to call a MovieRecorder endpoint that is not included in the built-in command list.

The following methods are supported:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE

Configure:

Setting Description
Method The HTTP method to send.
Raw Path A relative MovieRecorder API path or complete HTTP/HTTPS URL.
Body (JSON) An optional JSON request body.

Read application information

Method:

GET

Raw Path:

/info

Read the source list

Method:

GET

Raw Path:

/sources

Dynamic source example

Method:

GET

Raw Path:

/sources/{{sourceId}}/record?duration={{duration}}

If a password is configured, Action Phrase automatically adds it to the URL.

If the Raw Path already contains a password parameter, that value is preserved instead of adding the configured password a second time.

For POST, PUT, and PATCH requests, Action Phrase automatically sets:

Content-Type: application/json

Bodies are not sent with GET or DELETE requests.

Security: A complete URL in Raw Path overrides the configured host. Because the configured password may be appended to that URL, use complete URLs only for trusted MovieRecorder servers.

Raw requests can call read endpoints, but response data is not exposed as an Action Phrase variable.

Command responses

The MovieRecorder action is intended for control rather than data retrieval.

When a phrase runs, the action:

  1. Builds the REST request.
  2. Sends it to MovieRecorder.
  3. Does not display the returned status or JSON.
  4. Does not save the response into a variable.

Confirm successful commands in MovieRecorder’s interface or its Activity & Logs window.

Troubleshooting

The API page does not load

Confirm that:

  • MovieRecorder is running.
  • Remote Control is enabled.
  • The host and port are correct.
  • The Mac’s firewall allows incoming connections.
  • Both devices are on networks that can communicate.
  • You are not using localhost from a different device.
  • HTTP or HTTPS matches the MovieRecorder configuration.

The phrase runs, but nothing happens

Check that:

  • A command has been selected.
  • Every required identifier has a value.
  • The source, scheduled recording, or metadata-set identifier is correct.
  • The MovieRecorder version supports the endpoint.
  • The password is correct.
  • The JSON body is valid.
  • Required recording destinations are enabled and available.

If a required path parameter is missing, Action Phrase does not send the request.

The wrong source is controlled

Source indexes can change when sources are enabled, disabled, added, removed, or reordered.

Use a stable source ID when possible. If you intentionally use an index that includes disabled sources, enable Include Disabled Sources.

The password is rejected

Verify that:

  • Password protection is enabled in MovieRecorder.
  • The Action Phrase password matches the Remote Control password.
  • There are no leading or trailing spaces.
  • A manually supplied password parameter is not overriding the configured password.

If password protection is disabled, leave the action’s Password field empty.

A gang command affects the wrong sources

Check:

  • Whether Selected Sources Only is enabled
  • Which sources are selected in MovieRecorder
  • Whether disabled sources are included
  • Whether the Body contains an explicit source list
  • Whether the installed version supports the selected query parameters

A JSON command fails

Confirm that:

  • The body contains valid JSON.
  • Property names match the installed MovieRecorder API.
  • Strings are enclosed in double quotes.
  • There are no trailing commas.
  • IDs in the body refer to existing MovieRecorder objects.

Consult:

http://HOST:PORT/api.html

for the exact JSON structure expected by the endpoint.

HTTPS does not connect

Confirm that:

  • The installed MovieRecorder version supports HTTPS.
  • HTTPS is enabled in MovieRecorder.
  • Use HTTPS is enabled in Action Phrase.
  • The certificate is valid and has not expired.
  • The certificate hostname matches the configured host.
  • The certificate is trusted by the Action Phrase device.
  • You are not attempting to use HTTP after HTTPS has been enabled.

A scheduled recording occurs at the wrong time

Check the scheduled recording’s:

  • Start date
  • End date or duration
  • Time zone
  • Daylight-saving-time behavior
  • Recurrence settings
  • Assigned sources and destinations

Review the schedule in MovieRecorder’s web interface before relying on the phrase in production.

results matching ""

    No results matching ""