LiveKit tutorials
This site contains simple, functional and comprehensible guided tutorials for LiveKit applications. They all offer basically the same functionality, but built with different platforms in the client side and the server side, all compatible with each other. Just choose the ones that better fit your needs.
You can use them purely for didactic purposes, but also as a solid starting point to build your own application.
What is LiveKit?#
LiveKit is an open source, cutting edge, end-to-end WebRTC stack with which you can build ultra-low latency real-time audio and video applications. It offers the latest technologies in terms of real-time media, and a fantastic collection of SDKs for both your application's server and client.
With the power of LiveKit you can add video conferencing capabilities to your platform, build the next big live streaming application or even add AI processing to your media flow (such as AI conversational agents or computer-vision recognition). The possibilities are truly endless!
Architecture of a Livekit application#
Any LiveKit application has 3 different parts:
- Your LiveKit Server: provides all the necessary infrastructure for streaming real-time audio and video. It can usually be treated as a black box in which its internal aspects are not important: you just deploy it and connect your application to it.
- Your Application Client: runs in your user devices and interacts with the LiveKit deployment through any LiveKit Client SDK. Your users will join rooms as participants to send and receive real-time audio and video tracks. It needs a token generated by the Application Server to join a room. Here you can find examples of Application Clients in different frontend languages: Application Clients.
- Your Application Server: interacts with the LiveKit deployment through any LiveKit Server SDK. At a minimum, it is responsible for the generation of tokens for the Application Client to join a room. But you can implement your own business logic managing rooms, participants and tracks from the safety of your Application Server. Here you can find examples of Application Servers in different backend languages: Application Servers.
Tutorials#
Application client tutorials#
Every application client below shares the same core functionality:
- Users request a LiveKit token to any application server to connect to a room.
- Users may publish their camera, microphone and screen-share.
- Users automatically subscribe to all media published by other users.
- Users may leave the room at any time.
Every application client below is interchangeable with the others, because:
- All of them are compatible with each other, meaning that participants are able to join the same LiveKit room from any of the client applications.
- All of them are compatible with any application server, meaning that they can request a LiveKit token from any of the server applications.
Application server tutorials#
Every application server below has two specific purposes:
- Generate LiveKit tokens on demand for any application client.
- Receive LiveKit webhook events.
To do so they all define two REST endpoints:
/token
: takes a room and participant name and returns a token./webhook
: for receiving webhook events from LiveKit Server.
They use the proper LiveKit Server SDK for their language, if available.
Advanced features tutorials#
Explore more advanced features of LiveKit! For now, we have implemented a basic recording tutorial and an advanced one, but our tutorials for streaming and ingesting are coming soon.
About the authors of this site#
This site has been created and is maintained by the OpenVidu team. OpenVidu developers have been working with real-time media for over a decade. We first developed Kurento as a powerful media server with low-level capabilities, and then built OpenVidu as a higher-level platform to simplify the development of real-time applications.
As the years went by, we continued to improve OpenVidu, making it more efficient, more versatile and more feature-rich. We finally made the decision to embrace mediasoup as the internal engine of the platform. mediasoup is an open source SFU designed down to the last detail to deliver the highest possible performance. We love this project: we are very close to it and have collaborated on it on several occasions.
We have helped thousands of developers, companies and organizations to build their real-time applications. Over the years we have seen a myriad of successful use cases built on top of OpenVidu: e-learning, telemedicine, video conferencing, live streaming, proctoring, real-time surveillance, remote assistance... The list goes on and on.
We are now bringing our expertise to LiveKit, and integrating its amazing WebRTC stack directly into OpenVidu.
Check out section What is OpenVidu? to learn more about how OpenVidu can help you take your LiveKit applications to the next level.