As we’ve all personally experienced, many face-to-face interactions have been replaced with virtual ones, over video. There are new use cases popping up every day from virtual court, to remote clienteling, to house viewings. That’s because more and more developers are looking to build video apps.
Customers such as MDLive are building telehealth applications, making healthcare more accessible. In the education space, Air Tutors is making tutoring more engaging with virtual whiteboards, annotations, and animation to bring subjects such as math to life.
At SIGNAL, we are announcing that Twilio Video WebRTC Go will be generally available. This is a 1:1 experience that developers configure and use with our Video JS, Android, and iOS SDKs. It’s a developer toolkit that removes the complexity of building directly on top of WebRTC. Not only is it generally available, it's also free. This is not just a free trial. Twilio Video WebRTC Go based video apps will be free for as long as a developer chooses to run their app with Twilio.
Now any developer can build, launch, and operate their own 1:1 video app — tutoring, volunteering, dating, and more — for free. Developers can get up and running in minutes with quick deploy reference apps for ReactJS, iOS, and Android, and troubleshoot applications using Video Log Analyzer and diagnostic tooling.
Why Twilio Video WebRTC Go?
Building a video app from scratch isn’t easy. WebRTC, the leading open source standard for video applications, provides support for all major browsers, handles real-time device access for microphones, cameras, and streaming to the internet. But developers still need to set up signaling, TURN for media relay, logging, diagnostics, and develop best practices to run their video apps.
Twilio Video WebRTC Go means developers can build their own WebRTC based video app and avoid many of the production pitfalls of coding directly on WebRTC.
Getting started with Twilio Video WebRTC Go
The Twilio Video WebRTC Go developer toolkit provides the following for free:
- Peer-to-peer topology for 1:1 video chats
- 25 GB/month of TURN for media relay, which averages out to about 100,000 participant minutes per month
- Documentation and refreshed quick deploy reference apps for iOS, Android, and ReactJS
- Video troubleshooting support with 48 hours of logging with the newly launched Video Log Analyzer
- Diagnostic tooling with RTC Diagnostics SDK (beta) and Video JS SDK Preflight API (beta) to test device and network setup
Using Video WebRTC Go is as easy as creating a Go Room, either via the REST API or by setting the default Room type to Go in the Console.
Via the REST API:
curl -X POST https://video.twilio.com/v1/Rooms \
--data-urlencode "StatusCallback=http://example.org" \
--data-urlencode "Type=go" \
--data-urlencode "UniqueName=DailyStandup" \
-u ACxxxxxxxxxx:your_auth_token
In Console:
To learn more, check out the docs.
Using Twilio Video quick deploy reference apps for WebRTC Go
Learning to build something new is an exciting challenge. We want you to get to “hello world” even faster with our new quick deploy apps for WebRTC Go. The Video product team conducted user research and testing to inform the design of the user interface for 1:1 video chats. We built these open source reference apps so you can get up and running in 5 minutes or less.
The source code is available today on Github under the Apache 2.0 license:
- Web - https://github.com/twilio/twilio-video-app-react
- iOS - https://github.com/twilio/twilio-video-app-ios
- Android - https://github.com/twilio/twilio-video-app-android
These applications use an updated Twilio CLI RTC plugin which supports quickly developing and deploying real-time communication applications using the Twilio Runtime. You can go from exploring an application’s source code to trying it out for yourself in seven steps. The snippet belows shows an example of how to deploy the web application for WebRTC Go.
# Clone the web application
$ git clone https://github.com/twilio/twilio-video-app-react
# Change directories
$ cd twilio-video-app-react
# Build the application
$ npm install
# Install the Twilio CLI
$ npm install twilio-cli -g
# Login to your Twilio account using your Account SID and Auth Token
$ twilio login
# Install the RTC plugin
$ twilio plugins:install @twilio-labs/plugin-rtc
# ... or update an existing plugin installation
twilio plugins:update
# Deploy!
$ npm run deploy:twilio-cli -- --room-type go
deploying app... done
Web App URL: https://video-app-1111-1111-dev.twil.io?passcode=11111111111111
Passcode: 111 111 1111 1111
Room Type: go
Note in this sample app the generated url and passcode expire after one week. To securely manage your users you can update the provided Access Token server or host your own. See our documentation here on how to manage your own Access Token server.
Troubleshooting your Twilio Video applications
As usage increases and applications move into production, there are new considerations. Operating a video app at scale means you need data to troubleshoot your app at scale. To support developers, we are releasing three new tools, Video Log Analyzer, RTC Diagnostics SDK (beta), and Video JS SDK Preflight API (beta), for all Twilio Video room types: Video WebRTC Go, Video P2P, and Video Groups.
Video Log Analyzer
Previously, developers needed to build their own logging and reporting infrastructure when using Twilio Video. With the release of Video Log Analyzer to general availability, developers can now just log into Console to view critical metadata about their video rooms and participants.
Video Log Analyzer is available for all Twilio Video room types. Logs for Video WebRTC Go are stored for two days, and logs for all other room types are stored for seven days. You can use Video Log Analyzer to filter based on the date range, room type, or codecs present in the room, and you can search for room SIDs or room names. Additionally the results of your filter/search can be exported to CSV for offline analysis or integration into other tools.
Each video room has a Room Details page which captures key information about the room including how the room was created, why the room ended, Twilio regions, and codecs in the mix. One common question developers often get is "why did this video call end?" Since this information has been surfaced in the Room Details page, this is now easily answerable using Video Log Analyzer. You will also find a list of the room participants with a link to view each participant's details.
The Participant Properties view expands on the information provided in the Room Details. It displays the reason for the participant's disconnection from the room, the Video SDK platform and version used by the application the participant connected to the room with, and the browser/device platform details to give developers a comprehensive understanding of the participant's metadata. Now developers can identify commonalities in room participant browser version/SDK combinations, or device/platform issues. For example, you could find that a particular combination of browser version, OS, and room type appears to be disproportionately represented in the reports of unexpected disconnections. This type of information allows developers to quickly focus their investigations.
For more information about Video Log Analyzer, be sure to check out the docs.
Diagnostics tooling
One of the advantages of using WebRTC is that you can run across different devices, browsers, and networks. However, if the network or device is not set up correctly, it can lead to audio or video issues. To help developers prevent or troubleshoot these issues we are releasing two diagnostic tools in beta.
RTC Diagnostics SDK (beta) for all WebRTC developers
This general purpose WebRTC diagnostics SDK can be integrated into any WebRTC based app, not just Twilio Video and Client SDKs. It contains test APIs to validate microphone, speaker, camera, and media delivery. It uses a TURN server, which can be Twilio NTS or your own server, for validating the network path and bandwidth for media. It can detect when a firewall is blocking the media path. To learn more, check out the source code here.
Video JS SDK Preflight API (beta) for Twilio Video Rooms
The Preflight API is a diagnostics API specific to Twilio Video Rooms. It can be used to detect connectivity and media quality issues prior to joining a Video Room or as part of a troubleshooting page. It first checks the websocket connection to the Twilio Cloud and then the media path. The API uses two test participants to verify audio and video publishing and subscribing in a loop back fashion. The API produces a report at the end of the test that lists details on the quality of the connection. To learn more, check out the full description here.
Looking ahead
Over the last 6 months, we’ve seen an explosion of video use cases on the Twilio platform. The shift to virtual means that more and more developers are interested in building video apps. We’ve seen developers build successful new businesses with Twilio Video. We know video is here to stay and are doubling down on our investment in this space; our announcements at SIGNAL are just the beginning.
We can’t wait to see what you build!
Donal Toomey is crafting the building blocks for the future of communications. At Twilio, he is building a global video platform that enables organizations of all types to deploy real-time video applications for high value human interactions. Donal was previously Director of Product at TokBox and a Lead Product Manager at Ericsson and Microsoft.