Adding Video Analytics Reporting on Boxee

November 20, 2012

Boxee holds a unique place in the OTT Set-Top-Box world. With its clean separation of presentation (in XML-like language) and control (in python) layers, it is a pleasure to work on. But all is not well for the developers.

JunctionTV Platform offers fine-grained analytics reporting support to our platform clients. So naturally same is expected from our Boxee apps as well. We started to augment the Boxee video playback component with fine-grained reporting capability so that we can re-create a PAUSE/RESUME sequence for a playback. Ideally, we would look for standard events pertaining to PAUSE/RESUME and report them. To our surprise, it wasn’t that straight-forward!

Events like Forward/Rewind are not reported at all. We can check the player for the “Paused” state but it is not reported via an event. Such limitations lead us to implement a combined Event-based+Polling architecture.

The new playback reporting engine now works not only on the standard events reported by Boxee player, but it has a new Polling-based framework where we check for player state every second. Additionally, we have a custom made State-machine for Boxee events in which transitions occur both due to reported events as well as observed state using our Polling mechanism.

This engine has enabled us to offer second-level reporting support on our Boxee apps. It is a testament to our team’s deep understanding of Boxee that made it possible to provide fine-grained View reporting and QoS reporting on Boxee apps. Kudos to the R&D team for making us proud!