@bbc/sofie-live-status-gateway-api 1.53.0-nightly-fix-syncingestchanges-removePartInstance-59fb212-20250318-201816.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +13 -0
- package/api/asyncapi.yaml +139 -0
- package/api/schemas/activePieces.yaml +27 -0
- package/api/schemas/activePlaylist.yaml +277 -0
- package/api/schemas/adLibs.yaml +116 -0
- package/api/schemas/buckets.yaml +62 -0
- package/api/schemas/packages.yaml +82 -0
- package/api/schemas/root.yaml +163 -0
- package/api/schemas/segments.yaml +75 -0
- package/api/schemas/studio.yaml +55 -0
- package/dist/generated/schema.d.ts +647 -0
- package/dist/generated/schema.d.ts.map +1 -0
- package/dist/generated/schema.js +89 -0
- package/dist/generated/schema.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/package.json +65 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Norsk rikskringkasting AS (NRK)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Sofie: The Modern TV News Studio Automation System (Shared Lib)
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@sofie-automation/live-status-gateway-api)
|
|
4
|
+
|
|
5
|
+
This library is used as part of [**Sofie Server Core**](https://github.com/nrkno/sofie-core).
|
|
6
|
+
|
|
7
|
+
This is a part of the [**Sofie** TV News Studio Automation System](https://github.com/nrkno/Sofie-TV-automation/).
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
This library is a collection of typings used by the `live-status-gateway` and consumers of the api it provides.
|
|
12
|
+
|
|
13
|
+
The package also contains the asyncapi schema, to allow for other consumers of the library to do their own generating if desired.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
asyncapi: 2.6.0
|
|
2
|
+
id: 'urn:nrk:no:sofie:live-status-gateway:server'
|
|
3
|
+
info:
|
|
4
|
+
title: Sofie Live Status Service
|
|
5
|
+
description: This service provides subscriptions for status updates from Sofie
|
|
6
|
+
version: 2.0.0
|
|
7
|
+
license:
|
|
8
|
+
name: MIT License
|
|
9
|
+
url: http://opensource.org/licenses/MIT
|
|
10
|
+
contact:
|
|
11
|
+
name: Sofie TV Automation - NRK Team
|
|
12
|
+
url: https://github.com/nrkno/sofie-core/issues
|
|
13
|
+
|
|
14
|
+
servers:
|
|
15
|
+
development:
|
|
16
|
+
url: localhost
|
|
17
|
+
description: Server available without authorisation
|
|
18
|
+
protocol: ws
|
|
19
|
+
protocolVersion: '13'
|
|
20
|
+
|
|
21
|
+
defaultContentType: application/json
|
|
22
|
+
|
|
23
|
+
tags:
|
|
24
|
+
- name: sofie
|
|
25
|
+
- name: tv-automation
|
|
26
|
+
- name: broadcast
|
|
27
|
+
|
|
28
|
+
channels:
|
|
29
|
+
/:
|
|
30
|
+
publish:
|
|
31
|
+
description: Send messages to the root API
|
|
32
|
+
operationId: processRootMessage
|
|
33
|
+
message:
|
|
34
|
+
oneOf:
|
|
35
|
+
- $ref: '#/components/messages/ping'
|
|
36
|
+
- $ref: '#/components/messages/subscribe'
|
|
37
|
+
- $ref: '#/components/messages/unsubscribe'
|
|
38
|
+
subscribe:
|
|
39
|
+
description: Messages that are received from the API
|
|
40
|
+
operationId: sendRootMessage
|
|
41
|
+
message:
|
|
42
|
+
oneOf:
|
|
43
|
+
- $ref: '#/components/messages/pong'
|
|
44
|
+
- $ref: '#/components/messages/heartbeat'
|
|
45
|
+
- $ref: '#/components/messages/subscriptionStatus'
|
|
46
|
+
- $ref: '#/components/messages/studio'
|
|
47
|
+
- $ref: '#/components/messages/activePlaylist'
|
|
48
|
+
- $ref: '#/components/messages/activePieces'
|
|
49
|
+
- $ref: '#/components/messages/segments'
|
|
50
|
+
- $ref: '#/components/messages/adLibs'
|
|
51
|
+
- $ref: '#/components/messages/packages'
|
|
52
|
+
- $ref: '#/components/messages/buckets'
|
|
53
|
+
components:
|
|
54
|
+
messages:
|
|
55
|
+
ping:
|
|
56
|
+
name: ping
|
|
57
|
+
messageId: ping
|
|
58
|
+
summary: Ping server to determine whether connection is alive
|
|
59
|
+
description: Client can ping server to determine whether connection is alive, server responds with pong. This is an application level ping as opposed to default ping in websockets standard which is server initiated
|
|
60
|
+
payload:
|
|
61
|
+
$ref: './schemas/root.yaml#/$defs/ping'
|
|
62
|
+
x-response:
|
|
63
|
+
$ref: '#/components/messages/pong'
|
|
64
|
+
pong:
|
|
65
|
+
name: pong
|
|
66
|
+
messageId: pong
|
|
67
|
+
summary: Pong is a response to ping message
|
|
68
|
+
description: Server pong response to a ping to determine whether connection is alive. This is an application level pong as opposed to default pong in websockets standard which is sent by client in response to a ping
|
|
69
|
+
payload:
|
|
70
|
+
$ref: './schemas/root.yaml#/$defs/pong'
|
|
71
|
+
heartbeat:
|
|
72
|
+
name: heartbeat
|
|
73
|
+
messageId: heartbeat
|
|
74
|
+
description: Server heartbeat sent if no subscription traffic within 1 second (approximately)
|
|
75
|
+
payload:
|
|
76
|
+
$ref: './schemas/root.yaml#/$defs/heartbeat'
|
|
77
|
+
subscribe:
|
|
78
|
+
name: subscribe
|
|
79
|
+
messageId: subscribe
|
|
80
|
+
description: Subscribe to a topic
|
|
81
|
+
payload:
|
|
82
|
+
$ref: './schemas/root.yaml#/$defs/subscribe'
|
|
83
|
+
x-response:
|
|
84
|
+
$ref: './schemas/root.yaml#/$defs/subscriptionStatus'
|
|
85
|
+
unsubscribe:
|
|
86
|
+
name: unsubscribe
|
|
87
|
+
messageId: unsubscribe
|
|
88
|
+
description: Unsubscribe from a topic
|
|
89
|
+
payload:
|
|
90
|
+
$ref: './schemas/root.yaml#/$defs/unsubscribe'
|
|
91
|
+
x-response:
|
|
92
|
+
$ref: './schemas/root.yaml#/$defs/subscriptionStatus'
|
|
93
|
+
subscriptionStatus:
|
|
94
|
+
messageId: subscriptionStatus
|
|
95
|
+
description: Subscription status response to subscribe or unsubscribe
|
|
96
|
+
payload:
|
|
97
|
+
$ref: './schemas/root.yaml#/$defs/subscriptionStatus'
|
|
98
|
+
studio:
|
|
99
|
+
name: studio
|
|
100
|
+
messageId: studioUpdate
|
|
101
|
+
description: Studio status
|
|
102
|
+
payload:
|
|
103
|
+
$ref: './schemas/studio.yaml#/$defs/studio'
|
|
104
|
+
activePlaylist:
|
|
105
|
+
name: activePlaylist
|
|
106
|
+
messageId: activePlaylistUpdate
|
|
107
|
+
description: Active Playlist status
|
|
108
|
+
payload:
|
|
109
|
+
$ref: './schemas/activePlaylist.yaml#/$defs/activePlaylist'
|
|
110
|
+
activePieces:
|
|
111
|
+
name: activePieces
|
|
112
|
+
messageId: activePiecesUpdate
|
|
113
|
+
summary: Active Pieces status
|
|
114
|
+
description: Pieces from the active Playlist that are currently active (on air)
|
|
115
|
+
payload:
|
|
116
|
+
$ref: './schemas/activePieces.yaml#/$defs/activePieces'
|
|
117
|
+
segments:
|
|
118
|
+
name: segments
|
|
119
|
+
messageId: segmentsUpdate
|
|
120
|
+
description: Segments in active Playlist
|
|
121
|
+
payload:
|
|
122
|
+
$ref: './schemas/segments.yaml#/$defs/segments'
|
|
123
|
+
adLibs:
|
|
124
|
+
name: adLibs
|
|
125
|
+
messageId: adLibsUpdate
|
|
126
|
+
description: AdLibs in active Playlist
|
|
127
|
+
payload:
|
|
128
|
+
$ref: './schemas/adLibs.yaml#/$defs/adLibs'
|
|
129
|
+
packages:
|
|
130
|
+
name: packages
|
|
131
|
+
messageId: packages
|
|
132
|
+
description: Status of Packages expected by Pieces
|
|
133
|
+
payload:
|
|
134
|
+
$ref: './schemas/packages.yaml#/$defs/packages'
|
|
135
|
+
buckets:
|
|
136
|
+
name: buckets
|
|
137
|
+
description: Buckets in Studio
|
|
138
|
+
payload:
|
|
139
|
+
$ref: './schemas/buckets.yaml#/$defs/buckets'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
title: Active Pieces
|
|
2
|
+
description: Active Pieces schema for websocket subscriptions
|
|
3
|
+
$defs:
|
|
4
|
+
activePieces:
|
|
5
|
+
type: object
|
|
6
|
+
title: ActivePiecesEvent
|
|
7
|
+
properties:
|
|
8
|
+
event:
|
|
9
|
+
type: string
|
|
10
|
+
const: activePieces
|
|
11
|
+
rundownPlaylistId:
|
|
12
|
+
description: Unique id of the rundown playlist, or null if no playlist is active
|
|
13
|
+
oneOf:
|
|
14
|
+
- type: string
|
|
15
|
+
- type: 'null'
|
|
16
|
+
activePieces:
|
|
17
|
+
description: Pieces that are currently active (on air)
|
|
18
|
+
type: array
|
|
19
|
+
items:
|
|
20
|
+
$ref: './activePlaylist.yaml#/$defs/piece'
|
|
21
|
+
required: [event, rundownPlaylistId, activePieces]
|
|
22
|
+
additionalProperties: false
|
|
23
|
+
examples:
|
|
24
|
+
- event: activePieces
|
|
25
|
+
rundownPlaylistId: 'OKAgZmZ0Buc99lE_2uPPSKVbMrQ_'
|
|
26
|
+
activePieces:
|
|
27
|
+
- $ref: './activePlaylist.yaml#/$defs/piece/examples/0'
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
title: Active Playlist
|
|
2
|
+
description: Active Playlist schema for websocket subscriptions
|
|
3
|
+
$defs:
|
|
4
|
+
activePlaylist:
|
|
5
|
+
type: object
|
|
6
|
+
title: ActivePlaylistEvent
|
|
7
|
+
properties:
|
|
8
|
+
event:
|
|
9
|
+
type: string
|
|
10
|
+
const: activePlaylist
|
|
11
|
+
id:
|
|
12
|
+
description: Unique id of the active playlist
|
|
13
|
+
oneOf:
|
|
14
|
+
- type: string
|
|
15
|
+
- type: 'null'
|
|
16
|
+
name:
|
|
17
|
+
description: User-presentable name for the active playlist
|
|
18
|
+
type: string
|
|
19
|
+
rundownIds:
|
|
20
|
+
description: The set of rundownIds in the active playlist, in order
|
|
21
|
+
type: array
|
|
22
|
+
items:
|
|
23
|
+
type: string
|
|
24
|
+
currentPart:
|
|
25
|
+
description: The current Part - if empty, no part in the active playlist is live
|
|
26
|
+
$ref: '#/$defs/currentPart'
|
|
27
|
+
currentSegment:
|
|
28
|
+
description: The Segment of the current Part - if empty, no part in the active playlist is live
|
|
29
|
+
$ref: '#/$defs/currentSegment'
|
|
30
|
+
nextPart:
|
|
31
|
+
description: The next Part - if empty, no part will follow live part
|
|
32
|
+
$ref: '#/$defs/part'
|
|
33
|
+
publicData:
|
|
34
|
+
description: Optional arbitrary data
|
|
35
|
+
timing:
|
|
36
|
+
description: Timing information about the active playlist
|
|
37
|
+
type: object
|
|
38
|
+
title: ActivePlaylistTiming
|
|
39
|
+
properties:
|
|
40
|
+
timingMode:
|
|
41
|
+
description: 'Timing mode for the playlist.'
|
|
42
|
+
type: string
|
|
43
|
+
title: ActivePlaylistTimingMode
|
|
44
|
+
enum:
|
|
45
|
+
- none
|
|
46
|
+
- forward-time
|
|
47
|
+
- back-time
|
|
48
|
+
startedPlayback:
|
|
49
|
+
description: Unix timestamp of when the playlist started (milliseconds)
|
|
50
|
+
type: number
|
|
51
|
+
expectedStart:
|
|
52
|
+
description: Unix timestamp of when the playlist is expected to start (milliseconds). Required when the timingMode is set to forward-time.
|
|
53
|
+
type: number
|
|
54
|
+
expectedDurationMs:
|
|
55
|
+
description: Duration of the playlist in ms
|
|
56
|
+
type: number
|
|
57
|
+
expectedEnd:
|
|
58
|
+
description: Unix timestamp of when the playlist is expected to end (milliseconds) Required when the timingMode is set to back-time.
|
|
59
|
+
type: number
|
|
60
|
+
required: [timingMode]
|
|
61
|
+
additionalProperties: false
|
|
62
|
+
quickLoop:
|
|
63
|
+
description: Information about the current quickLoop, if any
|
|
64
|
+
type: object
|
|
65
|
+
title: ActivePlaylistQuickLoop
|
|
66
|
+
properties:
|
|
67
|
+
locked:
|
|
68
|
+
description: Whether the user is allowed to make alterations to the Start/End markers
|
|
69
|
+
type: boolean
|
|
70
|
+
running:
|
|
71
|
+
description: Whether the loop has two valid markers and is currently running
|
|
72
|
+
type: boolean
|
|
73
|
+
start:
|
|
74
|
+
description: The start of the loop
|
|
75
|
+
$ref: '#/$defs/quickLoopMarker'
|
|
76
|
+
end:
|
|
77
|
+
description: The end of the loop
|
|
78
|
+
$ref: '#/$defs/quickLoopMarker'
|
|
79
|
+
required: [locked, running]
|
|
80
|
+
required: [event, id, name, rundownIds, currentPart, currentSegment, nextPart, timing]
|
|
81
|
+
additionalProperties: false
|
|
82
|
+
examples:
|
|
83
|
+
- event: activePlaylist
|
|
84
|
+
id: 'OKAgZmZ0Buc99lE_2uPPSKVbMrQ_'
|
|
85
|
+
name: 'Playlist 0'
|
|
86
|
+
rundownIds: ['y9HauyWkcxQS3XaAOsW40BRLLsI_']
|
|
87
|
+
currentPart:
|
|
88
|
+
$ref: '#/$defs/currentPart/examples/0'
|
|
89
|
+
currentSegment:
|
|
90
|
+
$ref: '#/$defs/currentSegment/examples/0'
|
|
91
|
+
nextPart:
|
|
92
|
+
$ref: '#/$defs/part/examples/0'
|
|
93
|
+
publicData:
|
|
94
|
+
category: 'Evening News'
|
|
95
|
+
timing:
|
|
96
|
+
timingMode: 'forward-time'
|
|
97
|
+
expectedStart: 1728895750727
|
|
98
|
+
expectedDurationMs: 180000
|
|
99
|
+
partBase:
|
|
100
|
+
type: object
|
|
101
|
+
title: PartStatus
|
|
102
|
+
properties:
|
|
103
|
+
id:
|
|
104
|
+
description: Unique id of the part
|
|
105
|
+
type: string
|
|
106
|
+
name:
|
|
107
|
+
description: User name of the part
|
|
108
|
+
type: string
|
|
109
|
+
segmentId:
|
|
110
|
+
description: Unique id of the segment this part belongs to
|
|
111
|
+
type: string
|
|
112
|
+
autoNext:
|
|
113
|
+
description: If this part will progress to the next automatically
|
|
114
|
+
type: boolean
|
|
115
|
+
default: false
|
|
116
|
+
pieces:
|
|
117
|
+
description: All pieces in this part
|
|
118
|
+
type: array
|
|
119
|
+
items:
|
|
120
|
+
$ref: '#/$defs/piece'
|
|
121
|
+
publicData:
|
|
122
|
+
description: Optional arbitrary data
|
|
123
|
+
required: [id, name, segmentId, pieces]
|
|
124
|
+
# additionalProperties: false
|
|
125
|
+
examples:
|
|
126
|
+
- id: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
127
|
+
name: 'Intro'
|
|
128
|
+
segmentId: 'n1mOVd5_K5tt4sfk6HYfTuwumGQ_'
|
|
129
|
+
autoNext: false
|
|
130
|
+
pieces:
|
|
131
|
+
- $ref: '#/$defs/piece/examples/0'
|
|
132
|
+
publicData:
|
|
133
|
+
partType: 'intro'
|
|
134
|
+
part:
|
|
135
|
+
oneOf:
|
|
136
|
+
- $ref: '#/$defs/partBase'
|
|
137
|
+
- type: 'null'
|
|
138
|
+
examples:
|
|
139
|
+
- id: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
140
|
+
name: 'Intro'
|
|
141
|
+
segmentId: 'n1mOVd5_K5tt4sfk6HYfTuwumGQ_'
|
|
142
|
+
autoNext: false
|
|
143
|
+
pieces:
|
|
144
|
+
- $ref: '#/$defs/piece/examples/0'
|
|
145
|
+
currentPart:
|
|
146
|
+
oneOf:
|
|
147
|
+
- title: CurrentPartStatus
|
|
148
|
+
allOf:
|
|
149
|
+
- $ref: '#/$defs/partBase'
|
|
150
|
+
- type: object
|
|
151
|
+
properties:
|
|
152
|
+
timing:
|
|
153
|
+
description: Timing information about the current part
|
|
154
|
+
type: object
|
|
155
|
+
title: CurrentPartTiming
|
|
156
|
+
properties:
|
|
157
|
+
startTime:
|
|
158
|
+
description: Unix timestamp of when the part started (milliseconds)
|
|
159
|
+
type: number
|
|
160
|
+
expectedDurationMs:
|
|
161
|
+
description: Expected duration of the part (milliseconds)
|
|
162
|
+
type: number
|
|
163
|
+
projectedEndTime:
|
|
164
|
+
description: Unix timestamp of when the part is projected to end (milliseconds). A sum of `startTime` and `expectedDurationMs`.
|
|
165
|
+
type: number
|
|
166
|
+
required: [startTime, expectedDurationMs, projectedEndTime]
|
|
167
|
+
required: [timing]
|
|
168
|
+
- type: 'null'
|
|
169
|
+
examples:
|
|
170
|
+
- id: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
171
|
+
name: 'Intro'
|
|
172
|
+
segmentId: 'n1mOVd5_K5tt4sfk6HYfTuwumGQ_'
|
|
173
|
+
autoNext: false
|
|
174
|
+
timing:
|
|
175
|
+
startTime: 1600000060000
|
|
176
|
+
expectedDurationMs: 15000
|
|
177
|
+
projectedEndTime: 1600000075000
|
|
178
|
+
pieces:
|
|
179
|
+
- $ref: '#/$defs/piece/examples/0'
|
|
180
|
+
publicData:
|
|
181
|
+
partType: 'intro'
|
|
182
|
+
currentSegment:
|
|
183
|
+
oneOf:
|
|
184
|
+
- type: object
|
|
185
|
+
title: CurrentSegment
|
|
186
|
+
properties:
|
|
187
|
+
id:
|
|
188
|
+
description: Unique id of the segment
|
|
189
|
+
type: string
|
|
190
|
+
timing:
|
|
191
|
+
description: Timing information about the current segment
|
|
192
|
+
type: object
|
|
193
|
+
title: CurrentSegmentTiming
|
|
194
|
+
properties:
|
|
195
|
+
expectedDurationMs:
|
|
196
|
+
description: Expected duration of the segment
|
|
197
|
+
type: number
|
|
198
|
+
budgetDurationMs:
|
|
199
|
+
description: Budget duration of the segment
|
|
200
|
+
type: number
|
|
201
|
+
projectedEndTime:
|
|
202
|
+
description: Unix timestamp of when the segment is projected to end (milliseconds). The time this segment started, offset by its budget duration, if the segment has a defined budget duration. Otherwise, the time the current part started, offset by the difference between expected durations of all parts in this segment and the as-played durations of the parts that already stopped.
|
|
203
|
+
type: number
|
|
204
|
+
countdownType:
|
|
205
|
+
description: 'Countdown type within the segment. Default: `part_expected_duration`'
|
|
206
|
+
type: string
|
|
207
|
+
title: SegmentCountdownType
|
|
208
|
+
enum:
|
|
209
|
+
- part_expected_duration
|
|
210
|
+
- segment_budget_duration
|
|
211
|
+
required: [expectedDurationMs, projectedEndTime]
|
|
212
|
+
required: [id, timing]
|
|
213
|
+
additionalProperties: false
|
|
214
|
+
- type: 'null'
|
|
215
|
+
examples:
|
|
216
|
+
- id: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
217
|
+
timing:
|
|
218
|
+
expectedDurationMs: 15000
|
|
219
|
+
budgetDurationMs: 20000
|
|
220
|
+
projectedEndTime: 1600000075000
|
|
221
|
+
countdownType: segment_budget_duration
|
|
222
|
+
piece:
|
|
223
|
+
type: object
|
|
224
|
+
title: PieceStatus
|
|
225
|
+
properties:
|
|
226
|
+
id:
|
|
227
|
+
description: Unique id of the Piece
|
|
228
|
+
type: string
|
|
229
|
+
name:
|
|
230
|
+
description: User-facing name of the Piece
|
|
231
|
+
type: string
|
|
232
|
+
sourceLayer:
|
|
233
|
+
description: The source layer name for this Piece
|
|
234
|
+
type: string
|
|
235
|
+
outputLayer:
|
|
236
|
+
description: The output layer name for this Piece
|
|
237
|
+
type: string
|
|
238
|
+
tags:
|
|
239
|
+
description: Tags attached to this Piece
|
|
240
|
+
type: array
|
|
241
|
+
items:
|
|
242
|
+
type: string
|
|
243
|
+
publicData:
|
|
244
|
+
description: Optional arbitrary data
|
|
245
|
+
required: [id, name, sourceLayer, outputLayer]
|
|
246
|
+
additionalProperties: false
|
|
247
|
+
examples:
|
|
248
|
+
- id: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
249
|
+
name: 'Camera 1'
|
|
250
|
+
sourceLayer: 'Camera'
|
|
251
|
+
outputLayer: 'PGM'
|
|
252
|
+
tags: ['camera']
|
|
253
|
+
publicData:
|
|
254
|
+
switcherSource: 1
|
|
255
|
+
quickLoopMarker:
|
|
256
|
+
type: object
|
|
257
|
+
title: QuickLoopMarker
|
|
258
|
+
properties:
|
|
259
|
+
markerType:
|
|
260
|
+
description: The type of entity the marker is locked to
|
|
261
|
+
title: QuickLoopMarkerType
|
|
262
|
+
type: string
|
|
263
|
+
enum:
|
|
264
|
+
- playlist
|
|
265
|
+
- rundown
|
|
266
|
+
- segment
|
|
267
|
+
- part
|
|
268
|
+
rundownId:
|
|
269
|
+
description: The rundown that this marker references. This will be set for rundown, segment and part markers
|
|
270
|
+
type: string
|
|
271
|
+
segmentId:
|
|
272
|
+
description: The segment that this marker references. This will be set for segment and part markers
|
|
273
|
+
type: string
|
|
274
|
+
partId:
|
|
275
|
+
description: The part that this marker references. This will be set for only part markers
|
|
276
|
+
type: string
|
|
277
|
+
required: [markerType]
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
title: AdLibs
|
|
2
|
+
description: AdLibs schema for websocket subscriptions
|
|
3
|
+
$defs:
|
|
4
|
+
adLibs:
|
|
5
|
+
type: object
|
|
6
|
+
title: AdLibsEvent
|
|
7
|
+
properties:
|
|
8
|
+
event:
|
|
9
|
+
type: string
|
|
10
|
+
const: adLibs
|
|
11
|
+
rundownPlaylistId:
|
|
12
|
+
description: Unique id of the rundown playlist, or null if no playlist is active
|
|
13
|
+
oneOf:
|
|
14
|
+
- type: string
|
|
15
|
+
- type: 'null'
|
|
16
|
+
adLibs:
|
|
17
|
+
description: The available AdLibs for this playlist
|
|
18
|
+
type: array
|
|
19
|
+
items:
|
|
20
|
+
$ref: '#/$defs/adLib'
|
|
21
|
+
globalAdLibs:
|
|
22
|
+
description: The available Global AdLibs for this playlist
|
|
23
|
+
type: array
|
|
24
|
+
items:
|
|
25
|
+
$ref: '#/$defs/globalAdLib'
|
|
26
|
+
required: [event, rundownPlaylistId, adLibs, globalAdLibs]
|
|
27
|
+
additionalProperties: false
|
|
28
|
+
examples:
|
|
29
|
+
- event: adLibs
|
|
30
|
+
rundownPlaylistId: 'OKAgZmZ0Buc99lE_2uPPSKVbMrQ_'
|
|
31
|
+
adLibs:
|
|
32
|
+
$ref: '#/$defs/adLib/examples'
|
|
33
|
+
globalAdLibs:
|
|
34
|
+
$ref: '#/$defs/adLibBase/examples'
|
|
35
|
+
adLib:
|
|
36
|
+
title: AdLibStatus
|
|
37
|
+
allOf:
|
|
38
|
+
- $ref: '#/$defs/adLibBase'
|
|
39
|
+
- type: object
|
|
40
|
+
properties:
|
|
41
|
+
segmentId:
|
|
42
|
+
description: Unique id of the segment this adLib belongs to
|
|
43
|
+
type: string
|
|
44
|
+
partId:
|
|
45
|
+
description: Unique id of the part this adLib belongs to
|
|
46
|
+
type: string
|
|
47
|
+
required: [segmentId, partId]
|
|
48
|
+
examples:
|
|
49
|
+
- id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
|
|
50
|
+
name: Music video clip
|
|
51
|
+
sourceLayer: Video Clip
|
|
52
|
+
actionType:
|
|
53
|
+
- name: pvw
|
|
54
|
+
label: Preview
|
|
55
|
+
tags: ['music_video']
|
|
56
|
+
segmentId: 'n1mOVd5_K5tt4sfk6HYfTuwumGQ_'
|
|
57
|
+
partId: 'H5CBGYjThrMSmaYvRaa5FVKJIzk_'
|
|
58
|
+
publicData:
|
|
59
|
+
fileName: MV000123.mxf
|
|
60
|
+
globalAdLib:
|
|
61
|
+
title: GlobalAdLibStatus
|
|
62
|
+
allOf:
|
|
63
|
+
- $ref: '#/$defs/adLibBase'
|
|
64
|
+
adLibBase:
|
|
65
|
+
type: object
|
|
66
|
+
title: AdLibBaseStatus
|
|
67
|
+
properties:
|
|
68
|
+
id:
|
|
69
|
+
description: Unique id of the AdLib
|
|
70
|
+
type: string
|
|
71
|
+
name:
|
|
72
|
+
description: The user defined AdLib name
|
|
73
|
+
type: string
|
|
74
|
+
sourceLayer:
|
|
75
|
+
description: The source layer name for this AdLib
|
|
76
|
+
type: string
|
|
77
|
+
outputLayer:
|
|
78
|
+
description: The output layer name for this AdLib
|
|
79
|
+
type: string
|
|
80
|
+
actionType:
|
|
81
|
+
description: The available action type names that can be used to modify the execution of the AdLib
|
|
82
|
+
type: array
|
|
83
|
+
items:
|
|
84
|
+
type: object
|
|
85
|
+
title: AdLibActionType
|
|
86
|
+
properties:
|
|
87
|
+
name:
|
|
88
|
+
description: The string to be passed to the ExecuteAdlib function
|
|
89
|
+
type: string
|
|
90
|
+
label:
|
|
91
|
+
description: The label for the AdLib type
|
|
92
|
+
type: string
|
|
93
|
+
required: [name, label]
|
|
94
|
+
additionalProperties: false
|
|
95
|
+
tags:
|
|
96
|
+
description: Tags attached to this AdLib
|
|
97
|
+
type: array
|
|
98
|
+
items:
|
|
99
|
+
type: string
|
|
100
|
+
publicData:
|
|
101
|
+
description: Optional arbitrary data
|
|
102
|
+
optionsSchema:
|
|
103
|
+
description: JSON schema definition of the adLib properties that can be modified using the adLibOptions property in executeAdLib
|
|
104
|
+
type: string
|
|
105
|
+
required: [id, name, sourceLayer, actionType]
|
|
106
|
+
examples:
|
|
107
|
+
- id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
|
|
108
|
+
name: Music video clip
|
|
109
|
+
sourceLayer: Video Clip
|
|
110
|
+
actionType:
|
|
111
|
+
- name: pvw
|
|
112
|
+
label: Preview
|
|
113
|
+
tags: ['music_video']
|
|
114
|
+
publicData:
|
|
115
|
+
fileName: MV000123.mxf
|
|
116
|
+
optionsSchema: '{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Play Video Clip","type":"object","properties":{"type":"adlib_action_video_clip","label":{"type":"string"},"clipId":{"type":"string"},"vo":{"type":"boolean"},"target":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Object Id","description":"Id of an object sent to Sofie","type":"string"},"duration":{"type":"number","exclusiveMinimum":0},"takeType":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"AdLib Action Take Type","type":"string","enum":["take_immediate","queue"]},"transition":{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"AdLib Action Transition Type","oneOf":[{"type":"object","properties":{"type":"cut"},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":"mix","duration":{"type":"number","exclusiveMinimum":0,"description":"Duration in ms"}},"required":["type","duration"],"additionalProperties":false},{"type":"object","properties":{"type":"wipe","duration":{"type":"number","exclusiveMinimum":0,"description":"Duration in ms"},"patternId":{"type":"string","description":"Type of wipe to use"}},"required":["type","duration","patternId"],"additionalProperties":false},{"type":"object","properties":{"type":"macro","macroId":{"type":"string","description":"Macro template to recall"}},"required":["type","macroId"],"additionalProperties":false}]}},"required":["type","clipId","vo","target"],"additionalProperties":false}"'
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
title: Buckets
|
|
2
|
+
description: Buckets schema for websocket subscriptions
|
|
3
|
+
$defs:
|
|
4
|
+
buckets:
|
|
5
|
+
type: object
|
|
6
|
+
title: BucketsEvent
|
|
7
|
+
properties:
|
|
8
|
+
event:
|
|
9
|
+
type: string
|
|
10
|
+
const: buckets
|
|
11
|
+
buckets:
|
|
12
|
+
description: Buckets available in the Studio
|
|
13
|
+
type: array
|
|
14
|
+
items:
|
|
15
|
+
$ref: '#/$defs/bucket'
|
|
16
|
+
required: [event, buckets]
|
|
17
|
+
additionalProperties: false
|
|
18
|
+
examples:
|
|
19
|
+
- event: buckets
|
|
20
|
+
buckets:
|
|
21
|
+
$ref: '#/$defs/bucket/examples'
|
|
22
|
+
bucket:
|
|
23
|
+
type: object
|
|
24
|
+
title: BucketStatus
|
|
25
|
+
properties:
|
|
26
|
+
id:
|
|
27
|
+
description: Unique id of the bucket
|
|
28
|
+
type: string
|
|
29
|
+
name:
|
|
30
|
+
description: The user defined bucket name
|
|
31
|
+
type: string
|
|
32
|
+
adLibs:
|
|
33
|
+
description: The AdLibs in this bucket
|
|
34
|
+
type: array
|
|
35
|
+
items:
|
|
36
|
+
$ref: '#/$defs/bucketAdlib'
|
|
37
|
+
examples:
|
|
38
|
+
- id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
|
|
39
|
+
name: My Bucket
|
|
40
|
+
adLibs:
|
|
41
|
+
$ref: '#/$defs/bucketAdlib/examples'
|
|
42
|
+
bucketAdlib:
|
|
43
|
+
title: BucketAdLibStatus
|
|
44
|
+
allOf:
|
|
45
|
+
- $ref: './adLibs.yaml#/$defs/adLibBase'
|
|
46
|
+
- type: object
|
|
47
|
+
properties:
|
|
48
|
+
externalId:
|
|
49
|
+
type: string
|
|
50
|
+
description: Id of the adlib recognizable by the external source. Unique within a bucket.
|
|
51
|
+
required: [externalId]
|
|
52
|
+
examples:
|
|
53
|
+
- externalId: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
|
|
54
|
+
id: 'C6K_yIMuGFUk8X_L9A9_jRT6aq4_'
|
|
55
|
+
name: Music video clip
|
|
56
|
+
sourceLayer: Video Clip
|
|
57
|
+
actionType:
|
|
58
|
+
- name: pvw
|
|
59
|
+
label: Preview
|
|
60
|
+
tags: ['music_video']
|
|
61
|
+
publicData:
|
|
62
|
+
fileName: MV000123.mxf
|