Announcing our brand new Developer Guides and API documentation in beta! Click here to see the new docs.
This page has been updated for JW Player 8. Click here to go to the JW7 Configuration Reference.

JW Player Configuration Reference

Last Updated: October 3, 2019

This article contains all configuration options JW Player supports.

Certain JW Player features may require a specific license. Please contact our team if your license does not support the features or configuration options you need.
Table Of Contents
Setup Options Playlists Skin
Captions RTMP Logo
Sharing Google Analytics Related
Advertising DRM Internationalization

Introduction

JW Player contains a number of configurable options. Some options, like width or mute, are top level, while other more advanced options may be nested, such as the ones used for skin customizations and advertising.

Here is an example setup that contains both setup options and specific advertising options:

jwplayer("myElement").setup({
  "file": "https://example.com/myVideo.mp4",
  "height": 360,
  "width": 640,
  "autostart": "viewable",
  "advertising": {
    "client": "vast",
    "tag": "http://adserver.com/vastTag.xml"
  }
});


Setup Options

These are the options for configuring the layout and playback behavior of a player. Each is placed directly into the setup of the player.

The following properties are related to media that is loaded into the player.

If only a single playlist item is used, this information can either be configured directly inside of setup. If you are planning on using multiple media items, these can also be used inside of a playlist array.


Media

Setting Type Description Default
file String (Required) URL to a single video file, audio file, or live stream to play. Can also be configured inside of a sources array -
image String URL to a poster image to display before playback starts. -
title String The title of your video or audio item -
description String A description of your video or audio item -
mediaid String Unique identifier of this item. Used by advertising, analytics and discovery services -
type String Defining the video file type is required when using a media file url that does not have an extension. Possible values: aac, mp4, f4v, m4v, mov, mp3, mpeg, ogv, ogg, oga, vorbis, webm, f4a, m3u8, m3u, hls. -
YouTube and RTMP media formats are no longer supported.8.0+


Behavior

Setting Type Description Default
mute Boolean Configures if the player should be muted during playback false
autostart String Whether the player will attempt to begin playback automatically when a page is loaded. Set to 'viewable' to have player autostart if 50% is viewable. false
nextupoffset Number or String8.9.0 Configures when the Next Up card displays during playback

A positive value is an offset from the start of the video. A negative value is an offset from the end of the video. This property can be defined either as a number (-10) or a percentage as a string ("-2%")
-10
repeat Boolean Configures if the player should loop content after a playlist completes false
abouttext String Custom text to display in the right-click menu -
aboutlink String Custom URL to link to when clicking the right-click menu "https://www.jwplayer.com/learn-more"
playbackRateControls Boolean Whether to display a settings menu to adjust playback speed. If true, the pre-defined options available in the menu are 0.5x, 1x, 1.25x, 1.5x, and 2x. An array can be passed to customize the menu options using playbackRates. Note: This feature is not currently supported in Android with HLS streams. false
playbackRates 8.0+ Array of Numbers Custom playback rate options to display in the settings menu. [0.25, 0.75, 1, 1.25]
defaultBandwidthEstimate 8.3+ Number When set, suggests an initial bandwidth estimate (in bits per second) which overrides the default bandwidth estimate of the player for new viewers to your site

Use case: New users to your site may experience low-quality video for several seconds before the quality adapts to the connection speed at which content is delivered. This speed may be limited by their connection speed. In this case, you would want to confirm that the majority of your viewers have fast connections.

NOTE: Since this property sacrifices player performance for video quality, it is strongly recommended not to set this property. The player is optimized to select the best bandwidth after several seconds.
50000


Appearance

Setting Type Description Default
aspectratio String Maintains proportions when width is a percentage. Will not be used if the player is a static size.
Must be entered in ratio "x:y" format.
-
controls Boolean Whether to display the video controls (control bar and display icons) true
displaydescription Boolean Configures if the description title of a media file should be displayed true
displayPlaybackLabel 8.6.0+ Boolean Enables call-to-action text beneath the play button on the player idle screen.

When set to true, you can potentially see up to a 5% increase in the number of times viewers click the play button to watch a video.

The default call-to-action text is "Play." You can also localize this message for your viewers.
false
displaytitle Boolean Configures if the title of a media file should be displayed true
height Number The desired height of your video player (in pixels). Should be omitted when aspectratio is configured 360
qualityLabels Array By default, the JW Player will set video quality levels using information from the manifest files. Use this configuration option to apply a custom quality label to a desired bandwidth in kbps, works for HLS and DASH. For example: "qualityLabels":{"2500":"High","1000":"Medium"} -
nextUpDisplay Boolean Configures whether the Next Up modal is displayed -
renderCaptionsNatively 8.0.1+ Boolean (Chrome and Safari only) Determines if the renderer of the browser or of the player is used to display captions

Possible values include:

true: Captions render using the renderer of the browser.

false: Captions render using the renderer of the player.

Note: See also: captions
false (Chrome)

true (Safari)
stretching String Resize images and video to fit player dimensions. See graphic below for examples
"uniform" — Fits JW Player dimensions while maintaining aspect ratio
"exactfit": Will fit JW Player dimensions without maintaining aspect ratio
"fill"— Will zoom and crop video to fill dimensions, maintaining aspect ratio
"none" — Displays the actual size of the video file. (Black borders)
"uniform"
width Number or String The desired width of your video player (in pixels or percentage) 640
timeSliderAbove, which configures whether the timeslider dynamically appears above the control bar, has been deprecated. 8.0+

Stretching Examples


Rendering and Loading

Setting Type Description Default
base String Configures an alternate base path for skins and providers "/"
preload String Tells the player if content should be loaded prior to playback. Useful for faster playback speed or if certain metadata should be loaded prior to playback:
"none" — Player will explicitly not preload content. (Recommended if you are concerned about excess content usage.)
"metadata" — Loads the manifest and buffers a maximum of one segment of media for HLS and Dash streams.
"auto" — Loads the manifest and buffers approximately 30 seconds worth of media segments.
"metadata"
flashplayer String Specifies an alternate directory of jwplayer.flash.swf "/"
hlsjsdefault Boolean Makes HLSjs the default provider when supported. Disable to use the browser's default provider. true
liveTimeout 8.1.9+ Number Configure how a stalled live manifest is handled. Accepts a positive number in seconds, but values between 1-10 are ignored. Set to 0 to configure a stream to never time out. The player will continue requesting manifests until it times out. If a live manifest does not update after being requested for longer than liveTimeout, the stream will end with an error event. If you want a stream to end immediately, include an end tag in the manifest. This configuration option only handles stalled manifests, not issues with segment loading. A chunk that results in a 404, for example, will still error out. 30
primary, which set the default player rendering mode, has been deprecated.8.0+ Flash is no longer supported in JW Player except to play HLS streams in IE11 on Windows 7.

The default preload configuration has been updated to "metadata", and the metadata and auto settings have been redefined.8.0+


Auto pause 8.8.0+

Automatically pauses the player based on certain rules

By default, adding an empty autoPause object enables the auto pause player functionality and also sets viewability: true.

jwplayer("myElement").setup({
  playlist: "https://example.com/myVideo.mp4",
  ...
  autoPause: {
    viewability: true,
    pauseAds: true
  }
});

Property Type Description Default
pauseAds 8.10.0+ Boolean Controls if ad playback stops when the player is no longer viewable.

true: When the player is no longer viewable, ad playback pauses. Ad playback resumes when the player becomes viewable again.

false: Only video playback will be paused when the player is no longer viewable.

NOTE: If viewability: false, setting pauseAds: true will have no effect.
false
viewability Boolean Controls if video playback stops when player is no longer viewable

true: When the player is no longer viewable, video playback pauses. Playback resumes when the player becomes viewable again. If the player is no longer viewable after an ad break begins, the ad break will continue to play to completion before pausing.

false: The auto pause functionality is disabled.
true


Casting

Casting enables a viewer to use Google Cast or Apple AirPlay technologies to stream video and audio content to a compatible TV or sound system. By enabling the casting feature for a player, a viewer can tap an icon in the control bar to stream your content on a cast-compatible device. If no compatible device is detected by the player, no cast icon appears.

See also: FAQs

To enable casting, add an empty cast object in your setup.

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/1a2Bc3d4",
  "height": "auto"
  "width": "100%",
  "cast": {}
});

If you are using a custom receiver, assign the identifier of the custom receiver to the cast.customAppId property.

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/1a2Bc3d4",
  "height": "auto"
  "width": "100%",
  "cast": {
    "customAppId": "XXXXXX"
  }
});

Property Type Description
customAppId String (Optional) When using a custom receiver, the identifier of the receiver app


Float on scroll 8.8.0+

Keeps the player visible when the original player location is scrolled out of view by minimizing it to a corner of the screen

On devices in portrait orientation, the player becomes fixed to the top of the page using its original dimensions.

When floating, the viewer can drag the player to reposition it. This functionality is disabled during ad playback.

By default, adding an empty floating object enables the floating player functionality and also sets dismissible: true.

Use the following CSS classes to customize the floating player:

Float on scroll cannot be used with a player that is embedded in an iframe.

jwplayer("myElement").setup({
  "playlist": [
    {
      "file": "https://example.com/myVideo.mp4",
    }
  ]
  ...
  "floating": {
    "dismissible": true
  }
});

Setting Type Description Default
dismissible Boolean Permits or prohibits closing the floating player

true: The floating player can be closed by a viewer.

false: The floating player cannot be closed by a viewer.
true



Playlists

The playlist is a powerful feature of JW Player, used to play multiple video or audio files.

A playlist can be either a string, referring to the URL of an RSS feed or JSON file, or an array of media objects.

Configuring Playlist as a String

jwplayer("myElement").setup({
  "playlist": "http://example.com/myPlaylist.json"
});


playlist[]

Configuring Playlist as an Array

jwplayer("myElement").setup({
    "playlist": [{
        "file": "/assets/sintel.mp4",
        "image": "/assets/sintel.jpg",
        "title": "Sintel Trailer",
        "mediaid": "ddra573"
    },{
        "file": "/assets/bigbuckbunny.mp4",
        "image": "/assets/bigbuckbunny.jpg",
        "title": "Big Buck Bunny Trailer",
        "mediaid": "ddrx3v2"
    }]
});

Setting Type Description
file String (Required) If no file is specified in your setup or sources, this is a required configuration option
withCredentials Boolean If true, "withCredentials" will be used to request a media file rather than CORS
title String Title of the item. This is displayed inside of the player prior to playback, as well as in the visual playlist. This can be hidden with the displaytitle option
description String Short description of the item. It is displayed below the title. This can be hidden with the displaydescription option.
image String Poster image URL. Displayed before and after playback.
mediaid String Unique identifier of this item. Used by advertising, analytics and discovery services
recommendations String URL to a feed that contains related items for a particular playlist item
starttime Number Time in seconds to start a media item.

NOTE: When used with an MP4 video file, both seek and seeked events are triggered. Neither event is triggered when used with a DASH or HLS stream.
minDvrWindow Number HLS-only In seconds, the minimum amount of content in an M3U8 required to trigger DVR mode. Set to 0 to always display DVR mode.(Defaults to 120)
sources Array Used for quality toggling and alternate sources

See: playlist.sources
tracks Array Include captions, chapters, and thumbnails for media

See: playlist.tracks
adschedule Object Schedule advertising for a specific media file

See: playlist.adschedule
variations Object Properties of the Intelligent Thumbnails feature for a media item that is hosted on your account

See: playlist.variations

In addition to standard media information, ("title", "description", "mediaid") it is also possible to insert additional metadata, using custom properties. This information must be entered inside of a playlist, and cannot be set directly inside of a setup block.


playlist[index].sources[]

Sources are inserted into playlist objects and are lists of files. Sources serve a dual purpose, depending on the files used:

  • Use different file types: Alternate "fallback" media sources
  • Use the same file type: Toggle quality with static video files

Alternate Media Sources

If using different file types, sources prioritizes which file to play only in the case when a provider (HTML5, HLS, or DASH) fails to load. If there is an error with a stream, the player will not failover to the next provider. In the example below, the player will attempt to play myVideo.m3u8 as a first choice.

In the event that a browser cannot play an m3u8, the player is intelligent enough to choose myVideo.mp4 instead. In the event that an mp4 cannot be played, the player will attempt the webm format before producing an error.

jwplayer("myElement").setup({
  "playlist": [{
    "title":"One Playlist Item With Multiple Sources",
    "description":"Three Sources - One Playlist Item",
    "image": "myImage.png",
    "mediaid": "ddrx3v2",
    "sources": [{
      "file": "myVideo.m3u8"
    },{
      "file": "myVideo.mp4"
    },{
      "file": "myVideo.webm"
    }]
  }]
});


Sources with DRM

When using DRM, we highly suggest placing the drm block inside of the appropriate media source. This ensures the correct media and DRM pair gets chosen for the appropriate browser. For example:

  "sources": [{
      "file": "myFairplayStream.m3u8",
      "drm": {
        "fairplay": {
          "certificateUrl": "http://myfairplay.com/fairplay/cert",
          "processSpcUrl": "http://myfairplay.com/fairplay/ckc"
        }
      }
    },{
      "file": "myWidevineStream.mpd",
      "drm": {
        "widevine": {
          "url": "http://mywidevineurl.com/drm"
          }
      }
    },{
      "file": "myPlayreadyStream.mpd",
      "drm": {
        "playready": {
          "url": "http://myplayreadyurl.com/drm"
          }
      },{
      "file": "myClearkeyStream.mpd",
      "drm": {
        "clearkey": {
          "key": "1234clear5678key",
          "keyId": "fefde00d-efde-adbf-eff1-baadf01dd11d"
          }
      }
    }]

See our drm section for more information.


Manifest and Segment Requests with Custom Headers

You can add custom headers to media XHR requests by using the onXhrOpen callback. This gets executed after XMLHTTPRequest.open() and before XMLHTTPRequest.send() for HLS manifest, key and segment requests made by the player. This is not available in Safari browsers where HLS is played natively.

jwplayer().setup({
    playlist: [{
        sources: [{
            file: 'video.m3u8',
            onXhrOpen: function(xhr, url) {
                xhr.setRequestHeader('customHeader', 'customHeaderValue');
            }
        }]
    }]
})

For HLSjs playback only.


Quality Settings for Video Files

In the event that a streaming technology like HLS or DASH cannot be used, listing video files of different qualities will enable a quality selection settings menu in the player. Compared to other streaming methods, it has the following drawbacks:

  • No automatic switching, based on bandwidth or download speed
  • Changing qualities may cause playback stuttering
  • Pseudostreaming may need to be configured in cases where Flash is used

jwplayer("myElement").setup({
  "playlist": [{
    "title":"One Playlist Item With Multiple Qualities",
    "description":"Two Qualities - One Playlist Item",
    "sources": [{
      "file": "myVideo-720p.mp4",
      "label": "HD"
    },{
    "file": "myVideo-480p.mp4",
    "label": "SD"
    }]
  }]
});

Config Type Description
playlist[index].sources[].file String URL to the video file, audio file, YouTube video or live stream of this playlist item source.
playlist[index].sources[].label String Label of the media source, displayed in the manual quality selection menu. Set this if you have more than 2 qualities of your video.
playlist[index].sources[].type String Forces a media type. Only required when a file extension is missing or not recognized (Using .php or certain tokens, for example
playlist[index].sources[].default Boolean Set this to true for the media source you want to play on startup. If this isn't set for any source, the first one is used
playlist[index].sources[].drm Object An object containing DRM information for a particular source


playlist[index].tracks[]

Tracks can be attached to media for three possible reasons: captions, thumbnails, or chapters. Thumbnail and chapter files must be in WEBVTT format. Captions accept WEBVTT, SRT, and DFXP format, though JW Player strongly suggests using WEBVTT if possible.

Config Type Description Default
playlist[index].tracks[].file String URL to the captions, chapters or thumbnails text track file. See Adding Closed Captions for an example setup. -
playlist[index].tracks[].kind String The kind of text track.
"captions": Captions that display during video playback
"chapters": Places markers on the video er, displaying different sections
"thumbnails": A list of thumbnails that appear when the mouse cursor hovers on the timeslider
"captions"
playlist[index].tracks[].label String Label of the text track. Is only used in setups with multiple captions, where the label is displayed in the CC selection menu. index
playlist[index].tracks[].default Boolean Only for captions. Set this to true if you want a captions track to display by default -

When using the playlist to load an RSS feed, these options are set in the feed. See the Media Formats Reference for an mapping of all playlist options to RSS format.


playlist[index].adschedule

Video ad insertion requires a JW Player Enterprise license. Please contact our team to upgrade your account.

The playlist[index].adschedule block is used for scheduling ad breaks throughout specific playlist items. Each adbreak should be given a unique name, and needs to be nested inside of an adschedule block.

Config Type Information
playlist[index].adschedule.adbreak.offset String or Number Specifies when the included tag should play during content. Can be pre for a preroll, post for a postroll, or a % or number(In seconds), for a midroll
playlist[index].adschedule.adbreak.tag String This is used to set the ad tag for each adbreak within the ad schedule of a playlist item.

jwplayer("myElement").setup({
  "playlist": [{
  "title":"One Media Item",
  "description":"Only One media item in a playlist!",
  "file": "myFile.mp4",
  "mediaid": "ddrx3v2",
  "image": "myImage.png",
    "adschedule": {
      "myPreroll": {
      "offset": "pre",
      "tag": "myAdTag.xml"
      },
    "myMidroll": {
      "offset": 10,
      "tag": "myMidroll.xml"
      }
    }
  }]
});

See our Advertising section for more articles and examples

360 videos

360/VR videos require a playlist block in order to work, even for single items. They will not work at the global level using "file." Playlists can contain a mix of 360 and non-360 items.

Playlist configuration options described above can be used with spherical videos. Below are 360-specific options.

Config Type Description Default
playlist.stereomode String (Required) This field is required for each 360 item in a playlist. If it is undefined, the video will not render in 360 mode. Supported values are "monoscopic", "stereoscopicTopBottom", and "stereoscopicLeftRight". -

playlist[].variations

Manually updating the variations object will compromise Intelligent Thumbnails functionality. This section is provided only to explain the information returned within this object.

jwplayer("myElement").setup({
  "playlist": [
    {
      "file": "https://content.jwplatform.com/v2/media/zyXw4321",
      "image": "https://cdn.jwplayer.com/thumbs/zyXw4321-720.jpg",
      "variations": {
        "images": [
          {
            "image": "https://content.jwplatform.com/v2/media/zyXw4321/thumbnails/63a2zb84.jpg?width=720",
            "id": "63a2zb84",
            "weight": 0.25
          },
          {
            "image": "https://content.jwplatform.com/v2/media/zyXw4321/thumbnails/oig5z424.jpg?width=720",
            "id": "oig5z424",
            "weight": 0.25
          },
          {
            "image": "https://content.jwplatform.com/v2/media/zyXw4321/thumbnails/6067i00p.jpg?width=720",
            "id": "6067i00p",
            "weight": 0.25
          },
          {
            "image": "https://content.jwplatform.com/v2/media/zyXw4321/thumbnails/w1zluc60.jpg?width=720",
            "id": "w1zluc60",
            "weight": 0.25
          }
        ]
      },
      ...
    }
  ]
});

Property Type Description
images Array Thumbnail candidates for Intelligent Thumbnails functionality

See: playlist.variations.images

playlist[].variations.images

Property Type Description
id String Unique identifier for an individual thumbnail candidate
image String URL of an individual thumbnail candidate
weight Number Dynamic weight as calculated by the Intelligent Thumbnails algorithm



This object controls the playlist appearance and behaviors.

Property Type Description Default
autoplaymessage < 8.6.0 String A custom message that appears during autoplay.

xx will be replaced by the countdown timer
__title__ will be replaced by the next title in the related feed.

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
"__title__ will play in xx seconds"
autoplaytimer Number The number of seconds to wait before playing the next related video in your content list. Set to 0 to have your next related content to play immediately 10
displayMode 8.1.9+ String Configures the playlist user interface

none8.9.0+: With the exception of the next up button in the control bar, removes all aspects of the playlist interface

Set this value when using a custom external playlist user interface.


overlay: Adds a "more videos" icon to the control bar

When clicked, an overlay takes over the player and pauses playback.


shelf: Adds a horizontal bar of thumbnails above the control bar that allows viewers to browse recommended videos during the playback experience

The shelf can be collapsed into a "More Videos" button, which appears above the control bar. Due to size constraints, small players fall back to "overlay" mode.


shelfWidget8.5.0+: Adds a persistent horizontal bar of thumbnails outside and beneath the player that allows viewers to browse recommended videos during the playback experience

Use selector to configure shelf location.
overlay (manual, dynamic, and trending playlists)

shelf (recommendations playlists)
file String Location of a JSON or RSS file that contains a recommendations playlist

Use this property to associate a recommendations playlist with all playlists in a player. To associate a recommendations playlist with a specific playlist or playlist item, use playlist[].recommendations.
-
onclick String Behavior when a related video is selected

play: Plays the next video within the current player.

link: Redirects the page to the url specified in the related item's link field.
play
oncomplete String Behavior of the related videos overlay when each video is completed

autoplay: Displays the related overlay and automatically plays the next video in your related feed after 10 seconds

This option also automatically sets the onclick behavior to play.

hide: Replay button and related icon will appear

none: No overlay appears and player automatically advances to the next playlist item

If there is no media item to advance to, the replay button appears.

show: Display the related overlay
none 8.9.0+

show < 8.9.0 (excluding 8.9.0)
selector 8.6.0+ String CSS selector that points to an HTML element that is used as the container when displayMode is set to shelfWidget.

This property can be configured in the following ways:

Undefined HTML element and selector: An element with id="{playerID}-shelf-widget" is created. By default, the shelf widget displays in <div id="{playerID}-shelf-widget"> directly below the player. The shelf widget size is responsive to the player.

You can also assign this ID to a different HTML element on your page. This allows you to set the widget location without defining a new selector. If you assign this ID to a different HTML element, the shelf widget size is responsive to the HTML element.

Defined HTML element and selector: If the HTML element has an ID (myDefinedID) and "selector": "#myDefinedID", shelf widget is placed inside the of HTML element with id="myDefinedId". The shelf widget size is responsive to the HTML element.
-

Skin

JW8 comes with 11 new skin configuration options out of the box. With such granular control over brand identity, it’s easier than ever to customize the player.

Color Customization

Color can be specified as a hex value, RGBA color value, or color name.8.0+

Config Type Description Default
skin.controlbar.text String The color of any plain text in the control bar, such as the time. "#FFFFFF"
skin.controlbar.icons String The default, inactive color of all icons in the control bar. This option also controls the color of the play, pause, and replay icons in the inactive and complete states. "rgba(255,255,255,0.8)"
skin.controlbar.iconsActive String The color of hovered or selected icons in the control bar. "#FFFFFF"
skin.controlbar.background String TThe background color of the control bar and the volume slider. The default background is transparent. "rgba(0,0,0,0)"
skin.timeslider.progress String The color of the bar in the time slider filled in from the beginning of the video through the current position. The buffer region of the control bar is 50% of the opacity of this color. The color of the volume slider is also controlled by this option. "#F2F2F2"
skin.timeslider.rail String The color of the base of the timeslider, known as the rail. "rgba(255,255,255,0.3)"
skin.menus.text String The color of inactive, default text in menus and the Next Up overlay. "rgba(255,255,255,0.8)"
skin.menus.textActive String The color of hovered or selected text in menus. This option also controls the text color in the Discover overlay and the hover state text color in the Next Up overlay. "#FFFFFF"
skin.menus.background String The background color of menus and the Next Up overlay. "#333333"
skin.tooltips.text String The text color of tooltips. "#000000"
skin.tooltips.background String The background color of tooltips. "#FFFFFF"


Backward Compatability

JW8 continues to support the three color customization options from 7.x, skin.active, skin.inactive, skin.background, though the colors may map slightly differently in the new major version.

The table below shows how the three JW7 customization options map to the new JW8 options. You can use both JW7 and JW8 options in an 8 player, with the more specific JW8 configurations overriding JW7 ones when both apply to the same element. Note that there’s no JW7 mapping to the new skin.timeslider.rail option.

New JW8 Config skin.active skin.inactive skin.background
skin.controlbar.iconsActive X
skin.timeslider.progress X
skin.menus.textActive X
skin.controlbar.text X
skin.controlbar.icons X
skin.menus.text X
skin.tooltips.text X
skin.tooltips.background X
skin.controlbar.background X
skin.menus.background X
skin.timeslider.rail does not map


Custom Skins

For more information regarding custom skins, see: Creating a Skin for JW Player.

Config Type Description Default
skin.url String If using an external CSS file to style your player, this must be specified here. -
skin.name String The name of your custom skin to use for styling the player. If you are specifying skin.url, you must specify skin.name, which must match the class name in your CSS file. -
The nine skins available in JW7 have been deprecated.8.0+


Captions

This options block configures the styling of closed captions in the player for desktop browsers. On iOS/Android, a system settings menu provides exactly the same settings, as these are mandated by the FCC.

If you want to control if captions are rendered using the renderer of the browser or the player, set the renderCaptionsNatively property at the global level of setup().
Config Type Description Default
backgroundColor String Hex color of the caption characters background "#000000"
backgroundOpacity Number Alpha percentage of the caption characters background 75
color String Hex color of the captions text "#ffffff"
edgeStyle String Method by which the captions characters are separated from their background "none"
fontFamily String Font Family of the captions text "sans"
fontOpacity Number Alpha percentage of the captions text 100
fontSize Number Size of the captions text (Will not affect text size when rendering captions via browser) 15
windowColor String Hex color of the background of the entire captions area "#000000"
windowOpacity Number Alpha percentage of the background of the entire captions area 0
When setting caption styles, color must be specified as a hex value.

See Styling Captions for FCC Compliance for more information.


RTMP

The RTMP format was deprecated in JW8. For 7.x players, see the JW7 RTMP Configuration Reference documentation.


This options block configures a clickable watermark that is overlayed on the video.

Config Type Description Default
logo.file String The URL of an external JPG, PNG or GIF image to be used as watermark (e.g. /assets/logo.png). We recommend using 24 bit PNG images with transparency -
logo.hide Boolean When this option is set to true, the logo will automatically show and hide along with the other player controls false
logo.link String The URL to visit when the watermark image is clicked. Clicking a logo will have no affect unless this is configured -
logo.margin Number The distance, in pixels, of the logo from the edges of the display 8
logo.position String This sets the corner in which to display the watermark. "control-bar" adds the logo as the leftmost icon in the right grouping of buttons in the control bar.8.0+
"top-left"
"top-right"
"bottom-left"
"bottom-right"
"control-bar"
"top-right"

Example

jwplayer("myElement").setup({
  "file": "http://example.com/myVideo.mp4",
  "logo": {
    "file": "/assets/jw-logo-red-46px.png",
    "link": "https://www.jwplayer.com",
    "hide": "true",
    "position": "top-left"
  }
});

We highly recommend using low-resolution images for logos in the player, as Internet Explorer may not resize an image, especially if it is high-resolution.

Sharing

This options block controls a settings submenu with social sharing options: copy embed code, copy video link and share video to social networks.

Setting an empty "sharing":{} options block will enable the social sharing menu and icon in the control bar. Without the nested config options, it will show the page URL link with default sharing sites, but no embed code.

Config Type Description Default
sharing.link String URL to display in the video link field URL of the current page
sharing.code String Embed code to display in the embed code field. If no code is set, the field is not shown -
sharing.heading < 8.6.0 String Short, instructive text to display at the top of the sharing screen

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
"Share Video"
sharing.sites Array Allows for the customization of social icons ["facebook","twitter","email"]


Available Built-In Social Networks

Social Network Configuration Value Social Network Configuration Value
Facebook "facebook" Tumblr "tumblr"
Twitter "twitter" LinkedIn "linkedin"
Pinterest "interest" Reddit "reddit"
Email "email"

Example

jwplayer("myElement").setup({
  "file": "http://example.com/myVideo.mp4",
  "sharing": {
    "sites": ["reddit","facebook","twitter"]
  }
});

See our Social Sharing support article for more information.


Google Analytics (ga)

This object configures the built-in integration with Google Analytics.

Property Type Description Default
label String Send another playlist property, like "title" or "mediaid", as your event label in Google Analytics "file"
trackerName 8.9.0+ String When using an analytics.js Google Analytics implementation, the name of a user-generated custom tracker which segments player events that appear in reporting

Custom trackers with gtag.js implementations are not supported.
-

Google's separate JavaScript library and config needs to be included in your page's head in order to send events with JW Player. Setting an empty "ga":{} options block will enable basic Google Analytics integration. No additional nested config options are required.

See Connecting Google Analytics for more information.



Advertising

Video ad insertion requires a JW Player Enterprise license. Please contact our team to upgrade your account.

This object configures the video advertising capabilities of JW Player and overrides advertising settings configured in the dashboard. If no schedule is specified, the ad will play as a preroll by default.

Property Type Description Client Default
client String (Required) Chooses the ad client that will be used to display advertisements

Possible values include:

vast: Use the JW Player VAST client

googima: Use the Google IMA SDK - Required for certain ad tags

freewheel: Use the Freewheel client
All -
adscheduleid String (Recommended) Unique identifier for an ad (break) schedule

This ID also enables comprehensive analytics to be generated.

This ID is located on the ADVANCED tab of the Ad Schedule Detail page. If you do not have ad schedules created via the dashboard, a randomly-generated, eight character, alpha-numeric value can be set.
All -
admessage < 8.6.0 String Text that displays during ad playback

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
All "The ad will end in xx seconds"
autoplayadsmuted Boolean For inline players that start muted when viewed on mobile devices, allows ads to play muted All -
bids Object Enable video player bidding with the given settings and bidders

See: advertising.bids
IMA -
companiondiv Object Gives information to the player related to which div(s) to populate with companion ads

See: advertising.companiondiv
IMA,
VAST
-
conditionaladoptout Boolean (VPAID-only) Used to tell the player to not play ads with the conditionalAd attribute inside of the VAST response VAST false
cuetext < 8.6.0 String Specify the text that appears when a user mouses over a scheduled advertisement

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
All "Advertisement"
creativeTimeout Number In milliseconds, the maximum amount of time between the VAST XML being returned and the adStart event before timing out VAST 15000
forceNonLinearFullSlot Boolean For forcing nonlinear ads to be fullsot ads rather than overlays IMA -
freewheel Object FreeWheel ad client settings

See: advertising.freewheel
FreeWheel -
fwassetid String FreeWheel identifier for content configured in FreeWheel MRM FreeWheel -
fwduration Number FreeWheel-provided length of the content FreeWheel -
loadVideoTimeout Number In milliseconds, the maximum amount of time between the VAST XML being returned and the adstart event before timing out FreeWheel,
IMA
15000
locale String Valid two-letter language code for localization of skip-button language IMA -
maxRedirects Number The maximum number of redirects the player should follow before timing out IMA 4
placement8.10.0+ String Value sent in a bid request that identifies the location of a player

This value provides advertisers with more information before bidding for a video ad opportunity.

You can set one fo the following possible values include:

article

banner

feed

floating

instream

interstitial

slider
IMA, VAST article when advertising.outstream: true

instream for all other configurations
podmessage < 8.6.0 String Text that displays during playback of an ad pod.

Use __AD_POD_CURRENT__ to denote the currently playing item in the pod and __AD_POD_LENGTH__ for the total number of ads in the pod.

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
VAST "Ad xx of yy."
preloadAds Boolean Enable pre-loading of prerolls, midrolls and postrolls in click-to-play and autostart: 'viewable'

NOTE: The preroll of subsequent playlist items is also pre-loaded, but only for VAST.
IMA,
VAST
"false"
requestTimeout Number For VAST, the maximum amount of time, in milliseconds, between the start of the ad break and a returned VAST file before timing out.

For IMA and Freewheel, the maximum amount of time, in milliseconds, between the start of the ad break and the ad impression being fired.
All 5000 (VAST), 10000 (IMA), 15000 (FW)
rules Object Enable ad rules with the given settings and bidders.

See: advertising.rules
IMA,
VAST
-
schedule Array or String Load an ad schedule from an external JSON block (array) or VAMP XML (string)

See: advertising.schedule
All -
skipmessage < 8.6.0 String This is used to provide a customized countdown message

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
FreeWheel, VAST "Skip ad in xx"
skipoffset Number If not present in the VAST file, adds a skip offset to static VAST ads FreeWheel,
VAST
-
skiptext < 8.6.0 String This sets the text of the Skip button after the countdown is over

WARNING: Starting with JW Player 8.6.0, use the intl object to set this property.
FreeWheel,
VAST
"Skip"
tag String or Array When a string, URL of the ad tag for VAST and IMA plugins, or a string place holder for FreeWheel

(VAST plugin only) When an array, URLs of the VAST ad tags to be used as fallbacks in the event that one or multiple ad tags fail to render

(VPB only - Required) This is used as a fallback tag when using Video Player Bidding.

When a VAST tag is used, ad tag targeting macros can be added to define features such as GDPR consent.

Do not use this property and advertising.vastxml within the same ad break.

advertising.schedule is ignored if this option is set.
All -
vastLoadTimeout Number In milliseconds, the maximum amount of time between the ad request and a returned VAST file before timing out IMA 10000
vastxml String VAST XML ad tag that is requested during the configured ad break

Do not use this property and advertising.tag within the same ad break.

advertising.schedule is ignored if this option is set
IMA, VAST -
vpaidcontrols Boolean For forcing controls to show for VPAID ads

If the VPAID creative has built-in controls, showing the controls may be redundant
IMA,
VAST
-
vpaidmode String (IMA VPAID-only)

disabled: VPAID ads will not play and an error will be returned if VPAID is requested

enabled: VPAID is enabled using a cross domain iFrame. The VPAID ad cannot access the site. VPAID ads that depend on friendly iFrame access may not play

insecure: The VPAID ad will load in a friendly iFrame. This allows the ad access to the site via javascript
Not supported in Freewheel
IMA "insecure"

advertising.bids

Use this property to enable and configure Video Player Bidding with supported bidders.

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4", 
  "advertising": {
    ...
    "bids": {
      "bidOnBreaks": 3,
      "settings": {...},
      "bidders": [...]
    }
  ...
  }
});

Property Type Description
bidders Array (Required) Defines each bidding partner

See: advertising.bids.bidders
settings Object (Required) Defines the mediation layer, floor price, and timeout

See: advertising.bids.settings
bidOnBreaks Number Number of ad breaks for which bid requests are sent.

NOTE: For content with more than three ad breaks, change the default setting to 3 and adjust this value depending on performance.

By default, a bid request is made for each ad break.

advertising.bids.bidders[]

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4", 
  "advertising": {
    "bids": {
      ...
      "bidders": [
        {
          "name": "SpotX",
          "id": "85394"
        }
      ]
    }
  ...
  }
});

Property Type Description
id String (Required) Identifier issued by the bidding partner that represents a segment of a publisher's inventory
name String (Required) Ad partner from which the bid is received

Possible values include:

EMX

Facebook

PubMatic

SpotX

Telaria
optionalParams Object Additional parameters that can be appended to the ad tag when SpotX is the the ad partner

See: advertising.bids.bidders[].optionalParams
pubid String Identifier issued by an ad partner that represents the publisher
type String Indicates that the oRTB standard is used by the bidder

NOTE: Required only when name is EMX, Pubmatic, or Telaria. Must be set to OpenRTB.

advertising.bids.bidders[].optionalParams

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4", 
  "advertising": {
    "bids": {
      ...
      "bidders": [
        {
          "name": "SpotX",
          "id": "85395"
          "optionalParams": {
            "price_floor": 5.30,
            "custom": {
              "name": "custom_param_name_goes_here",
              "value": "custom_param_value_goes_here"
            }
          }
        }
      ]
    }
  ...
  }
});

Property Type Description
content Object OpenRTB content object. See: 3.2.16 Object: Content in the OpenRTB 2.5 specification.
custom Object Publisher-defined custom key-value pairs
price_floor Number Price floor of this opportunity
token Object Publisher-defined custom pass-through macros

advertising.bids.settings

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4", 
  "advertising": {
    ...
    "bids": {
      ...
      "settings": {
        "mediationLayerAdServer": "jwp",
        "floorPriceCents": 10,
        "floorPriceCurrency": "usd",
        "bidTimeout": 1000  
      }
    }
  ...
  }
});

Property Type Description
mediationLayerAdServer String (Required) Mediation layer that decides which ad runs

jwp: (VAST/IMA) An auction is conducted by the player. If a winner is selected, the winner's ad is called. If no winner is selected, the fallback tag is called. You must specify a floor price.

jwpspotx: (VAST) No auction is conducted by the player. The player asks SpotX for a bid and calls the returned ad response regardless of price. This option is equivalent to using JW Player mediation with a $.01 floor price. You must set up SpotX line items.

dfp: (IMA) No auction is conducted by the player. All bids are sent to Google Ad Manager (GAM, formerly known as DFP) and rendered as line items that compete against other line items. GAM serves the winning line item. We recommend setting buckets to minimize the number of line items that you must set up in GAM.

jwpdfp: (IMA) An initial auction is conducted by the player. If a winner is selected, the winner's ad will is called. If no winner is selected, the fallback tag is called to serve. If no winner is selected for any reason, all valid bids are sent to Google Ad Manager (GAM, formerly known as DFP) where the bid values are rendered as line items to compete against other line items. The winning line item is served by GAM. You must set floorPriceCents. We recommend setting buckets to minimize the number of line items that you must set up in GAM.

Default value: jwp
buckets Array (Recommended) Ranges of bid prices

When using buckets, bid prices sent to GAM are rounded down to the closest specified increment. Price buckets are helpful to reduce the number of line items in GAM. Without price buckets, one line item per one-cent increment is required.

This property only applies when dfp or jwpdfp (only for the GAM portion of the mediation) is selected as the mediationLayerAdServer.
bidTimeout String Timeout for bid response after the user clicks to play, in milliseconds

If you use SpotX as an ad partner, be sure to make a time allowance for the SpotX SDK to load.

Default value: 2000
floorPriceCents Number Price in cents (CPM) that a bid has to beat in order to win

This property must be set when mediationLayerAdServer is set to jwp or jwpdfp.

NOTE: Determining the best floor price depends upon various factors. If you need assistance determining the best floor price, please consult with your JW Player representative or SSP partner.
floorPriceCurrency String Currency of the floorPriceCents

This property must be set to usd when mediationLayerAdServer is set to jwp.

advertising.bids.settings.buckets[]

Property Type Description Default
increment Number Nearest increment to which a bid is rounded down, in bidding currency 0.01
max Number Maximum value of a price bucket, in bidding currency -
min Number Minimum value of a price bucket, in bidding currency 0

advertising.companiondiv

This is an object with 3 properties: id, width and height. Set these to have JW Player load a companion ad from your VAST/IMA tag into a div on your page. See Companion Ads for more info.

Property Type Description
height Number The targeted desired height of a companion ad that exists in a VAST ad
width Number The targeted desired width of a companion ad that exists in a VAST ad
id String The ID of the div to replace with a companion ad

advertising.freewheel

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4",
  "fwassetid": "test_asset",
  "duration": 600,
  "advertising": {
    ...
    "freewheel": {
      "networkid": 12345,
      "adManagerUrl": "https://mssl.fwmrm.net/libs/adm/6.24.0/AdManager.js"
      "serverid": "http://demo.v.fwmrm.net/ad/g/1",
      "profileid": "12345:html5_test",
      "sectionid": "test_site_section"
    }
  }
});

Property Type Description
adManagerURl String URL of FreeWheel AdManager

Your FreeWheel Solution Engineer or Account Representative can provide you with a versioned AdManager URL.
networkid Number FreeWheel identifier of a network
profileid String FreeWheel identifier of a particular application environment
sectionid String FreeWheel identifier of a location where the video content plays
serverid String URL of FreeWheel ad server

advertising.rules

Use this property to control how frequently ads play back. See our Ad Rules Reference support article for more information.

jwplayer("myElement").setup({
  "playlist": [...],
  "advertising": {
    ...
    "rules": {
      "startOn": 2,
      "frequency": 1,
      "timeBetweenAds": 300,
      "startOnSeek": "pre"
    }
  }
});

Property Type Ad client Description Default
startOn Number IMA,
VAST
First playlist item allowing ad playback.

In the dashboard, this is one of the Ad Frequency Rules.
1
frequency Number IMA,
VAST
Regularity of ads within a playlist. For example, if frequency: 3, ads play before every third playlist item.

Use 0 to only play ads on the first playlist item.

In the dashboard, this is one of the Ad Frequency Rules.
1
startOnSeek 8.5.0+ String VAST Setting that defines if a returning visitor is served a pre-roll ad when resuming previously-watched video content.

pre: Player shows returning visitor a pre-roll ad before resuming video playback.

none: Player shows returning visitor no ads and resumes video playback.

In the dashboard, this is one of the Long-form Engagement Rules.

NOTE: Each of the following must be tracked: the unique viewer, the unique piece of content the viewer was watching, and the time when the viewer left the page during playback of the video content. During the player setup, this information must be passed into the player. Use starttime to pass the time location to resume playback.
-
timeBetweenAds Number VAST Minimum time in seconds that must elapse after displaying an ad in a schedule before playing the next scheduled ad.

In the dashboard, this is one of the Long-form Engagement Rules.
0

advertising.schedule

Use this property to load an entire advertising schedule to JW Player, containing multiple ad breaks. The property value can be a URL to a VMAP schedule or an inline JSON block with ads. This schedule will then be applied to each playlist item. For scheduling ads for individual playlist items, see scheduling ads for playlist items.

Ad Schedules with VMAP Files

If you are planning on using a VMAP file, add the link to a VMAP .xml file as the value for schedule:

jwplayer("myElement").setup({
  "playlist": [
    {
      "file": "http://example.com/myVideo.mp4"
    }
  ],
  "advertising": {
    "client": "vast",
    "adscheduleid": "t4Xk5tsF",
    "schedule": "myvmap.xml"
  }
});

The VMAP schedule will then be applied to each playlist item. See our article about VMAP schedules for more information.

Embedded Ad Schedules with JSON

In order to use a JSON-formatted schedule, you must define at least one ad break configured inside of the schedule property. Each ad break should include an offset and a tag or vastxml.

jwplayer("myElement").setup({
  "playlist": "https://cdn.jwplayer.com/v2/playlists/a12bc3D4",
  "advertising": {
    "client": "vast",
    "adscheduleid": "p4Xk5lsZ",
    "schedule": [
      {
        "tag": "myPreroll.xml",
        "offset": "pre",
        "custParams": {
          "testkey1": "testval1",
          "testkey2": "testval2"
        },
      },
      {
        "vastxml": "<VAST version='2.0'> ... </VAST>",
        "offset": "50%"
      }
    ]
  }
});

Property Type Description Default
custParams Object Allows for passing custom parameters to an ad break, which then pass through to the URL requested from the ad server -
offset String or Number When to play the configured ad tag

pre: Ad plays as a preroll

post: Ad plays as a postroll

xx%: (VAST only) Ad plays after xx% of the content

number: Ad plays after the specified number of seconds
pre
pod Array Configures a single ad break to play two or more VAST ads consecutively

Do not use use this property with advertising.schedule[].tag or advertising.schedule[].vastxml within the same ad break. Instead of using this property, we strongly recommend using a VAST 3.0 template to configure ad pods.
-
tag String or Array When a string, URL of the ad tag for VAST and IMA plugins, or a string place holder for FreeWheel

(VAST plugin only) When an array, URLs of the VAST ad tags to be used as fallbacks in the event that one or multiple ad tags fail to render

When a VAST tag is used, ad tag targeting macros can be added to define features such as GDPR consent.

Do not use this property and advertising.schedule[].vastxml within the same ad break.
-
type String Property indicating the format of the ad to be served within the ad break

linear: Video ad that interrupts video content playback

nonlinear: Static display ad that overlays a portion of the player and does not interrupt playback. No advertisting cuepoint is shown for this ad break.

If a mix of linear and non-linear ads will serve within an ad break, do not set this property. The player will interrupt video playback for linear ads and will not interrupt video playback for non-linear ads.
linear
vastxml String VAST XML ad tag that is requested during the configured ad break

Do not use this property and advertising.schedule[].tag within the same ad break.
-



DRM

Video content protection requires a JW Player Enterprise license. Please contact our team to upgrade your account.

Configuration options related to DRM for MPEG DASH (Playready, Widevine, Clearkey) and HLS streams (Fairplay).

JW Player includes the ability to add DRM to a specific playlist source. Using this method will allow your browser to choose the correct DRM method when multiple DRM types are configured. We highly suggest updating any configurations to use this new method.

HTTPS is required for all DRM-protected content.

For more information regarding DRM, and for examples, please view our support article.

drm.playready

Playready DRM is specific to Internet Explorer 11 and Edge on Windows 8.1 or higher operating systems.

Option Type Description Default
drm.playready.url String (Required) The URL of the PlayReady license server -
drm.playready.headers Array Specifies the custom http headers to send to your playready license server. See headers for more information -
drm.playready.licenseRequestFilter Function Expects a function which takes a single request argument. License request filters intercept license requests before 'licenseRequestHeaders' are added. -
drm.playready.licenseResponseFilter Function Expects a function which takes a single response argument. License response filters intercept license responses before updating the session with the license key. -


drm.widevine

Widevine DRM is specific to Google Chrome on non-iOS devices. Widevine will also function on Firefox browsers for desktop systems.

Option Type Description Default
drm.widevine.url String (Required) The URL of the WideVine license server -
drm.widevine.serverCertificateUrl String The URL of the WideVine service certificate -
drm.widevine.headers Array Specifies the custom http headers to send to your widevine license server requests. See headers for more information -
drm.widevine.licenseRequestFilter Function Expects a function which takes a single request argument. License request filters intercept license requests before 'licenseRequestHeaders' are added. -
drm.widevine.licenseResponseFilter Function Expects a function which takes a single response argument. License response filters intercept license responses before updating the session with the license key. -


drm.[widevine/playready].headers

Adding customized HTTP header data to license requests is possible with the "headers" configuration. This replaces the static "customData" configuration option in both widevine and playready scenarios. It is also possible to add multiple custom http headers by including multiple objects in the "headers" array.

DRM can be configured in the following way:

"drm": {
  "playready": {
  "url": "mydrmserver.com"
  "headers": [{
    "name": "customData",
    "value": "hereismycustomdatastring"
    }]
  }
}

In previous versions, adding "customData" would look like the following:

"drm": {
  "playready": {
  "url": "mydrmserver.com"
  "customData": "hereismycustomdatastring"
  }
}

Option Type Description
headers.name String The name of the http header that will be included
headers.value String The value of the http header that will be included


drm.fairplay

JW Player includes configuration options for custom Fairplay integrations. For more information and examples regarding custom Fairplay DRM integrations, please view our support article.

Option Type Description
drm.fairplay.certificateUrl String (Required) The path to the certificate which is part of the session data used to initialize the keySession.certificateUrl
drm.fairplay.processSpcUrl String or Function (Required) The path to the license server (server playback context) which provides the ckc. Expects a direct url to the server. If the url needs to be constructed dynamically, a custom function can be passed to this configuration option which returns the url
drm.fairplay.extractContentId Function Expects a function that receives the initData uri (converted to a string) from the needkey event, and returns the contentId which is part of the session data used to initialize the keySession
drm.fairplay.licenseRequestHeaders Array Expects an Array of Objects containing header “name” and “value” properties to be included in the request to the license server
drm.fairplay.licenseResponseType String Specifies the data type returned by the XHR request to the license server. The default value is 'arraybuffer'. Other options include 'blob', 'json', and 'text'. This option impacts how “licenseRequestMessage” will be processed
drm.fairplay.licenseRequestMessage Function Expects a function that receives the license key message and returns the message to be sent to the license server. With the default “licenseResponseType” of ArrayBuffer this function passes through keymessage event message property without any changes
drm.fairplay.extractKey Function Expects a function that receives the ckc returned by the license server and returns the key used to update the active key session. If the key can only be extracted asynchronously (for example reading bytes from a ‘blob’ response), this function can return a promise
drm.fairplay.licenseRequestFilter Function Expects a function which takes a single request argument. License request filters intercept license requests before 'licenseRequestHeaders' are added.
drm.fairplay.licenseResponseFilter Function Expects a function which takes a single response argument. License response filters intercept license responses before updating the session with the license key.


drm.clearkey

A basic form of DRM that lists a decryption key inside of your player configuration. This is the least secure form of DRM, though it is the simplest to implement across browsers. There are no additional server resources required to decrypt content with this method. Clearkey is supported in both Chrome and Firefox browsers.

Option Type Description
drm.clearkey.key String (Required) The key required to decrypt DRM content
drm.clearkey.keyId String (Required) The key ID specified in the mpd's default_KID value


Internationalization 8.6.0+

The intl object allows you to add new language translations, customize translations for player text and aria-label values, and access the benefits of the automated player localization feature.

Any existing language customizations or translations made outside of the intl object will override both automated player localization and intl object customizations. If you have configured language customizations or translations outside of the intl object, use the table below to copy those values into the corresponding intl.{lang}.{property}.

For each language, use a two-letter or locale-specific language code to define language-specific objects. Use the code example and tables below to configure the intl object.

jwplayer("myElement").setup({
  . . .
  "intl": {
    // Quebec french sub-block
    "fr-ca": {
      "play": "reproduire"
    },
    // french sub-block
    "fr": {
      "replay": "Repeter",
      "play": "jouer"
    },  
    // spanish sub-block
    "es": {
      "replay": "Repetir"
    }
    // frisian sub-block
    "fy": {
      "advertising": {
        "loadingAd": "Advertinsje lade"
      }
    }
  }
});

Option Type Description Default
advertising Object See: advertising object. -
airplay String Tooltip text and aria-label for Apple AirPlay casting icon in the control bar Airplay
audioTracks String Tooltip text for and aria-label HTML attribute of the audio tracks menu icon Audio Tracks
auto String Label text and aria-label HTML attribute of the default quality selection option that allows the player to automatically select the best quality level for the viewer Auto
buffer String aria-label for when player is in buffering state Loading
cast String Tooltip text for and aria-label HTML attribute of the Google Chromecast casting icon in the control bar Chromecast
cc String Tooltip text for and aria-label HTML attribute of the closed captions menu icon Closed Captions
close String Tooltip text for and aria-label HTML attribute of the icon to close a menu or overlay. Close
errors Object See: errors object. -
exitFullscreen 8.7.0 + String When in fullscreen mode, tooltip text for and aria-label HTML attribute of the fullscreen icon in the control bar Exit Fullscreen
fullscreen String Tooltip text for and aria-label HTML attribute of the fullscreen icon in the control bar Fullscreen
hd String Tooltip text for and aria-label HTML attribute of the video Quality options menu icon Quality
liveBroadcast String In the control bar, label text and aria-label HTML attribute for live streams Live
logo String aria-label HTML attribute of the logo in the player Logo
mute 8.7.0 + String When the player is not muted, tooltip text for and aria-label HTML attribute of the volume icon in the control bar Mute
next String aria-label HTML attribute of the right arrow in overlays with multiple pages of videos Next
nextUp String Title text and aria-label HTML attribute of the overlay that displays the next item to automatically play in a playlist Next Up
notLive String In the control bar, label text and aria-label HTML attribute that indicates the current video position in a live stream lags behind the real-time stream Not Live
off String Menu option text for turning an option off Off
pause String aria-label HTML attribute of the pause icon in the control bar Pause
play String aria-label HTML attribute of the play icon in the control bar Play
playback String Call-to-action text beneath the play button on the player idle screen. Play
playbackRates String Tooltip text for and aria-label HTML attribute of the playback rate controls menu Playback Rates
player String aria-label HTML attribute of the video player application Video Player
playlist < 8.8.0 String Tooltip text for, overlay heading for, and aria-label HTML attribute of a playlist overlay

DEPRECATED: Starting with JW Player 8.8.0, use the related.heading property to set this property.
Playlist
poweredBy String Text displayed before the JW Player name and logo on a button in the Right-click menu. Powered by
prev String aria-label HTML attribute of the left arrow in overlays with multiple pages of videos Previous
related Object See: related object. -
replay String Tooltip text for and aria-label HTML attribute of the replay button in the control bar, displayed at the completion of video playback. Replay
rewind String Tooltip text for and aria-label HTML attribute of the rewind button in the control bar Rewind 10 Seconds
settings String Tooltip text for and aria-label HTML attribute of the Settings menu icon Settings
sharing Object See: sharing object. -
slider String aria-label HTML attribute of the video scrub bar Seek Slider
stop String aria-label HTML attribute of the stop button in the control bar for live streams. Stop
unmute 8.7.0 + String When the player is muted, tooltip text for and aria-label HTML attribute of the volume icon in the control bar Unmute
videoInfo String Label text and aria-label HTML attribute of the Right-click menu button. About This Video
volume String Tooltip text for and aria-label HTML attribute of the volume in the control bar. Volume
volumeSlider String aria-label HTML attribute of the volume slider in the control bar. Volume Slider

advertising object

This object localizes the player text and ARIA labels of the advertising object.

Option Type Description Default
admessage String Countdown message text that displays the remaining duration of an ad This ad will end in xx
cuetext String Tooltip text for and aria-label HTML attribute that indicates the content is an advertisement. Appears when a user mouses over a scheduled advertisement cue marker in the time slider. Advertisement
loadingAd String Text displayed when an ad is loading Loading ad
podmessage String Text that displays during playback of an ad pod.

Use __AD_POD_CURRENT__ to denote the currently playing item in the pod and __AD_POD_LENGTH__ for the total number of ads in the pod.
Ad xx of yy
skipmessage String Skip countdown message text that displays the remaining duration before an ad can be skipped Skip ad in xx
skiptext String Button text for and aria-label HTML attribute that indicates when an ad can be skipped Skip

errors object

This object localizes the error messages displayed in the player.

Option Type Description Default
badConnection String Error message text displayed when a connection issue prevents playback This video cannot be played because of a problem with your internet connection.
cantLoadPlayer String Error message text displayed when a player fails to instantiate due to a non-network reason. For example: incorrect JSON or license keys Sorry, the video player failed to load.
cantPlayInBrowser String Error message text displayed when a video fails to start playback due to a browser support reason. For example: such as Flash or DASH error or browser support The video cannot be played in this browser.
cantPlayVideo String Error message text displayed when a media item fails to load This video file cannot be played.
errorCode String Label text for a numeric error code. (For example: Error code: 50244402) Error code
liveStreamDown String Error message text displayed when a live stream has technical issues or has ended The live stream is either down or has ended.
protectedContent String Error message text displayed when DRM or protected content fails There was a problem providing access to protected content.
technicalError String Fallback error message text displayed when no other error message is applicable This video cannot be played because of a technical error.

This object localizes the player text and ARIA labels of the related object.

Option Type Description Default
autoplaymessage String Countdown message text that displays the remaining duration before the next video begins to play Next up in xx
heading String Button text for, overlay heading for, and aria-label HTML attribute of recommended video interfaces More Videos

sharing object

This object localizes the player text and ARIA labels of the sharing object.

Option Type Description Default
copied String In the Sharing menu, tooltip text and aria-label HTML attribute for when a link is copied to the clipboard Copied
email String In the Sharing menu, label text for and aria-label HTML attribute of the option to email a video link in the sharing menu Email
embed String In the Sharing menu, label text for and aria-label HTML attribute of the option to copy embed code to clipboard Embed
heading String Tooltip text for and aria-label HTML attribute of the Sharing button in the control bar Share
link String In the Sharing menu, label text for and aria-label HTML attribute of the option to copy a link to clipboard Link

Transition table

Use the table below to copy old customization or translation values to the corresponding intl.{lang}.{property}.

Old property New property
advertising.admessage intl.{lang}.advertising.admessage
advertising.cuetext intl.{lang}.advertising.cuetext
advertising.podmessage intl.{lang}.advertising.podmessage
advertising.skipmessage intl.{lang}.advertising.skipmessage
advertising.skiptext intl.{lang}.advertising.skiptext
localization.airplay intl.{lang}.airplay
localization.audioTracks intl.{lang}.audioTracks
localization.buffer intl.{lang}.buffer
localization.cast intl.{lang}.cast
localization.cc intl.{lang}.cc
localization.close intl.{lang}.close
localization.copied 8.1.8+ intl.{lang}.sharing.copied
localization.errors.badConnection8.4.0+ intl.{lang}.errors.badConnection
localization.errors.cantLoadPlayer 8.4.0+ intl.{lang}.errors.cantLoadPlayer
localization.errors.cantPlayInBrowser 8.4.0+ intl.{lang}.errors.cantPlayInBrowser
localization.errors.cantPlayVideo 8.4.0+ intl.{lang}.errors.cantPlayVideo
localization.errors.errorCode 8.4.0+ intl.{lang}.errors.errorCode
localization.errors.liveStreamDown 8.4.0+ intl.{lang}.errors.liveStreamDown
localization.errors.protectedContent 8.4.0+ intl.{lang}.errors.protectedContent
localization.errors.technicalError 8.4.0+ intl.{lang}.errors.technicalError
localization.fullscreen intl.{lang}.fullscreen
localization.hd intl.{lang}.hd
localization.liveBroadcast intl.{lang}.liveBroadcast
localization.loadingAd intl.{lang}.advertising.loadingAd
localization.more intl.{lang}.next
localization.next intl.{lang}.next
localization.nextUp intl.{lang}.nextUp
localization.nextUpClose intl.{lang}.close
localization.pause intl.{lang}.pause
localization.play intl.{lang}.play
localization.playback intl.{lang}.playback
localization.playbackRates intl.{lang}.playbackRates
localization.player intl.{lang}.player
localization.playlist intl.{lang}.playlist
localization.prev intl.{lang}.prev
localization.related intl.{lang}.related.heading
localization.replay intl.{lang}.replay
localization.rewind intl.{lang}.rewind
localization.stop intl.{lang}.stop
localization.videoInfo intl.{lang}.videoInfo
localization.volume intl.{lang}.volume
related.autoplaymessage intl.{lang}.related.autoplaymessage
sharing.heading intl.{lang}.sharing.heading
sharing.link intl.{lang}.sharing.link



Use this form to provide your feedback.