In the past decade, enterprises and software providers were looking for solutions on how to easily integrate new devices into their ecosystem, while keeping their legacy systems and infrastructure. Pre-integration and automated integration help to overcome current obstacles and to steadily build knowledge required to succeed.
Over the years, providers have dealt with all kinds of projects, some small but others quite large. The idea of plugins came up to handle the complex integrations of large projects, which was then extended to any project size. Plugins are smaller, easier to manage, and easier to integrate into larger structures, without the need of re-writing the same thing all over again.
One of the key parts in understanding the satisfaction of your users is to assess the quality of experience for the services they consume, their engagement, the type of content they like to watch etc.
The implementations of these important KPIs historically included, among others, an agreement on the desired metrics set, an investigation of the available metrics in the target platform, and an integration of these metrics towards a core agent. A lot of these steps were unique for every integration. This was partially due to different wishes from different customers, but mostly due to the unique characteristics of each of the target platforms.
With the growing popularity of OTT platforms and the rise of players such as ExoPlayer, Shaka Player or AV Player, the target platforms became increasingly similar between integrations. The shift from "everything is custom" to "common platforms and players" enabled some integrators to step outside its domain. They started actively investigating players and platforms, gathering knowledge about them, assessing what could be possible and feasible and defining an absolute base of metrics that would benefit every customer. These are all implemented in what is call called ‘’player plugins”.
Player plugins follow a few basic principles:
- The plugins provide a good set of metrics, making them directly usable
- No specific knowledge required for plugin integration – just a few, stable APIs are necessary
- Ability to pass custom metrics to the plugin
The trend is to have player plugins for most of the popular players, such as ExoPlayer, Shaka Player, AVPlayer, and for platforms such as Android, FireOS, iOS, tvOS, Chromecast, Browsers, WebOS, Tizen etc.
While the complete list of metrics differs slightly between plugins, they all share most of the metrics. Some of the features they have in common are:
- QoS and QoE metrics
- Device properties
- Ability to understand asset consumption
- Ability to understand playback errors (for instance, DRM errors)
ExoPlayer is currently one of the most popular players for Android. It is extremely customizable and flexible, yet easy to start with. Therefore, it comes as no surprise that it is used by everyone, from hobby enthusiasts to video operators and even YouTube.
There are some requirements and dependencies that are needed to use plugins in the first place. Players evolve quickly and so do their capabilities and APIs, for example ExoPlayer.
Some metrics implemented by a plugin can be subject to platform permissions. These are not critical to have in any sense, but more on the good-to-have side and will only be included if permissions are granted. Also, related to privacy issues, plugins can be configured to skip certain sensitive metrics. Such information can be, for example, the collection of the device’s longitude and latitude position.
Lastly, the plugins are to be included in the project as any other 3rd party library.
To conclude, plugins are the modern way to integrate new devices into existing systems, which in many cases are based on a legacy infrastructure. Instead of sizing up a system that is already difficult to maintain due to its legacy components, plugins can help this setup and minimize the costs of modernizing the existing platforms without investing into costly new complete solutions.