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"
}