enough-match-43171
12/16/2025, 3:36 PMtall-airline-16756
12/16/2025, 3:36 PMtall-airline-16756
12/16/2025, 3:37 PMimport { RoomServiceClient } from 'livekit-server-sdk';
const roomService = new RoomServiceClient('host', 'api-key', 'api-secret');
await roomService.updateRoomMetadata('my-room', 'new metadata');
• Python
from livekit.api import UpdateRoomMetadataRequest
await lkapi.room.update_room_metadata(UpdateRoomMetadataRequest(room='my-room', metadata='new metadata'))
• Go
_, err := roomClient.UpdateRoomMetadata(ctx, &livekit.UpdateRoomMetadataRequest{
Room: "my-room",
Metadata: "new metadata",
})
Client — listen for metadata changes
• Subscribe to the RoomMetadataChanged event in your client SDK so all participants receive updates when metadata changes.
◦ JavaScript/TypeScript
room.on(RoomEvent.RoomMetadataChanged, (newMetadata) => {
console.log('Room metadata changed:', newMetadata);
});
• Swift
func room(_ room: Room, didUpdateMetadata newMetadata: String?) {
print("Room metadata changed: \(newMetadata ?? "nil")")
}
• Kotlin
room.events.collect { event ->
if (event is RoomEvent.RoomMetadataChanged) {
println("Room metadata changed: ${event.metadata}")
}
}
• Flutter
room.on<roommetadatachangedevent>((event) {
print('Room metadata changed: ${event.metadata}');
});
• Python
@room.on("room_metadata_changed")
def on_room_metadata_changed(metadata: str):
print("Room metadata changed:", metadata)
Notes
• Initial metadata can be set on room creation.
• Metadata size limit: 64 KiB UTF-8 text.
• All participants receive the RoomMetadataChanged event.
Would you like the exact code for your server language or the client SDK you’re using?
Sources: Room metadata | LiveKit docs | server-sdk-js | livekit/livekit_composite | DeepWiki | Participant attributes and metadata | LiveKit docs | Handling events | LiveKit docs | Managing participants | LiveKit docs