This is the code written during the live Twilio Video demo during Twilio's January 2025 Level Up.
It creates a video application that displays a virtual knitting circle and populates each yarn ball with an HTML video element when a participant enters the Room.
The backend of the application is a Flask server.
The main branch contains the base code where we began our live demo.
Check out the demo
branch to see the completed code that we wrote during the session.
You'll need Python3 to run the demo server, which serves the webpage and generates Video Access Tokens.
To install the required dependencies, run the following code in your terminal:
python3 -m venv venv # create a virtual environment
source venv/bin/activate
pip install -r requirements.txt
Next, create a .env
file. You'll put your account
credentials in that file, so that the server can
connect to Twilio.
touch .env
Open the .env
file and add the following Twilio account credentials:
TWILIO_ACCOUNT_SID=<your account SID>
TWILIO_API_KEY=<your api key>
TWILIO_API_SECRET=<your api key secret>
You can find your account SID in the Twilio Console Dashboard.
You can create a new API key and get the secret through the Twilio Console.
To start the Flask server, run the following code:
source venv/bin/activate
python server.py
This will start a server that you can access on your
local machine at port 5000 (localhost:5000
). You can view the application
at http://localhost:5000.
This app users ad-hoc (or client-side) Room creation. Make sure client-side room creation is enabled in the Twilio Console.
Can't wait to see what you build with Twilio Video!
demo
: The code we wrote in this class (to be committed after the demo is over).
- Video Insights
- Preflight check API
- RTC Diagnostics SDK
- Video Diagnostics App
- Video Monitor
- Network Quality API
- Video API: Create and manage resources like Rooms and Participants from your server
- Dominant Speaker Detection: Detect the currently active speaker in a Room
- Track Subscription API: Fine-tune which tracks participants will subscribe to in a Room
- Recordings and compositions: Record group rooms and lay them out in a specific format with compositions.
- Simulcast: Use simulcast to enhance the quality of group rooms for participants with different connectivity options
- Network Bandwidth Profile API: Specify how tracks will be prioritized based on participant bandwidth