# Core API

- `PRESTOplaySDK`

  Main interface for initializing the SDK and additional plugins.

  See more

  #### Declaration

  Swift

      public class PRESTOplaySDK

- `PlayerAPI`

  Control and manage the video player instance.

  See more

  #### Declaration

  Swift

      public protocol PlayerAPI : InterceptableAPI, ViewBasedAPI

### DrmAPI

- `DrmAPI`

  DRM Interface. API for DRM key-system control and state observation.

  See more

  #### Declaration

  Swift

      public protocol DrmAPI

- `DownloaderAPI`

  Downloader Interface.

  See more

  #### Declaration

  Swift

      public protocol DownloaderAPI : InterceptableAPI

### AnalyticsAPI

- `AnalyticsAPI`

  Analytics Interface

  See more

  #### Declaration

  Swift

      public protocol AnalyticsAPI

### SubtitlesAPI

- `SubtitlesAPI`

  Loads and displays subtitles.

  See more

  #### Declaration

  Swift

      public protocol SubtitlesAPI

- `ThumbnailsAPI`

  Thumbnail Interface

  Enables retrieving and storing thumbnail preview images and timing info that could then be used e.g. to display on the player seekbar. Requires the `ThumbnailsPlugin`.

  See more

  #### Declaration

  Swift

      public protocol ThumbnailsAPI

### CastEngine

- `CastAPI`

  API for casting (Chromecast, AirPlay).

  See more

  #### Declaration

  Swift

      public protocol CastAPI

### PRESTOerror

- `PRESTOerror`

  Error Interface ‘PRESTOerror’ is a generic interface that represents all error types thrown within the SDK. This class provides a unified way to handle, classify, and propagate errors encountered during SDK operations, ensuring that any error, regardless of its origin or context, can be managed consistently by client applications. Use this class to catch, inspect, and respond to SDK-specific failures, facilitating robust error handling across your codebase.

  See more

  #### Declaration

  Swift

      public class PRESTOerror : NSObject, CustomNSError