Introducing Video Log Analyzer
COVID-19 accelerated the shift to video for organizations and consumers alike in the past year. Some developers who didn't even have video on their roadmap in January 2020 found themselves trying to operate video applications at scale by May. Operating a Programmable Video application requires identifying and understanding changes in behavior of Rooms and Participants. With this in mind, Twilio launched Video Log Analyzer to provide that transparency to developers.
What is Video Log Analyzer?
Video Log Analyzer provides detailed information about Video Rooms and Participants and can be used to quickly investigate Room and Participant issues. Though the tool launched at last year's SIGNAL alongside Twilio Video WebRTC Go Rooms, it's applicable to all Twilio Video Room types. Video Log Analyzer stores the Room and Participant information for Rooms that ended in the past 2 days for Twilio Video WebRTC Go Rooms and past 7 days for all other Rooms types.
Finding what you're looking for
The Video Log Analyzer landing page allows you to filter the results for specific time ranges, Room types, and video codecs, as well as providing a search utility for quickly locating specific Rooms based on Room SID or name. The results of your search and filtering can also be exported to CSV. For example, you may wish to find all of the Group Rooms where at least one of the participants connected using the VP9 codec.
What's in this Room?
Twilio's Programmable Video infrastructure captures metadata about every Room and makes it available via Video Log Analyzer. Beyond brass tacks details like Room SID, Room name, Room Type, and start/end times, Video Log Analyzer also captures the method used to create the Room, and aggregates the codecs detected, how long Participants were in the Room, and the duration of recordings associated with the Room.
The Room Details will also list the Participants, their identities, how long they were in the Room, when they joined or left, and how they left.
Getting to know a Participant
When clicking on View Details for a Participant you are taken to the Participant Properties view which expands on the metadata shown in the Room Detail view by providing SDK, browser, and platform details. This information can be used to help correlate behavior to specific platforms or browser versions. Let's say you've got a few reports from users about unexpected behavior in your application, by looking at the Participant properties for the users reporting the issue you might discover commonalities between the browser/platform/SDK versions that can help inform your investigation.
"Dead Air" Room
Before Video Log Analyzer if a user reported joining a Room and not being able to see or hear other participants, we were limited in what we could discover. Now, we use the join and leave time captured in the Participant Properties to uncover a surprisingly common cause: the Participants were not actually in the room at the same time!
Consuming the Video Log Analyzer API
If your app is blowing up (in a good way!) you may find that hopping in the Twilio Console and checking on Rooms one at a time doesn't scale. The good news is beyond the Twilio Console experience, we've also provided a Video Log Analyzer API for retrieving Programmable Video Room and Participant details. This resource allows developers to simplify troubleshooting and help identify commonalities in reported issues by programmatically retrieving critical metadata about Participant and Room behavior.
A common pattern we've seen successful developers use is to set up status callbacks and subscribe to the room-ended event. The room-ended event can then be used to trigger a job that iterates through all the resources and pulls them into their own systems. The post-call Room, Participant, and Video Log Analyzer information can then be used to create or augment their own internal record of the Room.
Having these details in your systems allows product managers to build custom reports on utilization by browser or platform, developers to build monitoring and alerting systems based on participant error codes, and support to investigate and identify emerging issues that may be tied to specific versions of your application.
Advanced Use Cases: Surveying Your Domain
Once you're programmatically pulling down the metadata about your Rooms you can vastly improve the utility of your record by adding additional avenues of input from two key sources: your users and your support team.
A simple thumbs up/thumbs down post-Room survey that asks your users if their experience was acceptable can be a gateway to significant improvements in the quality of their experience. If they give a thumbs up, cool! No work necessary, move on with your day. But if they give a thumbs down you can dig a little deeper and discover what type of issue they had.
The other source of info that is frequently overlooked is support. If you have a support team catching tickets about user experience, one best practice is to allow the support team to label Rooms/Participants records based on subjective feedback they get from customers.
Capturing these details and using them to prioritize improvements lets you focus on the right problems. Analyze the results, apply tagging to Participants/Rooms that meet certain criteria, and aggregate on those tags across the dimensions you're most interested in to identify where your users are having the most pain, and where your development hours are likely to be most beneficial.
VIdeo Log Analyzer opens up the black box of your user's experience. Using the tools in Console or consuming the REST API helps developers understand the who, what, and when of changes in Room or Participant behavior, which is the first step on the journey to understand: why.
Michael Carpenter (aka MC) is a telecom API lifer who has been making phones ring with software since 2001. As a Product Manager for Voice & Video Insights at Twilio, the Venn Diagram of his interests is the intersection of APIs, SIP, WebRTC, and mobile SDKs. He also knows a lot about Depeche Mode. Hit him up at firstname.lastname@example.org