Skip to main content
The Recorder (recorder) node publishes start_recording / stop_recording to a twin’s webrtc-command MQTT topic so the media service persists the already-running WebRTC stream to its configured bucket. The node never carries the media itself — the camera or microphone must already be streaming.
Palette category: Actuation. Edge-only. Toggles persistence on the media service; it does not create the stream.
The Recorder node, the audio widget’s REC button in the environment view, and the microphone driver’s fallback relay all publish the exact same payload on cyberwave/twin/{uuid}/webrtc-command. The three paths converge on the same media-service handler and the same webrtc-command/status ACK, so you can mix and match without changing the consumer.

Inputs

FieldTypeRequiredDescription
twin_uuidstringYesTwin whose stream should be recorded. Defaults to the workflow’s bound twin.
commandstringYesstart_recording or stop_recording. Wire from an upstream Conditional / Fuzzy Matcher to toggle dynamically, or pin a literal in the inspector.
frontend_typestringYesvideo or audio. The media service treats this as audio when unset.
sensorstringYesSensor identifier (e.g. camera, mic). Required by the media-service start_recording handler — commands without it are refused.
stream_sourcestringNoOptional producer hint (e.g. camera).
stream_instance_idstringNoOptional disambiguator when a twin publishes multiple streams under the same sensor.

MQTT payload

Published to {prefix}cyberwave/twin/{twin_uuid}/webrtc-command with QoS 1:
{
  "command": "start_recording",
  "source_type": "edge",
  "sensor": "camera",
  "frontend_type": "video",
  "stream_source": "camera",
  "stream_instance_id": "primary"
}
To stop, send the same payload with "command": "stop_recording". Status is published back by the media service on {prefix}cyberwave/twin/{twin_uuid}/webrtc-command/status.

Outputs

FieldTypeDescription
commandstringRecording command that was published.
topicstringFull MQTT topic the command was published to.
payloadobjectPayload sent to the media service.
sentbooleanWhether the broker accepted the publish.

Execution targets

TargetBehavior
EdgeEmitter renders a client.mqtt.publish against the twin-scoped webrtc-command topic in the generated worker.
CloudNot supported — the node raises at compile time for cloud workflows.