Skip to contentSkip to navigationSkip to topbar
Page tools
Useful for sharing or LLM
Accelerate development with AI

On this page
Looking for more inspiration?Visit the

Video Media SDK for Node.js overview


(new)

Public Beta

The Video Media SDK for Node.js has been released as a Public Beta product. Before Twilio declares this product as Generally Available, the information contained in this document might change. Twilio might implement additional features or change others. No Twilio SLA(link takes you to an external page) covers Public Beta products.

The Video Media SDK for Node.js provides a server-side SDK for Twilio Video Group Rooms with raw media frame access. It lets a Node.js process join a Room and push and receive media frames. A media frame includes the decoded video, audio, and data track messages that flow through the Room one frame at a time. Twilio built the SDK on top of Web Real-Time Communication (WebRTC)(link takes you to an external page), so it doesn't require a browser or a device.

The SDK shares the Room, Participant, and Track model and event names with the Twilio Video JavaScript SDK. It connects with the same Access Token and VideoGrant format. If you know the JavaScript SDK, most concepts carry over.

To learn the differences between the client and server SDKs, see Differences from the JavaScript SDK.

The Video Media SDK for Node.js processes real-time media in a Room. It differs from the twilio-node helper library(link takes you to an external page), which calls the Twilio REST APIs. You can use both in the same app. You can create an Access Token with twilio-node and move media with the Media SDK.

To try an example, see the examples directory(link takes you to an external page) in the SDK repository.


System requirements

system-requirements page anchor

The SDK ships a prebuilt native binary for the following platforms:

  • Node.js version 24.0.0 or later.
  • Linux running on a 64-bit system.
  • macOS running on a 64-bit system.
(information)

Apple Silicon Macs

The native binary only works on 64-bit systems.

  1. On an Apple Silicon (M-series) Mac, install Rosetta.
    /usr/sbin/softwareupdate --install-rosetta --agree-to-license
  2. Install Node.js(link takes you to an external page).
    If the installation fails, the command returns npm error code EBADPLATFORM.
  3. Verify that the Node installed a 64-bit version.
    node -e "console.log(process.arch)"
    macOS running Apple Silicon returns arm64.