Skip to the content.

API Reference

This is the API reference for the Godot-LiveKit GDExtension.


Core Classes

LiveKitRoom

Represents a LiveKit room. Handles connecting, disconnecting, and room-level signals.

Properties:

Methods:

Signals:

Enums:


Participants

Object Lifetime: LiveKitParticipant, LiveKitTrack, and LiveKitTrackPublication objects hold non-owning references to internal SDK state. These objects become stale after the participant disconnects, the room disconnects, or the track is unpublished. Accessing properties on a stale object returns default values (empty strings, 0, false). Do not cache these objects across connection lifecycles — obtain fresh references after reconnecting.

LiveKitParticipant

Base class for a user in the room.

Methods:

Enums:

LiveKitLocalParticipant (Inherits LiveKitParticipant)

Represents the local user. Handles publishing tracks, data, and RPC.

Methods:

Signals:

LiveKitRemoteParticipant (Inherits LiveKitParticipant)

Represents a remote user.

Methods:


Tracks

LiveKitTrack

Base class for media tracks.

Methods:

Signals:

Enums:

LiveKitLocalAudioTrack (Inherits LiveKitTrack)

A local audio track created from a LiveKitAudioSource.

Static Methods:

Methods:

LiveKitLocalVideoTrack (Inherits LiveKitTrack)

A local video track created from a LiveKitVideoSource.

Static Methods:

Methods:

LiveKitRemoteAudioTrack (Inherits LiveKitTrack)

A remote audio track received from another participant.

LiveKitRemoteVideoTrack (Inherits LiveKitTrack)

A remote video track received from another participant.


Track Publications

LiveKitTrackPublication

Base class for track publications. A publication represents a track that has been published to the room.

Methods:

LiveKitLocalTrackPublication (Inherits LiveKitTrackPublication)

Represents a track published by the local participant.

LiveKitRemoteTrackPublication (Inherits LiveKitTrackPublication)

Represents a track published by a remote participant.

Methods:


Media Sources

LiveKitAudioSource

Source for creating local audio tracks. Allows capturing audio data from Godot and sending it to the room.

Static Methods:

Methods:

LiveKitVideoSource

Source for creating local video tracks. Allows capturing video frames from Godot and sending them to the room.

Static Methods:

Methods:


Media Streams

LiveKitVideoStream

Receives video frames from a remote video track and provides them as an ImageTexture.

Properties:

Static Methods:

Methods:

Signals:

LiveKitAudioStream

Receives audio frames from a remote audio track and pipes them into Godot’s audio system.

Static Methods:

Methods:


Screen Capture

LiveKitScreenCapture

Captures screen content from monitors or individual windows using the native frametap library. Frames are delivered as ImageTexture / Image objects that can be fed into a LiveKitVideoSource for publishing.

Properties:

Static Query Methods:

Factory Methods:

Capture Lifecycle:

Frame Access:

Cleanup:

Auto-Poll:

Signals:

Enums:


End-to-End Encryption (E2EE)

LiveKitE2eeOptions

Configuration options for end-to-end encryption. Pass this to the connect_to_room() options dictionary under the "e2ee" key.

Methods:

Enums:

LiveKitKeyProvider

Manages encryption keys for E2EE. Supports shared keys and per-participant keys with ratcheting.

Methods:

LiveKitFrameCryptor

Controls encryption for an individual participant’s media frames.

Methods:

LiveKitE2eeManager

Top-level manager for E2EE. Access via LiveKitRoom.get_e2ee_manager().

Methods: