Get desktop application:
View/edit binary Protocol Buffers messages
start recording or streaming a room, participant, or tracks
update web composite layout
add or remove stream endpoints
list available egress
(optional, used to filter results)
stop a recording or stream
Create a new Ingress
User provided identifier for the ingress
room to publish to
publish as participant
name of publishing participant (used for display only)
Update an existing Ingress. Ingress can only be updated when it's in ENDPOINT_WAITING state.
when blank, lists all ingress endpoints
Room service that can be performed on any node they are Twirp-based HTTP req/responses
Creates a room with settings. Requires `roomCreate` permission. This method is optional; rooms are automatically created when clients connect to them for the first time.
name of the room
number of seconds to keep the room open if no one joins
limit number of participants that can be in a room
override the node room is allocated to, for debugging
metadata of room
egress
List rooms that are active on the server. Requires `roomList` permission.
when set, will only return rooms with name match
Deletes an existing room by name or id. Requires `roomCreate` permission. DeleteRoom will disconnect all participants that are currently in the room.
(message has no fields)
Lists participants in a room, Requires `roomAdmin`
name of the room
Get information on a specific participant, Requires `roomAdmin`
Removes a participant from room. Requires `roomAdmin`
(message has no fields)
Mute/unmute a participant's track, Requires `roomAdmin`
Update participant metadata, will cause updates to be broadcasted to everyone in the room. Requires `roomAdmin`
Subscribes or unsubscribe a participant from tracks. Requires `roomAdmin`
empty for now
(message has no fields)
Send data over data channel to participants in a room, Requires `roomAdmin`
(message has no fields)
Update room metadata, will cause updates to be broadcasted to everyone in the room, Requires `roomAdmin`
Used in:
Used in:
client ID of track, to match it when RTC track is received
to be deprecated in favor of layers
true to add track and initialize to muted
true if DTX (Discontinuous Transmission) is disabled for audio
server ID of track, publish new codec to exist track
Used in:
udp, tcp, turn
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
,Used in:
, , ,Used in:
Used in:
,server provided client configuration
Used in:
details about the client
Used in:
,wifi, wired, cellular, vpn, empty if not known
Used in:
Used in:
,Used in:
Used in:
Used in:
Used in:
new DataPacket API
Used in:
,Used as request type in: Ingress.DeleteIngress
Used as field type in:
Used as request type in: RoomService.DeleteRoom
Used as field type in:
name of the room
Used in:
(optional)
required
Used in:
Used in:
Used as response type in: Egress.StartRoomCompositeEgress, Egress.StartTrackCompositeEgress, Egress.StartTrackEgress, Egress.StopEgress, Egress.UpdateLayout, Egress.UpdateStream
Used as field type in:
, , ,request metadata
request
Used in:
Used in:
,(optional)
(optional)
required
Used in:
file type chosen based on codecs
Used in:
,(default 1920)
(default 1080)
(default 24)
(default 30)
(default OPUS)
(default 128)
(default 44100)
(default H264_MAIN)
(default 4500)
Used in:
,1280x720, 30fps, 3000kpbs, H.264_MAIN / OPUS
1280x720, 60fps, 4500kbps, H.264_MAIN / OPUS
1920x1080, 30fps, 4500kbps, H.264_MAIN / OPUS
1920x1080, 60fps, 6000kbps, H.264_MAIN / OPUS
720x1280, 30fps, 3000kpbs, H.264_MAIN / OPUS
720x1280, 60fps, 4500kbps, H.264_MAIN / OPUS
1080x1920, 30fps, 4500kbps, H.264_MAIN / OPUS
1080x1920, 60fps, 6000kbps, H.264_MAIN / OPUS
Used in:
(message has no fields)
Used in:
Used in:
, , ,Query an ingress info from an ingress ID or stream key
Used in:
Used in:
, ,desired mime_type to publish to room
Used as response type in: Ingress.CreateIngress, Ingress.DeleteIngress, Ingress.UpdateIngress
Used as field type in:
, , , ,for RTMP input, it'll be a rtmp:// URL for FILE input, it'll be a http:// URL for SRT input, it'll be a srt:// URL
Description of error/stream non compliance and debug info for publisher otherwise (received bitrate, resolution, bandwidth)
Used in:
,FILE_INPUT = 1; SRT_INPUT = 2; URL_INPUT = 3;
request metadata
Used in:
Error/non compliance description if any
ID of the current/previous room published to
Used in:
Used in:
, ,desired mime_type to publish to room
simulcast layers to publish, when empty, it'll pick default simulcast layers at 1/2 and 1/4 of the dimensions
Used in:
uint32 bitrate = 2;
Used in:
uint32 bitrate = 2;
Used in:
deprecated. use server_info.version instead.
use subscriber as the primary PeerConnection
when the current server isn't available, return alternate url to retry connection when this is set, the other fields will be largely empty
deprecated. use server_info.region instead.
Used in:
(message has no fields)
Used in:
,sent when server initiates the disconnect due to server-restart indicates clients should attempt full-reconnect sequence
Used as request type in: RoomService.MutePublishedTrack
Used as field type in:
name of the room
sid of the track to mute
set to true to mute, false to unmute
Used in:
,Used in:
Used in:
when server was started
when server last reported its status
room
packet
system
retransmissions
participant joins
Used in:
Used as response type in: RoomService.GetParticipant, RoomService.UpdateParticipant
Used as field type in:
, , , ,timestamp when participant joined room, in seconds
indicates the participant has an active publisher connection and can publish to the server
Used in:
websocket' connected, but not offered yet
server received client offer
ICE connectivity established
WS disconnected
Used in:
,allow participant to subscribe to other tracks in the room
allow participant to publish new tracks to room
allow participant to publish data
indicates that it's hidden to others
indicates it's a recorder instance
Used in:
,participant ID of participant to whom the tracks belong
Used in:
message to RTC nodes
internal messages
Used as response type in: RoomService.CreateRoom, RoomService.UpdateRoomMetadata
Used as field type in:
, , , ,composite using a web browser
Used as request type in: Egress.StartRoomCompositeEgress
Used as field type in:
, ,required
(optional)
(default false)
(default false)
(default https://recorder.livekit.io)
required
(default H264_720P_30)
(optional)
Used in:
room info that should not be returned to clients
Used as request type in: RoomService.GetParticipant, RoomService.RemoveParticipant
Used as field type in:
name of the room
identity of the participant
Used in:
Used in:
, , ,Used to generate HLS segments or other kind of segmented output
Used in:
,(optional)
(optional)
(optional)
(optional)
required
Used in:
Used in:
Used as request type in: RoomService.SendData
Used as field type in:
details about the server
Used in:
additional debugging information. sent only if server is in development mode
Used in:
Used in:
, ,"answer" | "offer" | "pranswer" | "rollback"
message to Signal nodes
Used in:
initial join exchange, for publisher
participant answering publisher offer
mute the participant's published tracks
Subscribe or unsubscribe from tracks
Update settings of subscribed tracks
Immediately terminate session
Set active published layers, deprecated in favor of automatic tracking SetSimulcastLayers simulcast = 9; Update published video layers
Update subscriber permissions
sync client's subscribe state to server during reconnect
Simulate conditions, for client validations
client triggered ping to server
Used in:
sent when join is accepted
sent when server answers publisher
sent when server is sending subscriber an offer
sent when an ICE candidate is available
sent when participants in the room has changed
sent to the participant when their track has been published
Immediately terminate session
server initiated mute
indicates changes to speaker status, including when they've gone to not speaking
sent when metadata of the room has changed
when connection quality changed
when streamed tracks state changed, used to notify when any of the streams were paused due to congestion
when max subscribe quality changed, used by dynamic broadcasting to disable unused layers
when subscription permission changed
update the token the client was using, to prevent an active client from using an expired token
server initiated track unpublish
respond to ping
Used in:
,Used in:
simulate N seconds of speaker activity
simulate local node failure
simulate migration
server to send leave
switch candidate protocol to tcp
Used in:
Used in:
Used in:
,audio level, 0-1.0, 1 is loudest
true if speaker is currently active
Used in:
request metadata
request
connection info
Used in:
if a client is reconnecting (i.e. resume instead of restart)
A user's ClaimGrants serialized in JSON
if reconnect, client will set current sid
Used as request type in: Egress.StopEgress
Used as field type in:
Used in:
Used in:
Used in:
Used in:
,required
required
Used in:
protocol chosen based on urls
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
,Used in:
Used in:
Used in:
Used in:
last subscribe answer before reconnecting
last received server side offer before reconnecting
containerize up to one audio and one video track
Used as request type in: Egress.StartTrackCompositeEgress
Used as field type in:
,required
(optional)
(optional)
required
(default H264_720P_30)
(optional)
record tracks individually, without transcoding
Used as request type in: Egress.StartTrackEgress
Used as field type in:
,required
required
required
Used in:
, , , , ,original width of video (unset for audio) clients may receive a lower resolution version with simulcast
original height of video (unset for audio)
true if track is simulcasted
true if DTX (Discontinuous Transmission) is disabled for audio
source of media
mime type of codec
Used in:
permission could be granted either by participant sid or identity
Used in:
,Used in:
, , ,Used in:
,Used in:
Used in:
,Used as request type in: Ingress.UpdateIngress
Used as field type in:
Used as request type in: RoomService.UpdateParticipant
Used as field type in:
metadata to update. skipping updates if left empty
set to update the participant's permissions
Used as request type in: RoomService.UpdateRoomMetadata
Used as field type in:
metadata to update. skipping updates if left empty
Used as request type in: Egress.UpdateStream
Used as field type in:
Used in:
,Used as request type in: RoomService.UpdateSubscriptions
Used as field type in:
list of sids of tracks
set to true to subscribe, false to unsubscribe from tracks
list of participants and their tracks
Used in:
when true, the track is placed in a paused state, with no new data returned
deprecated in favor of width & height
for video, width to receive
for video, height to receive
message to indicate published video track dimensions are changing
Used in:
Used in:
participant ID of user that sent the message
user defined payload
the ID of the participants who will receive the message (the message will be sent to all the people in the room if this variable is empty)
Used in:
Used in:
provide information about available spatial layers
Used in:
, , , ,for tracks with a single layer, this should be HIGH
target bitrate, server will measure actual
Used in:
, , ,one of room_started, room_finished, participant_joined, participant_left, track_published, track_unpublished, egress_started, egress_updated, egress_ended, ingress_started, ingress_ended
set when event is participant_* or track_*
set when event is egress_*
set when event is ingress_*
set when event is track_*
unique event uuid
timestamp in seconds