Player SDK for iOS and tvOS integration guidelines

Download SDK


The OpenTV Player SDK for FPS comes in two versions: iOS and tvOS, and is used for developing a secure player that supports playback of content encrypted with Apple's FairPlay Streaming (FPS). It includes a Swift class to enable playback based on the iOS/tvOS APIs. The OTVAVPlayer class extends the native AVPlayer class and makes it easy to enable FPS playback. It extends all of the functionality of AVPlayer, and because FPS is the native DRM, it can support HD and 4K playback.

This page provides an overview of the tasks needed to enable basic playback. For encrypted playback via FairPlay Streaming, please see Playback of FPS encrypted content.


  • The latest version of Xcode.
  • NAGRA's OpenTV FPS SDK for iOS or tvOS.
  • A valid Player Licence.
  • The 'basic playback' example code application. Please note, this example application is built for iOS only.
  • A handheld device supporting iOS 11 or above, or an Apple TV supporting tvOS 11 and above.

iOS 13 Support

Multiple windows on iPadOS are not currently supported by the player. To disable this feature in the application layer, please leave the checkbox for multi-window support in project settings unchecked.

Player licence

This is an encrypted licence that controls which player features and platforms are enabled based on your licence agreement. The player will not work without it.

There are two types of licence:

  • Trial licence - a time-limited licence that can be downloaded to evaluate the player. It works with any bundle ID.
  • Purchased licence - the licence that is provided once you have purchased the product. It only works with the bundle ID provided with the licence.

Loading the OTVSDK object with the licence token

Before any other operation, the OTVSDK class must have one of its load() methods called. Either:

  • Ensure the opy_licence file is present in the application bundle and call the OTVSDK.load() method, OR
  • Call the OTVSDK.load(licence:) passing the licence as a String.

Application Transport Security (ATS) settings

If you need to connect to non-HTTPS URLs, add Application Transport Security (ATS) settings to info.plist.

Open the info.plist file and add an App Transport Security entry for your content (replacing with the actual URL):