Skip to main content

Player Types Reference

Tracks

Tracks

ParameterTypeDescription
videoVideoTrack?Video tracks
audioAudioTrack?Audio tracks
captionCaptionTrack?Caption tracks
viewGridViewGrid?View grid tracks
public struct Tracks: Codable {
public var video: [VideoTrack]?
public var audio: [AudioTrack]?
public var caption: [CaptionTrack]?
public var viewGrid: [ViewGrid]?
}

VideoTrack

ParameterTypeDescription
activeBoolTrack is active
widthInt?Video width
heightInt?Video height
bitrateInt?Bitrate
languageString?Language
public struct VideoTrack: Codable {
public var active: Bool
public var width: Int?
public var height: Int?
public var bitrate: Int?
public var language: String?
}

AudioTrack

ParameterTypeDescription
activeBoolTrack is active
labelString?Track label
languageString?Language
channelsInt?Audio channels
public struct AudioTrack: Codable {
public var active: Bool
public var label: String?
public var language: String?
public var channels: Int?
}

CaptionTrack

ParameterTypeDescription
activeBool?Track is active
languageStringLanguage
typeStringCaption type
labelString?Track label
public struct CaptionTrack: Codable {
public var active: Bool?
public var language: String
public var type: String
public var label: String?
}

ViewGrid

ParameterTypeDescription
gridIdString?Grid identifier
audioLabelString?Audio label
leftDouble?Left position (relative)
topDouble?Top position (relative)
widthDouble?Width (relative)
heightDouble?Height (relative)
activeBoolGrid is active
isCompositeBoolComposite grid
public struct ViewGrid: Codable {
public var gridId: String?
public var audioLabel: String?
public var left: Double?
public var top: Double?
public var width: Double?
public var height: Double?
public var active: Bool
public var isComposite: Bool
}

Configuration

LuraPlayerConfiguration

ParameterTypeDescription
debugBool?Enables debug logging
playerOpsKeyString?Identifier for log tracking
nameString?Human-readable player instance name
luraLuraMCP configuration
contentLuraContentManual content configuration
controlsLuraControlPlayer controls settings
analyticsLuraAnalyticsConfigurationAnalytics configuration
adsLuraAdsConfigurationAds configuration
castLuraCastConfigurationCast configuration
pluginsLuraPluginsPlugin configurations
licenseLuraLicenseDRM license configuration
initializationLuraInitializationInitial playback state
latencyLuraLatencyConfigurationLatency mode availability
offlineLuraOfflineConfigurationOffline playback configuration
concurrencyLuraConcurrencyConfigurationConcurrency limiting
systemLuraSystemConfigurationSystem metadata
teasersLuraTeasersConfigurationTeaser content
nxsLuraNxsConfigurationNXS request configuration
highlightsLuraHighlightHighlight content
avCoreConfigLuraAvCoreConfigAVCore platform overrides
public struct LuraPlayerConfiguration: Codable {
public var debug: Bool?
public var playerOpsKey: String?
public var name: String?
public var lura: Lura?
public var content: LuraContent?
public var controls: LuraControl?
public var analytics: LuraAnalyticsConfiguration?
public var ads: LuraAdsConfiguration?
public var cast: LuraCastConfiguration?
public var plugins: LuraPlugins?
public var license: LuraLicense?
public var initialization: LuraInitialization?
public var latency: LuraLatencyConfiguration?
#if os(iOS)
public var offline: LuraOfflineConfiguration?
#endif
public var concurrency: LuraConcurrencyConfiguration?
public var system: LuraSystemConfiguration?
public var teasers: LuraTeasersConfiguration?
public var nxs: LuraNxsConfiguration?
public var highlights: LuraHighlight?
public var avCoreConfig: LuraAvCoreConfig?
}
info

The offline property is available on iOS only.

Lura

ParameterTypeDescription
appKeyString?Lura app key
assetIdString?Lura asset ID
tokenString?Lura token
public struct Lura: Codable {
public var appKey: String?
public var assetId: String?
public var token: String?
}

LuraControl

ParameterTypeDescription
enabledBool?Controls enabled
autoplayBool?Autoplay enabled
mutedBool?Muted state
volumeDouble?Volume level
themeString?UI theme
layoutString?UI layout
loopBool?Loop enabled
public struct LuraControl: Codable {
public var enabled: Bool?
public var autoplay: Bool?
public var muted: Bool?
public var volume: Double?
public var theme: String?
public var layout: String?
public var loop: Bool?
}

LuraLicense

ParameterTypeDescription
licenseKeyString?License key
urlString?License URL
dataString?License data
public struct LuraLicense: Codable {
public var licenseKey: String?
public var url: String?
public var data: String?
}

LuraSystemConfiguration

ParameterTypeDescription
tsDouble?System timestamp
public class LuraSystemConfiguration: Codable {
public var ts: Double?
}

LuraConcurrencyConfiguration

ParameterTypeDescription
accountIdString?Account ID
deviceIdString?Device ID
enabledBool?Concurrency check enabled
maxInt?Maximum concurrent streams
public struct LuraConcurrencyConfiguration: Codable {
public var accountId: String?
public var deviceId: String?
public var enabled: Bool?
public var max: Int?
}

LuraTeasersConfiguration

ParameterTypeDescription
enabledBool?Teasers enabled
modeString?Teaser mode
media[LuraMedia]?Teaser media
public struct LuraTeasersConfiguration: Codable {
public var enabled: Bool?
public var mode: String?
public var media: [LuraMedia]?
}

LuraNxsConfiguration

ParameterTypeDescription
hostString?NXS host URL
public struct LuraNxsConfiguration: Codable {
let host: String?
}

LuraAvCoreConfig

ParameterTypeDescription
ios[String: Any]?AVCore overrides for iOS and tvOS
public struct LuraAvCoreConfig: Codable {
public var ios: [String: Any]?
}

Content & Media

LuraContent

ParameterTypeDescription
media[LuraMedia]Media list
lowLatencyMedia[LuraMedia]Low-latency media list
clientCertificatesClientCertificateClient certificate
annotations[Annotation]Content annotations
titleString?Content title
descriptionString?Content description
preferredDrmSystems[String]Preferred DRM systems
dvrLuraDVRDVR configuration
typeString?Video type (VOD or LIVE)
languageString?Content language
startAtDouble?Start position (seconds)
aspectRatioString?Aspect ratio
public struct LuraContent: Codable {
public var media: [LuraMedia]?
public var lowLatencyMedia: [LuraMedia]?
public var clientCertificates: ClientCertificate?
public var annotations: [Annotation]?
public var title: String?
public var description: String?
public var preferredDrmSystems: [String]?
public var dvr: LuraDVR?
public var type: String?
public var language: String?
public var startAt: Double?
public var aspectRatio: String?
}

ClientCertificate

ParameterTypeDescription
fairplayFairplayFairPlay certificate
public struct ClientCertificate: Codable {
var fairplay: Fairplay?
}

Fairplay

ParameterTypeDescription
dataString?FairPlay certificate data
urlURL?FairPlay certificate URL
public struct Fairplay: Codable {
var data: String?
var url: URL?
}

LuraMedia

ParameterTypeDescription
urlString?Media URL
typeString?Media type
licenseUrlString?DRM license URL
widthDimension?Media width
heightDimension?Media height
public struct LuraMedia: Codable {
public var url: String?
public var type: String?
public var licenseUrl: String?
public var width: Dimension?
public var height: Dimension?

public enum Dimension: Codable {
case int(Int)
case string(String)
}
}

Annotation

ParameterTypeDescription
startDouble?Annotation start time
endDouble?Annotation end time
typeString?Annotation type
public struct Annotation: Codable {
public var start: Double?
public var end: Double?
public var type: String?
}

LuraDVR

ParameterTypeDescription
enabledBool?DVR enabled
modeLuraDVRMode?DVR mode
availabilityWindowDouble?Availability window
public struct LuraDVR: Codable {
var enabled: Bool?
var mode: LuraDVRMode?
var availabilityWindow: Double?
}

LuraDVRMode

CaseRaw value
event"event"
window"window"
public enum LuraDVRMode: String, Codable {
case event = "event"
case window = "window"
}

LuraServersideBitrateControl

ParameterTypeDescription
enabledBool?Enable server-side bitrate manipulation
estimatedBandwidthInt?Estimated network bandwidth (bps)
public struct LuraServersideBitrateControl: Codable {
public var enabled: Bool?
public var estimatedBandwidth: Int?
}

Cast

LuraCastConfiguration

ParameterTypeDescription
chromecastLuraChromecastConfiguration?Chromecast configuration
airplayLuraAirplayConfiguration?AirPlay configuration
public struct LuraCastConfiguration : Codable {
public var chromecast : LuraChromecastConfiguration?
public var airplay : LuraAirplayConfiguration?
}

LuraChromecastConfiguration

ParameterTypeDescription
enabledBool?Chromecast enabled
appIdString?Chromecast app ID
public struct LuraChromecastConfiguration : Codable {
public var enabled : Bool?
public var appId : String?
}

LuraAirplayConfiguration

ParameterTypeDescription
enabledBool?AirPlay enabled
public struct LuraAirplayConfiguration : Codable {
public var enabled : Bool?
}

LuraCast

ParameterTypeDescription
chromecastChromecast?Chromecast settings
airplayAirplay?AirPlay settings
public struct LuraCast: Codable {
public struct Chromecast: Codable {
var enabled: Bool?
}
public struct Airplay: Codable {
var enabled: Bool?
}
var chromecast: Chromecast?
var airplay: Airplay?
}

Chromecast

ParameterTypeDescription
enabledBool?Chromecast enabled
public struct Chromecast: Codable {
var enabled: Bool?
}

Airplay

ParameterTypeDescription
enabledBool?AirPlay enabled
public struct Airplay: Codable {
var enabled: Bool?
}

Initialization

LuraInitialization

ParameterTypeDescription
videoVideo?Initial video track settings
captionCaption?Initial caption settings
audioAudio?Initial audio track settings
public struct LuraInitialization: Codable {
public var video: Video?
public var caption: Caption?
public var audio: Audio?

public struct Video: Codable {
public var abrEnabled: Bool?
public var preferredBitrate: Int?
public var latencyMode: LuraLatencyMode?
}

public struct Caption: Codable {
public var enabled: Bool?
public var preferredLanguage: String?
}

public struct Audio: Codable {
public var preferredLanguage: String?
}
}

Video

ParameterTypeDescription
abrEnabledBool?Adaptive bitrate enabled
preferredBitrateInt?Preferred initial bitrate
latencyModeLuraLatencyMode?Initial latency mode
public struct Video: Codable {
public var abrEnabled: Bool?
public var preferredBitrate: Int?
public var latencyMode: LuraLatencyMode?
}

Caption

ParameterTypeDescription
enabledBool?Captions enabled at start
preferredLanguageString?Preferred caption language
public struct Caption: Codable {
public var enabled: Bool?
public var preferredLanguage: String?
}

Audio

ParameterTypeDescription
preferredLanguageString?Preferred audio language
public struct Audio: Codable {
public var preferredLanguage: String?
}

Latency

LuraLatencyConfiguration

ParameterTypeDescription
allowedModes[LuraLatencyMode: Bool]?Allowed latency modes
public struct LuraLatencyConfiguration: Codable {
public var allowedModes: [LuraLatencyMode: Bool]?
}

LuraLatencyMode

CaseRaw valueDescription
DEFAULT"def"Default latency mode
LOW_LATENCY"low"Low latency mode
public enum LuraLatencyMode: String, Codable {
case DEFAULT = "def"
case LOW_LATENCY = "low"
}

Highlights

LuraHighlight

ParameterTypeDescription
enabledBool?Highlights enabled
urlString?Highlights feed URL
refreshPeriodDouble?Refresh period
autoSwitchLuraAutoSwitch?Auto-switch settings
modeString?Highlight mode
public struct LuraHighlight: Codable {
public var enabled: Bool?
public var url: String?
public var refreshPeriod: Double?
public var autoSwitch: LuraAutoSwitch?
public var mode: String?
}

Playlist

LuraPlaylistConfiguration

ParameterTypeDescription
startingIndexInt?Starting playlist index
loopBoolLoop playlist
items[LuraPlayerConfiguration]Playlist items
adsLuraPlaylistAds?Playlist ads
autoSwitchLuraAutoSwitch?Auto-switch settings
nextPageString?Next page URL
layoutStringPlaylist layout
slideAnimationLuraSlideAnimation?Slide animation
luraLura?MCP configuration
nxsLuraNxsConfiguration?NXS configuration
public struct LuraPlaylistConfiguration: Codable {
public var startingIndex: Int?
public var loop: Bool
public var items: [LuraPlayerConfiguration]
public var ads: LuraPlaylistAds?
public var autoSwitch: LuraAutoSwitch?
public var nextPage: String?
public var layout: String
public var slideAnimation: LuraSlideAnimation?
public var lura: Lura?
public var nxs: LuraNxsConfiguration?
}

LuraAutoSwitch

ParameterTypeDescription
enabledBool?Auto-switch enabled
durationDoubleCountdown duration
public struct LuraAutoSwitch: Codable {
public var enabled: Bool?
public var duration: Double
}

LuraSlideAnimation

ParameterTypeDescription
enabledBool?Animation enabled
durationDoubleAnimation duration
public struct LuraSlideAnimation: Codable {
public var enabled: Bool?
public var duration: Double
}

LuraPlaylistAds

ParameterTypeDescription
criteriaString?Ad criteria
timeDouble?Ad time
countInt?Ad count
macros[String: String]?Ad macros
public struct LuraPlaylistAds: Codable {
public var criteria: String?
public var time: Double?
public var count: Int?
public var macros: [String: String]?
}

Ads Configuration

LuraAdsConfiguration

ParameterTypeDescription
macros[String: String]?Ad macros
serverSideLuraAdsServerSideConfiguration?Server-side ads
clientSideLuraAdsClientSideConfiguration?Client-side ads
nonLinearLuraNonLinearConfiguration?Non-linear ads
pluginTimeoutDouble?Plugin timeout
policyLuraAdPolicyConfigurationAd policy
sgaiLuraSgai?SGAI configuration
public struct LuraAdsConfiguration: Codable {
public var macros: [String: String]?
public var serverSide: LuraAdsServerSideConfiguration?
public var clientSide: LuraAdsClientSideConfiguration?
public var nonLinear: LuraNonLinearConfiguration?
public var pluginTimeout: Double?
public var policy: LuraAdPolicyConfiguration
public var sgai: LuraSgai?
}

LuraAdsClientSideConfiguration

ParameterTypeDescription
providerString?Ad provider
genericLuraAdsGenericConfiguration?Generic configuration
gamLuraGamConfiguration?GAM configuration
public struct LuraAdsClientSideConfiguration : Codable {
var provider : String?
var generic : LuraAdsGenericConfiguration?
var gam : LuraGamConfiguration?
}

LuraAdsServerSideConfiguration

ParameterTypeDescription
providerString?Ad provider
gamLuraGamConfiguration?GAM configuration
genericLuraAdsGenericConfiguration?Generic configuration
public struct LuraAdsServerSideConfiguration : Codable {
var provider : String?
var gam : LuraGamConfiguration?
var generic : LuraAdsGenericConfiguration?
}

LuraNonLinearConfiguration

ParameterTypeDescription
pauseNonLinearPauseConfiguration?Pause ad configuration
public struct LuraNonLinearConfiguration: Codable {
var pause: NonLinearPauseConfiguration?
}

NonLinearPauseConfiguration

ParameterTypeDescription
genericNonLinearPauseGenericConfiguration?Generic pause ad config
public struct NonLinearPauseConfiguration: Codable {
var generic: NonLinearPauseGenericConfiguration?
}

NonLinearPauseGenericConfiguration

ParameterTypeDescription
urlString?Ad URL
xPositionLuraXPosition?Horizontal position
yPositionLuraYPosition?Vertical position
backgroundOpacityDouble?Background opacity
slideAnimationNonLinearSlideAnimationConfiguration?Slide animation
paddingNonLinearPaddingConfiguration?Padding
public struct NonLinearPauseGenericConfiguration: Codable {
var url: String?
var xPosition: LuraXPosition?
var yPosition: LuraYPosition?
var backgroundOpacity: Double?
var slideAnimation: NonLinearSlideAnimationConfiguration?
var padding: NonLinearPaddingConfiguration?
}

NonLinearSlideAnimationConfiguration

ParameterTypeDescription
enabledBool?Animation enabled
directionLuraSlideDirections?Slide direction
durationDouble?Animation duration
public struct NonLinearSlideAnimationConfiguration: Codable {
var enabled: Bool?
var direction: LuraSlideDirections?
var duration: Double?
}

NonLinearPaddingConfiguration

ParameterTypeDescription
topString?Top padding
bottomString?Bottom padding
leftString?Left padding
rightString?Right padding
public struct NonLinearPaddingConfiguration: Codable {
var top: String?
var bottom: String?
var left: String?
var right: String?
}

LuraGamConfiguration

ParameterTypeDescription
enabledBool?GAM enabled
modeString?GAM mode
networkCodeString?Network code
adTagUrlString?Ad tag URL
cmsIdString?CMS ID
videoIDString?Video ID
apiKeyString?API key
assetKeyString?Asset key
custParamsString?Custom parameters
liveStreamPrefetchSecondsInt?Live stream prefetch
streamFormatString?Stream format
customAssetKeyString?Custom asset key
macros[String: String]?Macros
adTagParameters[String: Any]?Ad tag parameters
public struct LuraGamConfiguration : Codable {
var enabled : Bool?
var mode : String?
var networkCode : String?
var adTagUrl : String?
var cmsId : String?
var videoID : String?
var apiKey : String?
var assetKey : String?
var custParams : String?
var liveStreamPrefetchSeconds: Int?
var streamFormat : String?
var customAssetKey : String?
var macros : [String : String]?
var adTagParameters : [String : Any]?
}

LuraAdsGenericConfiguration

ParameterTypeDescription
breaks[LuraBreakGenericConfiguration]?Ad breaks
public struct LuraAdsGenericConfiguration : Codable {
var breaks : [LuraBreakGenericConfiguration]?
}

LuraBreakGenericConfiguration

ParameterTypeDescription
offsetString?Break offset
urlString?VAST URL
public struct LuraBreakGenericConfiguration : Codable {
var offset : String?
var url : String?
}

LuraSgai

ParameterTypeDescription
enabledBool?SGAI enabled
assetIdString?Asset ID
nonLinearLuraSgaiNonlinear?Non-linear SGAI
linearLuraSgaiLinear?Linear SGAI
public struct LuraSgai: Codable {
public var enabled: Bool?
public var assetId: String?
public var nonLinear: LuraSgaiNonlinear?
public var linear: LuraSgaiLinear?
}

LuraSgaiLinear

ParameterTypeDescription
enabledBool?Linear SGAI enabled
defaultAdDurationDouble?Default ad duration
public struct LuraSgaiLinear: Codable {
public var enabled: Bool?
public var defaultAdDuration: Double?
}

LuraSgaiNonlinear

ParameterTypeDescription
enabledBool?Non-linear SGAI enabled
endpointString?Endpoint URL
public struct LuraSgaiNonlinear: Codable {
public var enabled: Bool?
public var endpoint: String?
}

LuraAdPolicyConfiguration

ParameterTypeDescription
skipModeLuraAdSkipModeAd skip mode
cooldownDoubleCooldown between ads (seconds)
pauseAdCooldownDoublePause ad cooldown (seconds)
public struct LuraAdPolicyConfiguration: Codable {
var skipMode: LuraAdSkipMode
public var cooldown: Double
public var pauseAdCooldown: Double
}

LuraAdSkipMode

CaseDescription
adSkip individual ads
podSkip ad pods
public enum LuraAdSkipMode: String, Codable {
case ad
case pod
}

Ads

LuraAdBreak

ParameterTypeDescription
idString?Ad break ID
offsetDouble?Break offset
ads[LuraAd]?Ads in break
watchedBool?Break watched
totalAdsInt?Total ads
breakDurationDouble?Break duration
originStringBreak origin
stitcherString?Ad stitcher
public struct LuraAdBreak: LuraEventData {
public var id: String?
public var offset: Double?
public var ads: [LuraAd]?
public var watched: Bool?
public var totalAds: Int?
public var breakDuration: Double?
public var origin: String
public var stitcher: String?
}

LuraAd

ParameterTypeDescription
durationDouble?Ad duration
skipOffsetDouble?Skip offset
titleString?Ad title
descriptionString?Ad description
companions[LuraCompanionCodable]?Companion ads
icons[LuraIconCodable]?Ad icons
interactiveFiles[LuraInteractiveFileCodable]?Interactive files
isClickableBoolAd is clickable
callToActionItems[CallToActionItem]?CTA items
public struct LuraAd: LuraEventData {
public var duration: Double?
public var skipOffset: Double?
public var title: String?
public var description: String?
public var companions: [LuraCompanionCodable]?
public var icons: [LuraIconCodable]?
public var interactiveFiles: [LuraInteractiveFileCodable]?
public var isClickable: Bool
public var callToActionItems: [CallToActionItem]?
}

LuraIconCodable

ParameterType
programString?
widthString?
heightString?
xPositionString?
yPositionString?
durationString?
offsetString?
apiFrameworkString?
clicksLuraClickCodable?
typeString?
creativeTypeString?
dataString?
public struct LuraIconCodable: Codable {
public var program : String?
public var width : String?
public var height : String?
public var xPosition : String?
public var yPosition : String?
public var duration : String?
public var offset : String?
public var apiFramework : String?
public var clicks : LuraClickCodable?
public var type : String?
public var creativeType : String?
public var data : String?
}

LuraClickCodable

ParameterType
clickThroughString?
clickTrackingLuraClickTrackingCodable?
public struct LuraClickCodable: Codable {
public var clickThrough : String?
public var clickTracking : [LuraClickTrackingCodable]?
}

LuraClickTrackingCodable

ParameterType
idString?
urlString?
public struct LuraClickTrackingCodable: Codable {
public var id : String?
public var url : String?
}

LuraCompanionCodable

ParameterType
idString?
apiFrameworkString?
widthString?
heightString?
assetWidthString?
assetHeightString?
expandedWidthString?
expandedHeightString?
adSlotIdString?
pxratioString?
renderingModeString?
altTextString?
clickThroughString?
clickTrackingString?
typeString?
creativeTypeString?
dataString?
tracking[LuraTrackingCodable]?
public struct LuraCompanionCodable: Codable {
var id : String?
var apiFramework : String?
var width : String?
var height : String?
var assetWidth : String?
var assetHeight : String?
var expandedWidth : String?
var expandedHeight : String?
var adSlotId : String?
var pxratio : String?
var renderingMode : String?
var altText : String?
var clickThrough : String?
var clickTracking : String?
var type : String?
var creativeType : String?
var data : String?
var tracking : [LuraTrackingCodable]?
}

LuraTrackingCodable

ParameterType
typeLuraPingType?
urlURL?
progressOffsetDouble?
public struct LuraTrackingCodable: Codable {
public var type: LuraPingType?
public var url: URL?
public var progressOffset: Double?
}

LuraInteractiveFileCodable

ParameterType
apiFrameworkString?
typeString?
urlString?
variableDurationBool?
public struct LuraInteractiveFileCodable: Codable {
public var apiFramework : String?
public var type : String?
public var url : String?
public var variableDuration: Bool?
}

CallToActionItem

ParameterTypeDescription
idUUIDItem ID
labelString?Button label
buttonVariantInt?Button variant
actionInt?Action type
dataString?Action data
startDouble?Start time
endDouble?End time
public struct CallToActionItem: Codable {
public let id: UUID
public var label: String?
public var buttonVariant: Int?
public var action: Int?
public var data: String?
public var start: Double?
public var end: Double?
}

Plugins

LuraPlugins

ParameterTypeDescription
palConfigurationPALPluginConfiguration?PAL plugin
convivaConfigurationConvivaPluginConfiguration?Conviva plugin
openMeasurementConfigurationOpenMeasurementPluginConfiguration?Open Measurement plugin
imaPluginConfigurationIMAPluginConfiguration?IMA plugin
nielsenPluginConfigurationNielsenPluginConfiguration?Nielsen plugin
adobePluginConfigurationAdobeMediaAnalyticsConfiguration?Adobe plugin
comscorePluginConfigurationComScorePluginConfiguration?Comscore plugin
public struct LuraPlugins : Codable {
public var palConfiguration : PALPluginConfiguration?
public var convivaConfiguration : ConvivaPluginConfiguration?
public var openMeasurementConfiguration : OpenMeasurementPluginConfiguration?
public var imaPluginConfiguration : IMAPluginConfiguration?
public var nielsenPluginConfiguration : NielsenPluginConfiguration?
public var adobePluginConfiguration : AdobeMediaAnalyticsConfiguration?
public var comscorePluginConfiguration : ComScorePluginConfiguration?
}

LuraPluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
public class LuraPluginConfiguration : Codable {
public var enabled : Bool = false
}

AdobeMediaAnalyticsConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
appIdString?Adobe app ID
griffonUrlString?Griffon URL
marketingCloudIdString?Marketing cloud ID
publisherIdString?Publisher ID
trackingServerString?Tracking server
mediaTrackingServerString?Media tracking server
channelString?Channel
userIdString?User ID
pageNameString?Page name
playerNameString?Player name
debugLoggingBoolDebug logging
contentInfoAdobeContentInfo?Content info
contextData[String: String]?Context data
public class AdobeMediaAnalyticsConfiguration: LuraPluginConfiguration {
var appId : String?
var griffonUrl : String?
public var contentInfo : AdobeContentInfo?
public var contextData: [String: String]?
}

AdobeContentInfo

ParameterTypeDescription
nameString?Content name
idString?Content ID
lengthDouble?Content length
streamTypeString?Stream type
mediaTypeString?Media type
public class AdobeContentInfo: Codable {
var name: String?
var id: String?
var length: Double?
var streamType: String?
var mediaType: String?
}

ComScorePluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
publisherIdString?Publisher ID
playerNameString?Player name
implementationIdString?Implementation ID
projectIdString?Project ID
playerVersionString?Player version
metadata[String: Any]?Metadata
public class ComScorePluginConfiguration: LuraPluginConfiguration {
private(set) var publisherId: String?
private(set) var playerName: String?
private(set) var implementationId: String?
private(set) var projectId: String?
private(set) var playerVersion: String?
public var metadata: [String: Any]?
}

ConvivaPluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
customerKeyString?Conviva customer key
gatewayUrlString?Conviva gateway URL
logLevelIntLog level
viewerIdString?Viewer ID
contentInfo[String: Any]?Content info
public class ConvivaPluginConfiguration: LuraPluginConfiguration {
var customerKey : String?
var gatewayUrl : String?
var logLevel : Int = 0
var viewerId : String?
public var contentInfo : [String : Any]?
}

NielsenPluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
appIdString?Nielsen app ID
initialization[String: String]?Initialization parameters
metadata[String: Any]?Metadata
public class NielsenPluginConfiguration: LuraPluginConfiguration {
var appId: String?
var initialization: [String : String]?
var metadata: [String : Any]?
}

OpenMeasurementPluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
additionalData[String: Any]?Additional data
public class OpenMeasurementPluginConfiguration: LuraPluginConfiguration {
var additionalData: [String: Any]?
}

PALPluginConfiguration

ParameterTypeDescription
enabledBoolPlugin enabled
ppidString?Publisher provided ID
descriptionUrlString?Description URL
skippablesSupportedBool?Skippable ads supported
forceLimitedAdsBool?Force limited ads
directedForChildOrUnknownAgeBool?Directed for child or unknown age
disableLimitedAdsStorageBool?Disable limited ads storage
disableFirstPartyIdentifiersBool?Disable first-party identifiers
public class PALPluginConfiguration : LuraPluginConfiguration {
var ppid : String?
var descriptionUrl : String?
var skippablesSupported: Bool?
var forceLimitedAds: Bool?
var directedForChildOrUnknownAge: Bool?
var disableLimitedAdsStorage: Bool?
var disableFirstPartyIdentifiers: Bool?
}

IMAPluginConfiguration

Programmatic-only configuration for Google IMA. Initialized with a config dictionary and UIViewController.

public class IMAPluginConfiguration : LuraPluginConfiguration {
var dai: ImaDai?
var client: ImaClient?
var podserve : ImaPodserve?
}

Analytics

LuraAnalyticsConfiguration

ParameterTypeDescription
enabledBoolAnalytics enabled
hostString?Analytics server URL
apiKeyString?API key
periodDoubleSend period in seconds
appApp?Application info
sessionSession?Session info
public class LuraAnalyticsConfiguration: LuraPluginConfiguration {
public var host: String?
public var apiKey: String?
public var period: Double = 10.0
public var app: App?
public var session: Session?

public struct App: Codable {
let id: String
let name: String
let version: String
}

public struct Session: Codable {
let data: String
let userId: String
}
}

App

ParameterTypeDescription
idStringApplication identifier
nameStringApplication name
versionStringApplication version
public struct App: Codable {
let id: String
let name: String
let version: String
}

Session

ParameterTypeDescription
dataStringSession data
userIdStringUser identifier
public struct Session: Codable {
let data: String
let userId: String
}

Events

LuraEventListener

public typealias LuraEventListener = (LuraEventBundle) -> ()

LuraOfflineEventListener

info

This type is available on iOS only.

public typealias LuraOfflineEventListener = (LuraOfflineBundle) -> ()

LuraEventBundle

ParameterTypeDescription
nameString?Event name
typeLuraEvent?Event type
dataLuraEventData?Event payload
public struct LuraEventBundle: Codable {
public var name: String?
public var type: LuraEvent?
public var data: LuraEventData?
}

LuraEventData

public protocol LuraEventData : Codable {}

RateChanged

ParameterTypeDescription
playbackRateFloatPlayback rate
public struct RateChanged: LuraEventData {
public var playbackRate: Float
}

DurationChanged

ParameterTypeDescription
durationFloatMedia duration
public struct DurationChanged: LuraEventData {
public var duration: Float
}

TrickPlayData

ParameterTypeDescription
timeDoubleTrick-play time
widthInt?Thumbnail width
heightInt?Thumbnail height
imageDataString?Base64 image data
rowsInt?Sprite rows
columnsInt?Sprite columns
offset[Int]?Sprite offset
public struct TrickPlayData: LuraEventData {
public var time: Double
public var width: Int?
public var height: Int?
public var imageData: String?
public var rows: Int?
public var columns: Int?
public var offset: [Int]?
}

TimeUpdate

ParameterTypeDescription
contentTimeDoubleCurrent content time
typeStringUpdate type
annotations[Annotation]?Active annotations
adAd?Current ad info
highlightHighlight?Current highlight info
public struct TimeUpdate: LuraEventData {
public var contentTime: Double
public var type: String
public var annotations: [Annotation]?
public var ad: Ad?
public var highlight: Highlight?

public struct Ad: Codable {
public var id: String
public var totalAds: Int
public var adPosition: Int
public var breakDuration: Double
public var adDuration: Double
public var timeInAd: Double
public var timeInBreak: Double
public var skipOffset: Double
public var isClickable: Bool
}

public struct Highlight: Codable {
public var id: String
public var position: Int
public var duration: Double
public var time: Double
public var totalCount: Int
}
}
ParameterTypeDescription
idStringAd identifier
totalAdsIntTotal ads in the break
adPositionIntPosition of the current ad
breakDurationDoubleAd break duration in seconds
adDurationDoubleCurrent ad duration in seconds
timeInAdDoubleTime elapsed in current ad in seconds
timeInBreakDoubleTime elapsed in ad break in seconds
skipOffsetDoubleSkip offset in seconds
isClickableBoolWhether the ad is clickable
public struct Ad: Codable {
public var id: String
public var totalAds: Int
public var adPosition: Int
public var breakDuration: Double
public var adDuration: Double
public var timeInAd: Double
public var timeInBreak: Double
public var skipOffset: Double
public var isClickable: Bool
}

Highlight

ParameterTypeDescription
idStringHighlight identifier
positionIntHighlight position
durationDoubleHighlight duration in seconds
timeDoubleCurrent time within highlight in seconds
totalCountIntTotal highlight count
public struct Highlight: Codable {
public var id: String
public var position: Int
public var duration: Double
public var time: Double
public var totalCount: Int
}

ErrorData

ParameterTypeDescription
typeStringError type
messageString?Error message
errorCodeString?Error code
public struct ErrorData: LuraEventData, Error {
public var type: String
public var message: String?
public var errorCode: String?
}

VolumeChanged

ParameterTypeDescription
volumeFloatVolume level
public struct VolumeChanged: LuraEventData {
public var volume: Float
}

MuteChanged

ParameterTypeDescription
mutedBoolMuted state
public struct MuteChanged: LuraEventData {
public var muted: Bool
}

VideoMetadata

ParameterTypeDescription
metadataLuraVideoMetadataVideo metadata
public struct VideoMetadata: LuraEventData {
public var metadata: LuraVideoMetadata
}

TrackChanged

ParameterTypeDescription
trackTypeString?Track type
trackVideoTrack? | AudioTrack? | CaptionTrack? | ViewGrid?Changed track
public struct TrackChanged: LuraEventData {
public var trackType: String?
public var track: LuraTrack?
}

AvailabilityWindow

ParameterTypeDescription
idStringWindow identifier
startDoubleStart time
endDoubleEnd time
public struct AvailabilityWindow: LuraEventData {
public var id: String
public var start: Double
public var end: Double
}

TimedMetadata

ParameterTypeDescription
data[String: String]Metadata key-value pairs
public struct TimedMetadata: LuraEventData {
public var data: [String : String]
}

ShowCaption

ParameterTypeDescription
textStringCaption text
public struct ShowCaption: LuraEventData {
public var text: String
}

BufferChanged

ParameterTypeDescription
startDoubleBuffer start
endDoubleBuffer end
public struct BufferChanged: LuraEventData {
public var start: Double
public var end: Double
}

CustomDataChanged

ParameterTypeDescription
keyStringCustom data key
valueStringCustom data value
public struct CustomDataChanged: LuraEventData {
public var key: String
public var value: String
}

EventNotifiedData

ParameterTypeDescription
typeNotifiableEventTypeEvent type
payloadString?Event payload
public struct EventNotifiedData: LuraEventData {
public let type: NotifiableEventType
public let payload: String?
}

ScreenState

ParameterTypeDescription
stateLuraScreenStateScreen state
public struct ScreenState: LuraEventData {
public var state: LuraScreenState
}

Warning

ParameterTypeDescription
messageString?Warning message
errorCodeInt?Warning code
public struct Warning: LuraEventData {
public var message: String?
public var errorCode: Int?
}

PlaylistData

ParameterTypeDescription
item[LuraPlayerConfiguration]Playlist item
indexIntItem index
public struct PlaylistData : LuraEventData {
public var item: LuraPlayerConfiguration
public var index: Int
}

AutoSwitchCounter

ParameterTypeDescription
itemLuraPlayerConfiguration?Next playlist item
indexIntItem index
remainingDoubleRemaining seconds
public struct AutoSwitchCounter: LuraEventData {
public let item: LuraPlayerConfiguration?
public let index: Int
public let remaining: Double
}

LuraEngagement

ParameterTypeDescription
idString?Engagement ID
countInt?Engagement count
histogram[Int]?Engagement histogram
public struct LuraEngagement: LuraEventData, Codable {
public let id: String?
public let count: Int?
public let histogram: [Int]?
}

NonLinearMarkersData

ParameterTypeDescription
markersSgaiMarkerSGAI markers
public struct NonLinearMarkersData: LuraEventData {
public let markers: [SgaiMarker]
}

SgaiMarker

ParameterTypeDescription
idStringMarker ID
offsetDoubleMarker offset
typeStringMarker type
durationDoubleMarker duration
public struct SgaiMarker: LuraEventData {
public let id: String
public let offset: Double
public let type: String
public let duration: Double
}

NonLinearProgressData

ParameterTypeDescription
adIdStringAd ID
timeDoubleCurrent time
durationDoubleAd duration
public struct NonLinearProgressData: LuraEventData {
public let adId: String
public let time: Double
public let duration: Double
}

NonLinearLoadedData

ParameterTypeDescription
adIdStringAd ID
adStringAd data
public struct NonLinearLoadedData: LuraEventData {
public let adId: String
public let ad: String
}

HighlightData

ParameterTypeDescription
highlightHighlight?Highlight info
gridHighlightLoadedGrid?Loaded grid layout
public struct HighlightData: LuraEventData, Codable {
public let highlight: Highlight?
public let grid: HighlightLoadedGrid?
}

HighlightLoadedGrid

ParameterTypeDescription
modeString?Grid mode
viewportWidthDouble?Viewport width
viewportHeightDouble?Viewport height
contentHighlightLoadedGridSlot?Content slot
highlightHighlightLoadedGridSlot?Highlight slot
public struct HighlightLoadedGrid: Codable {
public let mode: String?
public let viewportWidth: Double?
public let viewportHeight: Double?
public let content: HighlightLoadedGridSlot?
public let highlight: HighlightLoadedGridSlot?
}

HighlightLoadedGridSlot

ParameterTypeDescription
videoWidthDouble?Video width
videoHeightDouble?Video height
relativeXDouble?Relative X position
relativeYDouble?Relative Y position
relativeHeightDouble?Relative height
relativeWidthDouble?Relative width
public struct HighlightLoadedGridSlot: Codable {
public let videoWidth: Double?
public let videoHeight: Double?
public let relativeX: Double?
public let relativeY: Double?
public let relativeHeight: Double?
public let relativeWidth: Double?
}

Highlight

ParameterTypeDescription
idString?Highlight ID
activeBool?Highlight active
timeDouble?Highlight time
titleString?Title
descriptionString?Description
posterString?Poster URL
modeString?Display mode
public struct Highlight: Codable {
public let id: String?
public let active: Bool?
public let time: Double?
public let title: String?
public let description: String?
public let poster: String?
public let mode: String?
}

LatencyModeChanged

ParameterTypeDescription
latencyModeLuraLatencyModeCurrent latency mode
availability[LuraLatencyMode: Bool]Mode availability
public struct LatencyModeChanged: LuraEventData {
public var latencyMode: LuraLatencyMode
public var availability: [LuraLatencyMode: Bool]
}

CTAEventData

ParameterTypeDescription
itemCallToActionItemCTA item
public struct CTAEventData: LuraEventData {
public let item: CallToActionItem
}

Metadata

LuraVideoMetadata

ParameterTypeDescription
eventIdString?Event identifier
titleString?Video title
descriptionString?Video description
startTimeDouble?Start timestamp
endTimeDouble?End timestamp
tsAbsDouble?Absolute timestamp
dvrAvailabilityString?DVR availability flag
customMetadata[String: Any]?Custom metadata fields
public class LuraVideoMetadata: Codable {
public var eventId: String?
public var title: String?
public var description: String?
public var startTime: Double?
public var endTime: Double?
public var tsAbs: Double?
public var dvrAvailability: String?
public var customMetadata: [String : Any]?
}

Enums & Constants

LuraScreenState

CaseDescription
FULLSCREENFullscreen mode
PICTURE_IN_PICTUREPicture-in-picture mode
WINDOWEDWindowed mode
public enum LuraScreenState : String, Codable {
case FULLSCREEN
case PICTURE_IN_PICTURE
case WINDOWED
}

NotifiableEventType

CaseRaw value
click"CLICK"
cta_click"CTA_CLICK"
activity"ACTIVITY"
back_click"BACK_CLICK"
public enum NotifiableEventType: String, Codable {
case click = "CLICK"
case cta_click = "CTA_CLICK"
case activity = "ACTIVITY"
case back_click = "BACK_CLICK"
}

LuraCastTargets

CaseRaw value
CHROMECAST"chromecast"
AIRPLAY"airplay"
public enum LuraCastTargets : String {
case CHROMECAST = "chromecast"
case AIRPLAY = "airplay"
}

LuraXPosition

CaseRaw value
Left"left"
Right"right"
Center"center"
public enum LuraXPosition: String, Codable {
case Left = "left"
case Right = "right"
case Center = "center"
}

LuraYPosition

CaseRaw value
Top"top"
Bottom"bottom"
Center"center"
public enum LuraYPosition: String, Codable {
case Top = "top"
case Bottom = "bottom"
case Center = "center"
}

LuraSlideDirections

CaseRaw value
Left"left"
Right"right"
Up"up"
Down"down"
public enum LuraSlideDirections: String, Codable {
case Left = "left"
case Right = "right"
case Up = "up"
case Down = "down"
}