Summary

Media show control server. HTTP REST API on port 3019 for playback, timeline, cue, and input control. Secondary node management API on port 3017. SSE/NDJSON event streams for real-time state. No authentication required.

Transport

protocols:
  - http
addressing:
  base_url: http://{host}:3019
auth:
  type: none  # inferred: source states no auth required

Traits

# UNRESOLVED: powerable - no power commands in source
- routable   # timeline/cue routing commands present
- queryable  # state query endpoints present
- levelable # input variables (brightness, volume) present

Actions

- id: play_all
  label: Play All Timelines
  kind: action
  params: []

- id: play_timeline
  label: Play Timeline
  kind: action
  params:
    - name: timeline_id
      type: integer
      description: Numeric timeline ID

- id: pause_timeline
  label: Pause Timeline
  kind: action
  params:
    - name: timeline_id
      type: integer
      description: Numeric timeline ID

- id: stop_timeline
  label: Stop Timeline
  kind: action
  params:
    - name: timeline_id
      type: integer
      description: Numeric timeline ID

- id: jump_to_time
  label: Jump to Time
  kind: action
  params:
    - name: timeline_id
      type: integer
      description: Numeric timeline ID
    - name: time
      type: integer
      description: Time in milliseconds
    - name: state
      type: string
      description: Optional; "play" or "pause" (default "pause")

- id: jump_to_cue
  label: Jump to Cue
  kind: action
  params:
    - name: timeline_id
      type: integer
      description: Numeric timeline ID
    - name: cue_id
      type: integer
      description: Numeric cue ID
    - name: state
      type: string
      description: Optional; "play" or "pause" (default "pause")

- id: load_show
  label: Load Show
  kind: action
  params:
    - name: show_json
      type: object
      description: Show JSON body

- id: load_showfile
  label: Load Show File
  kind: action
  params:
    - name: data
      type: string
      description: Binary .watch data
    - name: showName
      type: string
      description: Optional show name query param

- id: set_inputs
  label: Set Multiple Inputs
  kind: action
  params:
    - name: inputs
      type: array
      description: JSON array of {key, value, duration}

- id: set_input
  label: Set One Input
  kind: action
  params:
    - name: key
      type: string
      description: Input variable key
    - name: value
      type: number
      description: Value to apply
    - name: duration
      type: integer
      description: Optional interpolation duration in ms

- id: set_cue_group_state_by_id
  label: Set Cue Group State by IDs
  kind: action
  params:
    - name: updates
      type: object
      description: JSON map groupId -> variantId

- id: set_cue_group_state_by_name
  label: Set Cue Group State by Names
  kind: action
  params:
    - name: updates
      type: object
      description: JSON map groupName -> variantName

- id: hittest
  label: Hit Test Stage Coordinates
  kind: action
  params:
    - name: cues
      type: array
      description: Array of cue ID strings
    - name: x
      type: number
      description: X coordinate
    - name: y
      type: number
      description: Y coordinate

- id: send_msc
  label: Send MIDI Show Control
  kind: action
  params:
    - name: commands
      type: array
      description: JSON array of MSC commands

- id: shutdown_node
  label: Shutdown Node OS
  kind: action
  params:
    - name: node_host
      type: string
      description: Target node host (port 3017)
    # UNRESOLVED: node identification method not specified

- id: reboot_node
  label: Reboot Node OS
  kind: action
  params:
    - name: node_host
      type: string
      description: Target node host (port 3017)

- id: restart_services
  label: Restart WATCHOUT Services
  kind: action
  params:
    - name: node_host
      type: string
      description: Target node host (port 3017)
- id: set_cue_group_state_by_id_single
  label: Set One Cue Group State by IDs
  kind: action
  params:
    - name: group_id
      type: integer
      description: Numeric cue group ID (path param)
    - name: variant_id
      type: integer
      description: Numeric variant ID to activate (path param)

- id: set_cue_group_state_by_name_single
  label: Set One Cue Group State by Names
  kind: action
  params:
    - name: group_name
      type: string
      description: Cue group name (path param)
    - name: variant_name
      type: string
      description: Variant name to activate (path param)

Feedbacks

- id: playback_state
  label: Playback State
  type: object
  description: Playback state for all timelines (GET /v0/state)

- id: show_state
  label: Show State
  type: object
  description: Full current show JSON (GET /v0/show)

- id: timeline_list
  label: Timeline List
  type: array
  description: List of timelines with IDs and names (GET /v0/timelines)

- id: cue_list
  label: Cue List
  type: array
  description: List of cues for a timeline (GET /v0/cues/{timeline_id})

- id: input_specs
  label: Input Variable Specs
  type: array
  description: All input variable specs with keys and ranges (GET /v0/inputs)

- id: cue_group_state_by_id
  label: Cue Group State by IDs
  type: object
  description: Cue set states by group IDs (GET /v0/cue-group-state/by-id)

- id: cue_group_state_by_name
  label: Cue Group State by Names
  type: object
  description: Cue set states by group names (GET /v0/cue-group-state/by-name)

- id: system_info
  label: System Info
  type: object
  description: Build/version info (GET /info)

- id: hittest_result
  label: Hit Test Result
  type: object
  description: Cues containing a stage point (POST /v0/hittest)

Variables

# Input variables: brightness, volume, etc.
# Key and range defined per SHOW in WATCHOUT
# UNRESOLVED: specific variable keys not stated in source - defined per show

Events

# SSE/NDJSON streams on port 3019
- id: PlaybackState
  description: Timeline playback state changes
- id: Inputs
  description: Input variable changes
- id: ShowRevision
  description: Show revision updates
- id: CueVisibility
  description: Cue visibility changes
- id: TimelineCountdowns
  description: Timeline countdown status (v2 streams only)
  properties:
    - name: status
      type: string
      enum: [Pre, Last10, Last5, Reached]

Macros

# UNRESOLVED: no explicit multi-step macros in source

Safety

confirmation_required_for:
  - shutdown_node  # shuts down target node OS
  - reboot_node    # reboots target node OS
interlocks: []
# UNRESOLVED: no interlock procedures stated in source

Notes

HTTP API ports: 3019 (operative), 3017 (node management), 3023 (asset manager). Port 3017 endpoints: shutdown, reboot, restart services. Stream versions: SSE v0/v1/v2, NDJSON v0/v1/v2. Timeline and cue IDs retrieved via "Copy ID" in Producer. Hit testing only works with visual media cues without conditional rendering. HTTP Output cues send outbound requests — separate from inbound control API.

Provenance

source_domains:
  - docs.dataton.com
  - knowledge.dataton.com
source_urls:
  - https://docs.dataton.com/watchout-7/external_protocol/external_protocol.html
  - https://knowledge.dataton.com/migration/knowledge/watchout-display-control-protocol
  - https://docs.dataton.com/watchout-7/
retrieved_at: 2026-04-29T23:27:46.172Z
last_checked_at: 2026-06-03T06:35:48.191Z

Verification Summary

verdict: verified
checked_at: 2026-06-03T06:35:48.191Z
matched_actions: 19
action_count: 19
confidence: medium
summary: "All spec actions verified against source endpoint table (10 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "no power on/off commands in source"
- "powerable - no power commands in source"
- "node identification method not specified"
- "specific variable keys not stated in source - defined per show"
- "no explicit multi-step macros in source"
- "no interlock procedures stated in source"
- "firmware version compatibility not stated"
- "no power commands in source"
- "authentication token format not applicable — no auth"
- "specific input variable keys defined per show, not in source"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0