This section describes the capabilities, basic concepts and more detailed functional descriptions you need to know before getting started using the SDK.
What the SDK can do
The ExpressPlay SDK is designed to make it simple to build secure media players and ebook reader applications for Marlin protected audio, video and ebook content.
The SDK is available for iOS, Android, OSX, Windows and Linux. The Linux version is only available as part of the ExpressPlay Source SDK. The ExpressPlay SDK shares a common core API set across all platforms. On some platforms the SDK includes an extended set of APIs unique to that platform. See the chart of API sets below for a summary of the extended APIs per platform.
For development of media applications on iOS, Android, OSX and Windows, the SDK offers a simple API providing access to DRM control and media playback functions, sufficient to credential an application, acquire DRM licenses and trigger playback of Marlin-protected content. Content may be a contiguous media file or an adaptive bit rate (ABR) stream. The SDK works in conjunction with the ExpressPlay Service for device initialization (Marlin personalization) and token processing for playback (Marlin content license acquisition) while meeting the compliance and robustness rules of the MTMO (Marlin Trust Management Organization).
Additional information for the development of ebook applications is available here.
Where’s the Wasabi SDK? For customers who are familiar with the Intertrust Wasabi SDK family, ExpressPlay SDK is the next generation of the Wasabi Express SDK. For those who are familiar with the Wasabi Embedded SDK, it is now available as the ExpressPlay Source SDK.
SDK for iOS
The ExpressPlay SDK for iOS provides a Playlist Proxy API as the primary playback interface; however, unique to iOS there is another simple interface called the EXP Player API for rapid development. For a deeper level of control, use the Core DRM and Playlist Proxy APIs. The Playlist Proxy is a module that interposes an HTTP Server between the original (protected) media source and the native media player. The native media player is used to leverage the platform decoder and playback control interfaces. The Proxy transforms the original protected source media into a clear media stream accessible to the native media player via a standard HLS playlist. It provides exactly the same functionality as the Playlist Proxy for Android devices. See the section Playlist Proxy on iOS for an overview of the Playlist Proxy on the iOS platform.
SDK for Android
The ExpressPlay SDK for Android is implemented as a Java Native library and exposed via a Java API. The Java API provides interfaces to DRM and Media functions as well as the Playlist Proxy. It provides exactly the same functionality as the Playlist Proxy for iOS devices. See the section Playlist Proxy on Android for an overview of the Playlist Proxy on the Android platform.
SDK for Windows and OSX
The ExpressPlay SDKs for Windows and OSX are available upon request. Please contact sales if you would like access to either SDK. The SDK for Windows and OSX incorporate a full software H.264 decoder from Intel which can be used for commercial deployment. Note that the distributor of an application using this software decoder is responsible for any applicable MPEG-LA and AAC technology licensing fees. See the section Media Player for Desktop for an overview of media playback on the Windows and OS X platforms.
The ExpressPlay Source SDK is available for qualified device manufacturers and special development projects where source code access to the SDK is necessary. Contact sales for more information on the ExpressPlay Source SDK. When using the Source SDK the developer is responsible for the integration between device-specific subsystems as well as hardening the solution to meet the Marlin Robustness Rules. Only the ExpressPlay Source SDK is available in source form, and so it is the only version of the SDK which is not hardened with any software tamper resistance to meet the robustness rules. See the section Media Playback in the Source SDK Development Guide for an overview of media playback on embedded platforms.
How it Works
This section reviews the basic player and reader scenarios of use with the ExpressPlay service to playback various protected content media types.
Steps to Play
The steps below are a high-level view of the steps required to play content. However, the exact sequence of steps to play content in your application may vary due to the specific nature of your app or the availability of higher level APIs on some platforms which may combine steps.
- Start the DRM engine
- Get a unique player ID (personalization)
- Get the content URL
- Get a token for playback
- Process the token
- Start playback
There are different player interfaces for different platforms. For Windows and OS X you would use the Media Player API. On iOS and Android you would typically use the Playlist Proxy API. The SDK of iOS also has the EXP player API which offers a simple three-step process to setup and play.
ExpressPlay handling of ebooks works a bit differently than with audio and video. Your ebook reader application will need to be able to render the ebook format of your choosing. You can use the ExpressPlay SDK to provide a secure path of content delivery up to the ebook renderer within your app. For additional information on working with ebooks click here.
Below is a list of key concepts that a developer should know before using the ExpressPlay SDK. It’s a good idea to go through all the concepts before using the SDK as they are reference frequently throughout the SDK documentation.
- What is Personalization
- Marlin Simple Stream Setup (MS3) vs. Marlin Broadband Delivery system (BB)
- Streaming vs.Offline
- Test environment vs. Production environment
- Supported Formats
- Core and Extended Digital Rights Management (DRM) Functions
In addition to the core concepts above, the ExpressPlay SDK Usage Guidelines is an overview of best practices when using the ExpressPlay SDK. The major sections of the guidelines are listed below for convenience.
Although it is possible to discover undocumented APIs within the SDK, only the APIs listed in the API References Sections in the ExpressPlay Developer Center are supported. There is no support for the use of any other APIs.
The table below shows the common APIs which are shared by all platforms, as well as the API extensions unique to some platforms. The groups listed here are not reflected in the reference API documentation, but they are used here to show a high level abstraction of what types of APIs you can find in the SDK for each platform.
ExpressPlay SDK – API Sets
Description of Each Set
Media playback APIs (EXP Player, Playlist Proxy, Media Player) The media playback API group includes the methods used to play, pause, stop, set the volume, seek to a particular position, etc. on desktop and mobile platforms.
MediaStream API The MediaStream API group can be used to decrypt generic media, not only audio/video. As such it is the API to be used when building applications for ebooks
Core DRM APIs The Core DRM API group can be used to personalize a client instance, acquire licenses, etc.
Media Access API & Extended DRM APIs These APIs groups are used in embedded development. The Media Access API group can be used to access media files and streams and manage their decryption, while the Extended DRM API group can be used for lower level DRM functionality such as extracting content keys from licenses, inspecting the result of license evaluation, etc.