Cast for android tv open source licenses

To develop an app using Google Play servicesAPIs, follow the instructions on this page to setup your project with the relevant SDKs, which are available from theGoogle maven repository.

To test your app when using Google Play services, you must use one of thefollowing:

  • A compatible Android device that runs Android 4.4 (APIlevel 19) or higher and has the Google Play Store appinstalled.
  • The Android emulator with anAVD that runs the Google APIsplatform based on Android 4.4 (API level 19) or higher.

Declare dependencies for Google Play services

To develop features that depend on the Google Play services APIs in your app,complete the following steps:

  1. Open the build.gradle file inside your app’s module directory.

    Note:build.gradle file and abuild.gradle file for each module. Be sure to edit the file for your app’smodule. Learn more about

    Android Studio projects contain a top-levelfile and afile for each module. Be sure to edit the file for your app’s module. Learn more about building your project withGradle

  2. For each SDK that your app requires, include the dependency for that SDK.This page includes a section that lists common Google Play servicesdependencies for Android apps. You might also want to addFirebase dependencies to yourproject.

  3. Save the changes and sync yourproject.

The following snippet shows an example build.gradle file that uses thelocation library:

apply plugin: ''...dependencies { implementation ''}

New versions of the Google Play services SDKs with bug fixes and new featuresare periodically released. These updates are announced in the releasenotes. If your app uses a dependency that has beenupdated, change to the latest version in your app’s dependencies to takeadvantage of these fixes.


To preserve the required classes, the Google Play services SDKs each include directives that instruct R8 on how to optimize yourapp

Check whether Google Play services is installed

As described in the Google Play services overview,Google Play services receives automatic updates on Android4.4 (API level 19) and higherthrough the Google Play Store app. However, Android devices without Google PlayStore don’t have Google Play services installed. If your app runs on deviceswithout Google Play services, you might want to check to see if Google Playservices is installed on the device before you attempt to use Google APIs, orenable features in your app that require Google Play services to function.

To check for the presence of Google Play services on the device, use theisGooglePlayServicesAvailable()method.

To then begin a connection to Google Play services, or learn how to detectwhether the version of Google Play services installed supports a specific API,read the guide on Accessing Google APIs.

Google Play services dependencies

The following table lists the dependencies for Google Play services that you caninclude in your Android app. You can filter the list by device type by selectingone of the buttons, and you can search for a specific use case or dependencyname by entering text into the box that appears after the buttons.

Gradle plugins

Google Play services also includes several Gradle plugins, as shown in thefollowing table. Note that the buttons that appear before the previous tabledon’t change the information that appears in this table.

Table 2. List of Gradle plugins included in Google Play services Use case and Gradle plugin name Supported devices Show open-source licenses Phone, Tablet, ChromeOS Strict version checking Phone, Tablet, Android TV, Auto, Android Go, ChromeOS, Wear OS

Save and categorize content based on your preferences.


Widevine DRM is Google’s content protection system for premium media. It is used by major partners around the world such as Google Play, YouTube, Netflix, Disney+, Amazon Prime Video, HBO Max, Hulu, Peacock, Discovery+, Paramount+ and many more.The focus of Widevine is to provide the best experience for viewing premium content over digital distribution.


A license agreement is required for the use of Widevine products or services.Widevine does not assess any fee for use of its products and services.

Widevine DRM adopts the following standards:

  • Encrypted Media Extensions – a W3C specification.
  • Common Encryption
    • ISO/IEC 23001-7 – Common encryption in ISO base media file format files
    • ISO/IEC 23001-9 – Common encryption of MPEG-2 transport streams

Supported Platforms

The Widevine client is natively embedded into a device platform unless otherwise noted.

Device or Platform Supported ? Android (Mobile, TV, Automotive) Yes Android Open Source (AOSP) Yes Apple iOS Yes [1] Apple TV (tvOS) – Chromecast (Cast) Yes Google Home and Nest devices Yes ChromeOS (Chromebook) Yes Chrome Browser (Windows, Mac OS X, Linux) Yes Chromium Browser Yes Chromium Embedded Framework (CEF) / Electron Yes Firefox Browser Yes Edge Browser Yes Opera (Browser and Embedded devices) Yes Safari Browser (Desktop) – Roku devices Yes Amazon Echo devices Yes Amazon Fire OS devices Yes Amazon Fire TV devices Yes Facebook Portal devices Yes Nintendo Switch – Sony Playstation Yes Microsoft Xbox – Smart TV and Blu-ray players (Tizen, WebOS) Yes


Supported Encryption Schemes

The table below provides a mapping of encryption schemes across Widevine integrated platforms.

Platform cenc cens cbc1 cbcs Android 4.4 – 6.x (including Android TV) Y – – – Android 7.x and later (including Android TV) Y – – Y Chromecast (Cast) Y – Y Y Google Home Y – – – Smart TV and Blu-ray players Y – – Y Widevine iOS Y – – Y Chrome browser (desktop) and ChromeOS Y – – Y Chrome browser (mobile) Y – – Y Mozilla Firefox Y – – Y Opera Y – – Y NexPlayer SDK Y – – Y



The diagram above illustrates the available Widevine components within the DRM ecosystem.

The Provisioning, Keybox and OEMCrypto components are specific to the device integration process. If you are interested in integrating Widevine into a device, please contact us.

A license request from the originating client device will be received by a partner-operated proxy mechanism (over HTTPS). This proxy mechanism will validate the request and append business rules before sending the payload to be fulfilled by the Widevine License Service.

The Widevine client device does not communicate directly with the Widevine License Service, under any circumstances.

Issuing Widevine Licenses

Widevine provides 2 methods to issue licenses to clients:

  • Cloud License Service
    • Globally-accessible service with no access or transaction fees.
    • Access is provided using per-organization credentials to Widevine licensees.
  • License Server SDK
    • Designed for hosting your own license service.

Using the Widevine Cloud License Service

The Cloud License Services has 2 environments – Test and Production. Access is provided with unique per-organization credentials to Widevine licensees.

The Cloud License Service provides 2 endpoints for:

  • Retrieving content keys for the purpose of encrypting content.
    • Content keys requested in this manner are stored by the Widevine Cloud License Service.
  • Issuing a license
    • Fulfills the license request generated by a Widevine client device.

All license requests from a client device must be processed by a license proxy mechanism.

  • Widevine provides a Proxy SDK to communicate with the Cloud License Service.
  • The license proxy validates and verifies the incoming client request and determines which business rules to apply.
  • Business rules are appended to the originating license request from the device and sent to the license service for fulfillment.
  • Once a license is generated, the contents of the license are no longer modifiable and are individualized to the requesting device.

Shaka Packager

The Shaka Packager (formerly known as the eDASH-Packager) from Widevine is an open-source reference implementation on how to generate DASH-compatible MP4 formats, perform encryption using a Widevine PSSH and create a DASH manifest. Please visit the github page to file bugs and feature requests.

Player – Android

The Google-maintained open-sourced ExoPlayer project is the recommended reference player library that demonstrates playback of Widevine CENC media. Building ExoPlayer, by default, will generate a demo app which contains a preset list of known-good CENC content from the Widevine team.

Player – Browser

The Shaka Player open-source project is Widevine’s initiative to provide a comprehensive cross-browser Javascript library framework to support CENC HTML5 playback using a CDM (preferably Widevine). Outside of github, a Shaka Player Users discussion group is available and monitored by the Shaka Player developer team from Widevine.

The Shaka Player offers:

  • Fully featured open source player framework
  • Configurable and customizable UI
  • Cross-platform and cross-browser capable
  • Support for HTML5, MSE, EME & DASH
  • Multi-DRM options

High quality, cost effective and swift Android TV implementations

Android TV Operator Tier is on many of our customers’ agenda. Getting your offering in Android TV is a good way to get yourself in front of your audience and compete with born digital video services. And Android TV makes it possible to do it, without having to build your system from scratch.

The challenge

The problem with launching Android TV is that it’s relatively new and most operators have no experience with it. We know the ones who have and the secret to their success.

The one big prerequisite to a successful launch, is to have your service performance under control. Before. During. And After.

Why? Because when things go wrong, and they will, you will want to investigate incidents and pin point their root causes fast and accurately to fix problems as quickly as possible.

The solution

We have helped operators get this right before. Let us plan, deploy and/or manage an architecture within your existing legacy that will help you get your video service performance under control. You will be able to implement Android TV swiftly and cost effectively by being able to solve incidents fast during the whole implementation process.

This exact solution depends on your legacy and your needed support level.

Written by Jane