Skip to main content

GRPC

Services

AuthenticationService

The Authentication Service provides token services for clients

Method NameRequest TypeResponse TypeDescription
CreateGuestAccessTokenCreateGuestAccessTokenRequestCreateGuestAccessTokenResponseCreate Guest Access Token

Create an access token for a guest
RefreshAccessTokenRefreshAccessTokenRequestRefreshAccessTokenResponseRefresh Access Token

Forcibly refresh an access token prior to expiration
CreateWebRtcAccessTokenCreateWebRtcAccessTokenRequestCreateWebRtcAccessTokenResponseCreate WebRTC Access Token

Create a WebRTC Access Token

BackendAuthenticationService

The Backend Authentication Service provides token services for partner backend systems

Method NameRequest TypeResponse TypeDescription
CreateAccessTokenCreateAccessTokenRequestCreateAccessTokenResponseCreate Access Token

Create an access token for a session host

CollectionService

The Collection Service operates on collections, which contain projects and collection live sources used in projects.

Method NameRequest TypeResponse TypeDescription
CreateCollectionCreateCollectionRequestCreateCollectionResponseCreate Collection

Create a new collection of related projects and collection live sources
GetCollectionGetCollectionRequestGetCollectionResponseGet Collection

Get an existing collection of related projects and collection live
sources
GetCollectionsGetCollectionsRequestGetCollectionsResponseGet Collections

Get all collections owned by the user
UpdateCollectionUpdateCollectionRequestUpdateCollectionResponseUpdate Collection

Update select collection document data
DeleteCollectionDeleteCollectionRequestDeleteCollectionResponseDelete Collection

Delete a collection of related projects and collection live sources

DestinationService

The Destination Service operates on Project Destinations. Destinations designate where a Broadcast associated with a Project is distributed downstream.

Method NameRequest TypeResponse TypeDescription
CreateDestinationCreateDestinationRequestCreateDestinationResponseCreate Destination

Create a new Destination
GetDestinationGetDestinationRequestGetDestinationResponseGet Destination

Get an existing Destination.
UpdateDestinationUpdateDestinationRequestUpdateDestinationResponseUpdate Destination

Update a destination
DeleteDestinationDeleteDestinationRequestDeleteDestinationResponseDelete Destination

Delete a destination

ProjectService

The Project Service operates on a Project.

Method NameRequest TypeResponse TypeDescription
CreateProjectCreateProjectRequestCreateProjectResponseCreate Project

Create a new project
GetProjectGetProjectRequestGetProjectResponseGet Project

Get an existing project
DeleteProjectDeleteProjectRequestDeleteProjectResponseDelete Project

Delete a project
UpdateProjectUpdateProjectRequestUpdateProjectResponseUpdate Project

Updates a project
StartProjectBroadcastStartProjectBroadcastRequestStartProjectBroadcastResponseStart Broadcast

Start broadcasting a project
StopProjectBroadcastStopProjectBroadcastRequestStopProjectBroadcastResponseStop Broadcast

Stop broadcasting a project
StartProjectWebRtcStartProjectWebRtcRequestStartProjectWebRtcResponseStart WebRTC

Start WebRTC services
StopProjectWebRtcStopProjectWebRtcRequestStopProjectWebRtcResponseStop WebRTC

Stop WebRTC services
GetProjectBroadcastSnapshotGetProjectBroadcastSnapshotRequestGetProjectBroadcastSnapshotResponseGet Snapshot

Get a snapshot of the current output frame of the broadcast
GetProjectBroadcastStatusGetProjectBroadcastStatusRequestGetProjectBroadcastStatusResponseGet Broadcast Status

Get the broadcast status of the project

PublicAuthenticationService

The Public Authentication Service provides token verification services

Method NameRequest TypeResponse TypeDescription
GetJsonWebKeySetGetJsonWebKeySetRequestGetJsonWebKeySetResponseGet Public Keys

Get public keys used to sign access tokens
GuestCodeRedirectGuestCodeRedirectRequestGuestCodeRedirectResponseExchange Guest Access Token

Exchange a guest access token with updated user identifiers

SourceService

The Source Service operates on Collection Live Sources and Project Sources.

Method NameRequest TypeResponse TypeDescription
CreateSourceCreateSourceRequestCreateSourceResponseCreate Collection Live Source

Create a new live source in a collection
### Permissions
* scope: SCOPE_VAPI_CREATE
DeleteSourceDeleteSourceRequestDeleteSourceResponseDelete Live Source

Deletes a live source from a collection
UpdateSourceUpdateSourceRequestUpdateSourceResponseUpdate Source

Update attributes of the Source.
UpdateSourceInProjectUpdateSourceInProjectRequestUpdateSourceInProjectResponseUpdate Source

Update attributes of the Source.
GetSourceGetSourceRequestGetSourceResponseGet Source

Get an existing source in a project
GetSourcesGetSourcesRequestGetSourcesResponseGet Source

Get existing sources in a collection
AddSourceToProjectAddSourceToProjectRequestAddSourceToProjectResponseAdd Source to Project

Add a source to a project
RemoveSourceFromProjectRemoveSourceFromProjectRequestRemoveSourceFromProjectResponseDelete Source From Project

Removes a source from a project.

Messages

AddSourceToProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject which will own the source
source_idstringlive source id
triggerSourceTriggeroptionalallow this source to trigger a project broadcast

AddSourceToProjectResponse

FieldTypeLabelDescription
projectProjectupdated project
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

AudioEncoding

encoding audio parameters

FieldTypeLabelDescription
codecAudioCodecoptionalaudio encoding codec

AudioRendering

composition audio parameters

FieldTypeLabelDescription
channel_layoutAudioChannelLayoutoptionalaudio channel layout

Collection

a Collection of Projects and Sources

FieldTypeLabelDescription
collection_idstringcollection id
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this collection
projectsProjectrepeatedprojects owned by this collection
sourcesSourcerepeatedcollection live sources owned by this collection

CollectionCreateEvent

a collection was created

FieldTypeLabelDescription
collection_idstringcollection id
collectionCollectionthe new collection

CollectionDeleteEvent

a collection was deleted

FieldTypeLabelDescription
collection_idstringcollection id

CollectionEvent

FieldTypeLabelDescription
createCollectionCreateEvent
updateCollectionUpdateEvent
deleteCollectionDeleteEvent

CollectionUpdateEvent

a collection was updated

FieldTypeLabelDescription
collection_idstringcollection id
update_maskstringrepeatedthe fields which were updated
collectionCollectionthe updated collection

Composition

composition source for project (select one)

FieldTypeLabelDescription
externalExternalCompositioncompose using an external renderer
studio_sdkStudioSdkCompositioncompose using the studiosdk renderer
sceneSceneCompositioncompose scenes using the browser-based compositor

CreateAccessTokenRequest

FieldTypeLabelDescription
service_user_idstringservice-specific user id
### Usage
* this should be an opaque GUID with no spaces
display_namestringoptional
roleRoleoptionalthe requested role
max_durationuint32optionalrequested duration of token before it expires (ms)

CreateAccessTokenResponse

FieldTypeLabelDescription
access_tokenstringaccess token for owner to be asserted in subsequent Video and Layout API
calls

CreateCollectionRequest

FieldTypeLabelDescription
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this collection

CreateCollectionResponse

FieldTypeLabelDescription
collectionCollection

CreateDestinationRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which will own this destination
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this destination
addressDestinationAddressdestination address (select one)
enabledbooloptionalenable or disable this destination
timeoutuint32optionaltimeout (in milliseconds) to wait before resetting a connection

CreateDestinationResponse

FieldTypeLabelDescription
destinationDestinationthe newly created destination

CreateGuestAccessTokenRequest

FieldTypeLabelDescription
collection_idstringid of the collection this token is allowed to access
project_idstringid of the project this token is allowed to access
max_durationuint32optionalrequested duration (ms) of token before it expires
roleRolethe requested role of the guest
tokenGuestAccessTokenthe type of token
urlstringoptionalrequest a shortened url

CreateGuestAccessTokenResponse

FieldTypeLabelDescription
access_tokenstringaccess token for guest to be used in subsequent API calls
urlstringoptionalthe shortened url

CreateProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which will own this project
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this project
renderingRenderingoptionalcomposition parameters
encodingEncodingoptionalencoding parameters
compositionCompositioncomposition/layout source of the broadcast
max_durationuint32optionalmaximum duration of project broadcasts (ms)
webrtcWebRtcoptionalrequest webrtc services
locationLatLongoptionaloptimal broadcast location (for routing and delay)

CreateProjectResponse

FieldTypeLabelDescription
projectProject

CreateSourceRequest

FieldTypeLabelDescription
collection_idstringcollection which will own this collection live source
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this collection live source
addressSourceAddresstype of collection live source
previewPreviewAddressoptionalenable real-time previews

CreateSourceResponse

FieldTypeLabelDescription
sourceSource

CreateWebRtcAccessTokenRequest

FieldTypeLabelDescription
collection_idstringid of the collection this token is allowed to access
project_idstringid of the project this token is allowed to access
display_namestringdisplay name of the guest (used to generate webrtc particpant name)

CreateWebRtcAccessTokenResponse

FieldTypeLabelDescription
webrtc_accessWebRtcAccessthe webrtc token parameters

DeleteCollectionRequest

FieldTypeLabelDescription
collection_idstringcollection id
forcebooloptionalforcibly end all child project broadcasts in progress

DeleteCollectionResponse

FieldTypeLabelDescription
sources_deleteduint32number of live sources owned by this collection which were deleted
projects_deleteduint32number of projects owned by this collection which were deleted
project_ids_stoppedstringrepeatedproject ids owned by this collection whose broadcasts were stopped

DeleteDestinationRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
forcebooloptionalforcibly remove destination if enabled

DeleteDestinationResponse

FieldTypeLabelDescription
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

DeleteProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
forcebooloptionalforcibly end broadcast in progress

DeleteProjectResponse

FieldTypeLabelDescription
broadcast_stoppedboolwas a broadcast stopped
layouts_deleteduint32the number of associated layouts deleted

DeleteSourceRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the live source
source_idstringlive source id
forcebooloptionaldelete a live source even if it is in use in a broadcast

DeleteSourceResponse

FieldTypeLabelDescription
project_ids_updatedstringrepeatedproject ids owned by this collection which were affected

Destination

streaming destination of project

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this destination
enabledbooloptionalis output stream enabled?
addressDestinationAddressaddress of the destination
timeoutuint32optionaltimeout (ms) to wait before resetting a connection

DestinationAddress

destination address (select one)

FieldTypeLabelDescription
rtmp_pushDestinationRtmpPushAddressrtmp push addressing
agoraDestinationAgoraPushAddressAgora addressing
s3_storageS3StorageAddresss3 storage addressing

DestinationAgoraPushAddress

Agora push addressing

FieldTypeLabelDescription
app_idstringAgora app id
channel_idstringAgora channel id
user_idstringAgora user id

DestinationCreateEvent

a destination was created

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
destinationDestinationthe new destination

DestinationDeleteEvent

a destination was deleted

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id

DestinationEvent

FieldTypeLabelDescription
createDestinationCreateEvent
updateDestinationUpdateEvent
deleteDestinationDeleteEvent
stateDestinationStateEvent

DestinationRtmpPushAddress

rtmp push destination address

FieldTypeLabelDescription
keystringoptionalrtmp stream key
urlstringrtmp destination url

DestinationStateEvent

the state of a destination changed

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
connectConnectStatethe state of the connection changed

DestinationUpdateEvent

a destination was updated

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
update_maskstringrepeatedchanged fields
destinationDestinationthe updated destination

Encoding

the parameters of the encoding

FieldTypeLabelDescription
videoVideoEncodingoptionalthe video parameters of the encoding
audioAudioEncodingoptionalthe audio parameters of the encoding

ExternalComposition

compose using an external renderer

FieldTypeLabelDescription
urlstring

GetCollectionRequest

FieldTypeLabelDescription
collection_idstringcollection id
populate_projectsbooloptionaloptionally populate projects
populate_sourcesbooloptionaloptionally populate sources

GetCollectionResponse

FieldTypeLabelDescription
collectionCollection

GetCollectionsRequest

GetCollectionsResponse

FieldTypeLabelDescription
collectionsCollectionrepeatedall collections owned by this user

GetDestinationRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id

GetDestinationResponse

FieldTypeLabelDescription
destinationDestinationthe requested destination

GetJsonWebKeySetRequest

GetJsonWebKeySetResponse

FieldTypeLabelDescription
keysJsonWebKeyrepeatedpublic keys used to sign access tokens

GetProjectBroadcastSnapshotRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
formatImageFormatoptionalsnapshot binary format

GetProjectBroadcastSnapshotResponse

FieldTypeLabelDescription
formatImageFormatthe format of the returned snapshot
imagebytesthe binary snapshot

GetProjectBroadcastStatusRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id

GetProjectBroadcastStatusResponse

FieldTypeLabelDescription
statusProjectBroadcastStatusthe status of the project broadcast

GetProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
statusbooloptionalalso query project broadcast status

GetProjectResponse

FieldTypeLabelDescription
projectProjectthe request project
statusProjectBroadcastStatusoptionalthe status of the project broadcast (if requested)

GetSourceRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the source
source_idstringsource id

GetSourceResponse

FieldTypeLabelDescription
sourceSource

GetSourcesRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the source

GetSourcesResponse

FieldTypeLabelDescription
sourcesSourcerepeated

GetTestTokenRequest

GetTestTokenResponse

FieldTypeLabelDescription
access_tokenstringa dummy access key (with no grants)

GuestAccessToken

the type of access token (selec one)

FieldTypeLabelDescription
directGuestAccessTokenDirect
exchangeGuestAccessTokenExchange

GuestAccessTokenDirect

create an immutable, single-use guest access token

FieldTypeLabelDescription
display_namestringdisplay name of the guest (used to generate webrtc particpant name)
service_user_idstringoptionalservice-specific user id (used for record auditing purposes)

GuestAccessTokenExchange

create a multi-use guest access token

FieldTypeLabelDescription
max_durationuint32optionalthe max duration this token is valid for redemption

GuestCode

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
codestringthe short url code
urlstringthe short url
auto_deletegoogle.protobuf.Timestampauto-delete after time

GuestCodeRedirectRequest

FieldTypeLabelDescription
service_idstringthe id of the service
codestringthe short url code

GuestCodeRedirectResponse

HlsLifecycle

hls lifecycle management

FieldTypeLabelDescription
vodHlsLifecycleVodlifecycle of vod
liveHlsLifecycleLivelifecycle of live

HlsLifecycleLive

live hls lifecycle management

FieldTypeLabelDescription
playlist_countint32optionalnumber of entries to advertise in playlist file
file_countint32optionalnumber of files to keep on disk

HlsLifecycleVod

vod hls lifecycle management

FieldTypeLabelDescription
max_durationint32optionalmax duration of the recording in ms (0 is indefinite)

HlsPackaging

hls packaging options

FieldTypeLabelDescription
lifecycleHlsLifecyclelifecycle of hls segments
segment_durationint32optionalduration of segments in ms

HostedWebRtc

hosted webrtc configuration

FieldTypeLabelDescription
enabledbooloptionalenable webrtc services

JsonWebKey

FieldTypeLabelDescription
algstring
ktystring
usestring
kidstring
estring
nstring

LatLong

optimal location of broadcast (to optimize routing and delay)

FieldTypeLabelDescription
latitudedouble
longitudedouble

LiveEvent

FieldTypeLabelDescription
collectionCollectionEvent
destinationDestinationEvent
projectProjectEvent
sourceSourceEvent
unspecifiedgoogle.protobuf.NullValue

ObjectStoragePackaging

packaging options for object storage

FieldTypeLabelDescription
hlsHlsPackaginghls format

PreviewAddress

addresses of source previews

FieldTypeLabelDescription
webrtcPreviewWebRtcAddressoptionalhls preview address
optional PreviewHlsPullAddress hls = 1;
webrtc preview address

srt preview address
optional SrtPullAddress srt = 3 [(common.v21.field_options).future = true
];

PreviewHlsPullAddress

request hls preview

FieldTypeLabelDescription
enabledbooloptionalrequest hls preview
urlstringoptionalhls manifest url

PreviewWebRtcAddress

webrtc addressing parameters

FieldTypeLabelDescription
enabledbooloptionalrequest rtmp preview
display_namestringoptionalthe name this source will use in the webrtc room
participant_idstringoptionalthe id this source was assigned in the webrtc room

Project

project which owns a broadcast, sources, and destinations

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this project
renderingRenderingcomposition parameters
encodingEncodingencoding parameters
sourcesSourcerepeatedcollection live sources added to this project
destinationsDestinationrepeateddestinations associated with this project
compositionCompositioncomposition/layout source of the broadcast
max_durationuint32optionalmaximum duration (ms) of project broadcasts
webrtcWebRtcoptionalconfiguration for webrtc services (if requested)
triggersProjectTriggerrepeatedexternal triggers to start and stop this broadcast
locationLatLongoptionaloptional optimal location to start broadcast
guest_codesGuestCoderepeatedguest codes associated with this project

ProjectBroadcastStateEvent

the state of a project broadcast has changed

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
broadcast_idstringthe id of the broadcast
phaseProjectBroadcastPhase
errorProjectBroadcastError

ProjectBroadcastStatus

broadcast status

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the broadcast
project_idstringproject which owns the broadcast
broadcast_idstringoptional
durationuint32optionalbroadcast duration (ms)
startgoogle.protobuf.Timestampoptionalbroadcast start timestamp (ISO8601 UTC)
stopgoogle.protobuf.Timestampoptionalbroadcast stop timestamp (ISO8601 UTC)
phaseProjectBroadcastPhasebroadcast phase
regionRegionoptionalregion broadcast is located
datacenterstringoptionaldatacenter broadcast is located

ProjectCreateEvent

a project was created

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
projectProjectthe new project

ProjectDeleteEvent

a project was deleted

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id

ProjectEvent

FieldTypeLabelDescription
createProjectCreateEvent
updateProjectUpdateEvent
deleteProjectDeleteEvent
stateProjectBroadcastStateEvent

ProjectTrigger

the trigger type (select one)

FieldTypeLabelDescription
sourceSourceTriggerstart/stop project with source

WebRtcTrigger webrtc = 2;

ProjectUpdateEvent

a project was updated

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
update_maskstringrepeatedthe fields that were updated
projectProjectthe updated project

RefreshAccessTokenRequest

RefreshAccessTokenResponse

RemoveSourceFromProjectRequest

FieldTypeLabelDescription
collection_idstringthe id of the parent Collection
project_idstringthe id of the Project
source_idstringthe id of the Source
forcebooloptionaldelete a live source even if it is in use in a broadcast

RemoveSourceFromProjectResponse

FieldTypeLabelDescription
projectProjectupdated project
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

Rendering

composition parameters

FieldTypeLabelDescription
videoVideoRenderingoptionalcomposition video parameters
audioAudioRenderingoptionalcomposition audio parameters
qualityRenderingQualityoptionalrendering quality
target_latencyuint32optionaltarget end-to-end latency (in ms)
complexityint32optionalestimated composition complexity (where 0 is nominal complexity)

RtmpPullAddress

rtmp pull addressing

FieldTypeLabelDescription
urlstringrtmp source url

S3StorageAddress

FieldTypeLabelDescription
regionstringcloud region
bucketstringcloud bucket
prefixstringoptionalcloud bucket prefix
access_keystringcloud access key
secret_keystringcloud secret key
tokenstringoptionaltoken based auth
token_durationint32optionaltoken duration in ms
aclS3ACLoptionalaccess control list
endpointstringoptionalendpoint for non aws s3 destinations
packagingObjectStoragePackagingthe format of the files to be written

SceneComposition

compose scenes using the browser-based compositor

FieldTypeLabelDescription
renderer_urlstringoptionalthe url to pass to the studiosdk
selected_layout_idstringoptionalthe active "scene" to render
debugbooloptional

Source

collection live source

FieldTypeLabelDescription
collection_idstringcollection which owns the source
source_idstringcollection source id
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this collection source
previewPreviewAddressoptionalpreview addresses
addressSourceAddresssource address

SourceAddEvent

FieldTypeLabelDescription
collection_idstring
source_idstring
project_idstring
sourceSource

SourceAddress

live source address (select one)

FieldTypeLabelDescription
rtmp_pushSourceRtmpPushAddressrtmp push addressing
srt_pushSrtPushAddressthe srt address to publish to
rtmp_pullRtmpPullAddressthe rtmp address to pull from

the srt address to pull from
SrtPullAddress srt_pull = 4;

SourceCreateEvent

FieldTypeLabelDescription
collection_idstringcollection which owns the source
source_idstringsource id
sourceSource

SourceDeleteEvent

FieldTypeLabelDescription
collection_idstring
source_idstring

SourceEvent

FieldTypeLabelDescription
createSourceCreateEvent
updateSourceUpdateEvent
deleteSourceDeleteEvent
addSourceAddEvent
removeSourceDeleteEvent
stateSourceStateEvent

SourceRemoveEvent

FieldTypeLabelDescription
collection_idstring
source_idstring
project_idstring

SourceRtmpPushAddress

rtmp push source address

FieldTypeLabelDescription
enabledbooloptionalenable source rtmp push address
keystringoptionalassigned rtmp stream key
urlstringoptionalassigned rtmp destination url
base_urlstringoptionalbase_url without stream key

SourceStateEvent

the state of a destination changed

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the source
project_idstringproject id
source_idstringdestination id
connectConnectStatethe state of the connection changed

SourceTrigger

triggers to indicate what actions to take on the project for a given Source

FieldTypeLabelDescription
source_idstringthe id of the source
startSourceTriggerActionoptionalsource should trigger project(s) to start
stopSourceTriggerActionoptionalsource should trigger project(s) to stop

SourceUpdateEvent

FieldTypeLabelDescription
collection_idstring
source_idstring
update_maskstringrepeated
sourceSource

SrtPushAddress

srt push addressing

FieldTypeLabelDescription
enabledbooloptionalenable source srt push address
stream_idstringoptionalassigned srt streamid
urlstringoptionalassigned srt destination url
base_urlstringoptionalbase_url without streamid

StartProjectBroadcastRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
webrtc_startbooloptionalalso start webrtc room

StartProjectBroadcastResponse

FieldTypeLabelDescription
broadcast_idstringthe id of the broadcast started

StartProjectWebRtcRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id

StartProjectWebRtcResponse

StopProjectBroadcastRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
webrtc_stopbooloptionalstop the associated webrtc room,

StopProjectBroadcastResponse

StopProjectWebRtcRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id

StopProjectWebRtcResponse

StudioSdkComposition

compose using the studiosdk renderer

FieldTypeLabelDescription
renderer_urlstringoptionalthe page to render studio kit with. If set, this takes priority over version
versionstringoptionalthe version of the studio kit renderer to use. Ignored if renderer_url is set

UpdateCollectionRequest

FieldTypeLabelDescription
collection_idstringcollection id
update_maskgoogle.protobuf.FieldMaskfields to update
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this collection

UpdateCollectionResponse

FieldTypeLabelDescription
collectionCollectionthe updated collection

UpdateDestinationRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the destination
project_idstringproject which owns the destination
destination_idstringdestination id
update_maskgoogle.protobuf.FieldMaskfields to update (default updates any non-null field)
metadatagoogle.protobuf.Valueoptionalarbitrary metadata associated with this destination
addressDestinationAddressoptionaldestination address (select one)
enabledbooloptionalenable or disable this destination
timeoutuint32optionaltimeout (in milliseconds) to wait before resetting a connection

UpdateDestinationResponse

FieldTypeLabelDescription
destinationDestinationupdated destination
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

UpdateProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject id
update_maskgoogle.protobuf.FieldMaskfields to update
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this project
renderingRenderingoptionalcomposition parameters
encodingEncodingoptionalencoding parameters
compositionCompositionoptionalcomposition/layout source of the broadcast
max_durationuint32optionalmaximum duration of project broadcasts (ms)
webrtcWebRtcoptionalconfiguration for webrtc services (if requested)
locationLatLongoptionaloptimal broadcast location (for routing and delay)

UpdateProjectResponse

FieldTypeLabelDescription
projectProjectupdated project
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

UpdateSourceInProjectRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project
project_idstringproject which will own the source
source_idstringlive source id
update_maskgoogle.protobuf.FieldMaskfields to update (default updates any non-null field)
triggerSourceTriggeroptionalallow this source to trigger a project broadcast

UpdateSourceInProjectResponse

FieldTypeLabelDescription
projectProjectupdated project

UpdateSourceRequest

FieldTypeLabelDescription
collection_idstringcollection which owns the project which owns the source
source_idstringsource id
update_maskgoogle.protobuf.FieldMaskfields to update (default updates any non-null field)
metadatagoogle.protobuf.Valueoptionalarbitrary metadata to associate with this source
addressSourceAddressoptionaltype of collection live source
previewPreviewAddressoptionalenable real-time previews

UpdateSourceResponse

FieldTypeLabelDescription
sourceSourceupdated source
broadcast_updatedboolindicates whether the broadcast was updated as a function of this request

VideoCodecRateControl

video encoding CBR rate control params

FieldTypeLabelDescription
modeVideoCodecRateControlModeoptional
target_bitrateuint32optionalvideo encoding target bitrate (bits/s)
max_key_frame_intervaluint32optionalmaximum video encoding key frame interval (frames)

VideoEncoding

encoding video parameters

FieldTypeLabelDescription
codecVideoCodecoptionalvideo encoding codec
rate_controlVideoCodecRateControloptionalvideo encoding rate control
profileVideoCodecProfileoptionalvideo encoding codec profile

VideoRendering

composition video parameters

FieldTypeLabelDescription
heightuint32optionalcanvas height (pixels)
widthuint32optionalcanvas width (pixels)
frameratefloatoptionalcanvas frame rate (frames/s)
color_spaceVideoColorSpaceoptionalrendering color space

WebRtc

webrtc service (select one)

FieldTypeLabelDescription
hostedHostedWebRtchosted webrtc configuration

WebRtcAccess

webrtc access parameters

FieldTypeLabelDescription
access_tokenstringaccess token for webrtc room
participant_idstringoptionalthe id this user was assigned in the webrtc room

WebRtcTrigger

optional string service_user_id = 1;

FieldTypeLabelDescription
stopSourceTriggerActionoptionalwebrtc stop should trigger project to stop

Enums

AudioChannelLayout

audio channel layout

NameNumberDescription
AUDIO_CHANNEL_LAYOUT_UNSPECIFIED0
AUDIO_CHANNEL_LAYOUT_STEREO1

AudioCodec

audio encoding codec

NameNumberDescription
AUDIO_CODEC_UNSPECIFIED0
AUDIO_CODEC_AAC1

ConnectState

the state of the connection

NameNumberDescription
CONNECT_STATE_UNSPECIFIED0
CONNECT_STATE_CONNECTED1
CONNECT_STATE_DISCONNECTED2

EventSubType

NameNumberDescription
EVENT_SUB_TYPE_UNSPECIFIED0
EVENT_SUB_TYPE_CREATE1
EVENT_SUB_TYPE_UPDATE2
EVENT_SUB_TYPE_DELETE3
EVENT_SUB_TYPE_ADD4
EVENT_SUB_TYPE_REMOVE5
EVENT_SUB_TYPE_STATE6

EventType

NameNumberDescription
EVENT_TYPE_UNSPECIFIED0
EVENT_TYPE_COLLECTION1
EVENT_TYPE_PROJECT2
EVENT_TYPE_SOURCE4
EVENT_TYPE_DESTINATION5

ImageFormat

image binary format

NameNumberDescription
IMAGE_FORMAT_UNSPECIFIED0
IMAGE_FORMAT_JPEG1

ProjectBroadcastError

an error that occured during a broadcast

NameNumberDescription
PROJECT_BROADCAST_ERROR_UNSPECIFIED0
PROJECT_BROADCAST_ERROR_INTERNAL1
PROJECT_BROADCAST_ERROR_DURATION_EXCEEDED2

ProjectBroadcastPhase

broadcast phase of project

NameNumberDescription
PROJECT_BROADCAST_PHASE_UNSPECIFIED0
PROJECT_BROADCAST_PHASE_NOT_RUNNING1
PROJECT_BROADCAST_PHASE_WAITING2broadcast is waiting to be scheduled
PROJECT_BROADCAST_PHASE_STARTING3
PROJECT_BROADCAST_PHASE_RUNNING4
PROJECT_BROADCAST_PHASE_STOPPING5
PROJECT_BROADCAST_PHASE_STOPPED6
PROJECT_BROADCAST_PHASE_ARCHIVED7

Region

region which is hosting broadcast

NameNumberDescription
REGION_UNSPECIFIED0
REGION_US_EAST_11US East
REGION_US_EAST_22
REGION_US_WEST_13US West
REGION_US_WEST_24
REGION_US_CENTRAL_15US Central
REGION_AP_SOUTHEAST_110Asia Pacific Southeast
REGION_CA_EAST_120Canada East
REGION_EU_CENTRAL_130Europe Central
REGION_EU_WEST_131Europe West

RenderingQuality

rendering quality

NameNumberDescription
RENDERING_QUALITY_UNSPECIFIED0
RENDERING_QUALITY_STANDARD1
RENDERING_QUALITY_HIGH2

Role

defined roles

NameNumberDescription
ROLE_UNSPECIFIED0
ROLE_HOST1
ROLE_COHOST2
ROLE_CONTRIBUTOR3
ROLE_GUEST4
ROLE_VIEWER5
ROLE_RENDERER6
ROLE_PLATFORM7
ROLE_IMPERSONATE8

S3ACL

NameNumberDescription
S3ACL_UNSPECIFIED0
S3ACL_PRIVATE1
S3ACL_PUBLIC_READ2
S3ACL_PUBLIC_READ_WRITE3
S3ACL_AUTHENTICATED_READ4
S3ACL_BUCKET_OWNER_READ5
S3ACL_BUCKET_OWNER_FULL_CONTROL6

SourceTriggerAction

boolean logic for trigger

NameNumberDescription
SOURCE_TRIGGER_ACTION_UNSPECIFIED0
SOURCE_TRIGGER_ACTION_IGNORE1
SOURCE_TRIGGER_ACTION_OR3SOURCE_TRIGGER_ACTION_AND = 2;

VideoCodec

video encoding codec

NameNumberDescription
VIDEO_CODEC_UNSPECIFIED0
VIDEO_CODEC_H2641

VideoCodecProfile

video encoding codec profile

NameNumberDescription
VIDEO_CODEC_PROFILE_UNSPECIFIED0
VIDEO_CODEC_PROFILE_BASELINE2
VIDEO_CODEC_PROFILE_MAIN3
VIDEO_CODEC_PROFILE_HIGH4

VideoCodecRateControlMode

video encoding rate control mode

NameNumberDescription
VIDEO_CODEC_RATE_CONTROL_MODE_UNSPECIFIED0
VIDEO_CODEC_RATE_CONTROL_MODE_CBR1constant bit rate encoding

VideoColorSpace

rendering color space

NameNumberDescription
VIDEO_COLOR_SPACE_UNSPECIFIED0
VIDEO_COLOR_SPACE_YUV4201

Scalar Value Types (Reference)

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)