Control

Command Reference

Browse every DearScenario Player command and see its HTTP or OSC spelling.

This is the command catalog—the product’s control vocabulary. Stable playback commands are available through HTTP and OSC; extension and maintenance commands are HTTP-only.

AxisMeaning
CommandWhat the player does (play, load, seek, …)
TransportHow the message is delivered (HTTP / OSC)

Use the explorer below: pick a command, then use its declared HTTP or OSC surface. Stable HTTP uses POST /api/command; extensions use POST /api/extensions/command; maintenance uses POST /api/maintenance/command. The player API Debugger (debug.html) can switch those three surfaces and copy OSC only for the stable dictionary; extension and maintenance commands stay HTTP-only. There are not per-command REST paths such as /api/playback/play (deprecated example; not a supported route).

Machine-readable list of real HTTP routes (not the command catalog) is the static OpenAPI snapshot checked into web-console/openapi.json. The player does not serve runtime /api/openapi.json (removed).

Command catalog

Pick what to do, then switch how it is delivered. All transports reach the same player command.

Transport filter
loadStable playbackLoad media and stay paused at the cue pointHTTP 200 confirms validation and queue admission, not completed execution.Observe playback state with optional GET /api/status.
curl -X POST http://PLAYER:18290/api/command \
  -H 'Content-Type: application/json' \
  -d '{"cmd":"load","params":{"source":"C:/Videos/sample.mp4"}}'
{
  "additionalProperties": false,
  "properties": {
    "cue_position_sec": {
      "default": 0,
      "description": "Logical cue start position in seconds",
      "minimum": 0,
      "type": "number"
    },
    "loop": {
      "default": false,
      "description": "Loop from cue_position_sec for the loaded media",
      "type": "boolean"
    },
    "source": {
      "description": "media_root-relative readable file, absolute readable file, or http/https/rtmp URI",
      "maxLength": 4096,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "source"
  ],
  "type": "object"
}

Run the curl example from your controller, or select the matching command surface in the Player API Debugger. The Player does not allow cross-origin requests from this website.

This command uses POST /api/command. There are no per-command REST paths.

Envelope (JSON transports)

{ "cmd": "play", "params": {} }
  • cmd — required
  • params — optional object (omit or {})

Unknown fields such as request_id and expect are rejected.

Command names, parameter schemas, internal execution classification, error codes, and supported transports come from CommandRegistry. The same metadata is dumped at build time to web-console/api_spec.json. The player does not serve runtime /api/spec (removed).

Generated SDK helpers such as client.play() should wrap this envelope; they must not invent dedicated HTTP routes.