openvidu-java-client API


This is a Java library wrapping OpenVidu REST API


Installation 🔗

See dependency at Maven Central.

openvidu-java-client SDK requires Java 11 or higher



Documentation 🔗

JavaDoc documentation



Code samples 🔗

Create a Session 🔗

OpenVidu openvidu = new OpenVidu(OPENVIDU_URL, OPENVIDU_SECRET);
SessionProperties properties = new SessionProperties.Builder().build();
Session session = openVidu.createSession(properties);

Create a Connection 🔗

ConnectionProperties connectionProperties = new ConnectionProperties.Builder()
    .type(ConnectionType.WEBRTC)
    .role(OpenViduRole.PUBLISHER)
    .data("user_data")
    .build();
Connection connection = session.createConnection(connectionProperties);
String token = connection.getToken(); // Send this string to the client side

Update a Connection 🔗

This feature is part of OpenVidu PRO and ENTERPRISE editions.
ConnectionProperties connectionProperties = new ConnectionProperties.Builder()
    .role(OpenViduRole.MODERATOR)
    .record(false)
    .build();
String connectionId = connection.getConnectionId();
session.updateConnection(connectionId, connectionProperties);

Publish an IP camera 🔗

ConnectionProperties connectionProperties = new ConnectionProperties.Builder()
    .type(ConnectionType.IPCAM)
    .rtspUri("rtsp://your.camera.ip:7777/path")
    .adaptativeBitrate(true)
    .onlyPlayWithSubscribers(true)
    .networkCache(2000)
    .build();
// "session" being a Session object
Connection ipcamConnection = session.createConnection(connectionProperties);

Fetch Session status 🔗

// Fetch all session info from OpenVidu Server
openvidu.fetch():
List<Session> activeSessions = openvidu.getActiveSessions();

// Fetch one session info from OpenVidu Server
session.fetch();
List<Connection> activeConnections = session.getActiveConnections();

Close a Session 🔗

session.close();

Destroy a Connection 🔗

// Find the desired Connection object in the list returned by Session.getActiveConnections()
session.forceDisconnect(connection);

Unpublish a stream 🔗

// Find the desired Publisher object in the list returned by Connection.getPublishers()
session.forceUnpublish(publisher);

Manage recordings 🔗

// Start recording
String sessionId = session.getSessionId();
RecordingProperties properties = new RecordingProperties.Builder().build();
Recording recordingStarted = openVidu.startRecording(sessionId, properties);

// Stop recording
String recordingId = recordingStarted.getId();
Recording recordingStopped = openvidu.stopRecording(recordingId);

// Get recording
Recording recordingRetrieved = openvidu.getRecording(recordingId);

// List recordings
List<Recording> recordingList = openVidu.listRecordings();

// Delete recording
openVidu.deleteRecording(recordingId);