openvidu-node-client API


This is a Node library wrapping OpenVidu Server REST API

Check TypeDoc documentation


Code samples 🔗

Create a Session 🔗

var openvidu = new OpenVidu(OPENVIDU_URL, OPENVIDU_SECRET);
var properties = {};
openVidu.createSession(properties).then(session => { ... });

Create a Connection 🔗

var connectionProperties = {
    role: "PUBLISHER",
    data: "user_data"
};
session.createConnection(connectionProperties).then(connection => { 
    var token = connection.token; // Send this string to the client side
});

Update a Connection 🔗

This feature is part of OpenViduPRO tier.
var connectionProperties = {
    type: "WEBRTC",
    role: "MODERATOR",
    record: false
};
var connectionId = connection.connectionId;
session.updateConnection(connectionId, connectionProperties).then(connection => { ... });

Publish an IP camera 🔗

var connectionProperties = {
    type: "IPCAM",
    rtspUri: "rtsp://your.camera.ip:7777/path",
    adaptativeBitrate: true,
    onlyPlayWithSubscribers: true,
    networkCache: 2000
};
// "session" being a Session object
session.createConnection(connectionProperties)
    .then(ipcamConnection => { ... })
    .catch(error => console.error(error));

Fetch Session status 🔗

// Fetch all session info from OpenVidu Server
openvidu.fetch()
  .then(anyChange => {
      var activeSessions = openvidu.activeSessions;
  });

// Fetch one session info from OpenVidu Server
session.fetch()
  .then(anyChange => {
      var activeConnections = session.activeSessions;
  });

Close a Session 🔗

session.close().then(() => console.log('Session closed'));

Destroy a Connection 🔗

// Find the desired Connection object in the array Session.activeConnections
session.forceDisconnect(connection);

Unpublish a stream 🔗

// Find the desired Publisher object in the array Connection.publishers
session.forceUnpublish(publisher);

Manage recordings 🔗

// Start recording
var sessionId = session.getSessionId();
openVidu.startRecording(sessionId).then(recordingStarted => ... );

// Stop recording
var recordingId = recordingStarted.id;
openvidu.stopRecording(recordingId).then(recordingStopped => ... );

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

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

// Delete recording
openVidu.deleteRecording(recordingId);