Home

Awesome

Shaka Player

Shaka Player is an open-source JavaScript library for adaptive media. It plays adaptive media formats (such as DASH, HLS and MSS) in a browser, without using plugins or Flash. Instead, Shaka Player uses the open web standards MediaSource Extensions and Encrypted Media Extensions.

Shaka Player also supports offline storage and playback of media using IndexedDB. Content can be stored on any browser. Storage of licenses depends on browser support.

Our main goal is to make it as easy as possible to stream adaptive bitrate video and audio using modern browser technologies. We try to keep the library light, simple, and free from third-party dependencies. Everything you need to build and deploy is in the sources.

For details on what's coming next, see our development roadmap.

Maintained branches

See maintained-branches.md for the up-to-date list of maintained branches of Shaka Player.

Platform and browser support matrix

BrowserWindowsMacLinuxAndroidiOS >= 9iOS >= 17.1iPadOS >= 13ChromeOSOther
Chrome¹YYYYNativeNativeNativeY-
Firefox¹YYYuntested⁵NativeNativeNative--
Edge¹Y--------
Edge ChromiumYYYuntested⁵NativeNativeNative--
IEN--------
Safari¹-Y--NativeYY--
Opera¹untested⁵untested⁵untested⁵untested⁵Native----
Chromecast².--------Y
Tizen TV³--------Y
WebOS⁶--------Y
Hisense⁷--------Y
Xbox One--------Y
Playstation 4⁷--------Y
Playstation 5⁷--------Y

NOTES:

NOTES for iOS and iPadOS:

Manifest format support matrix

FormatVideo On-DemandLiveEventIn-Progress Recording
DASHYY-Y
HLSYYY-
MSSY---

You can also create a manifest parser plugin to support custom manifest formats.

DASH features

DASH features supported:

DASH features not supported:

HLS features

HLS features supported:

HLS features not supported:

<details> <summary> <h3>Supported HLS tags</h3> </summary>

For details on the HLS format and these tags' meanings, see https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis

<h4> Multivariant Playlist tags</h4> <h4>Media Playlist tags</h4> </details>

MPEG-5 Part2 LCEVC Support

Only supported on browsers with Media Source Extensions SourceBuffer support

MSS features

MSS features supported:

MSS features not supported:

DRM support matrix

BrowserWidevinePlayReadyFairPlayClearKey⁶
Chrome¹Y--Y
Firefox²Y--Y
Edge³-Y--
Edge ChromiumYY-Y
Safari--Y-
Operauntested⁵--untested⁵
ChromecastYY-Y
Tizen TVYY-Y
WebOS⁷untested⁷untested⁷-untested⁷
Hisense⁷untested⁷untested⁷-untested⁷
Xbox One-Y--
Playstation 4⁷-untested⁷-untested⁷
Playstation 5⁷-untested⁷-untested⁷

Other DRM systems should work out of the box if they are interoperable and compliant to the EME spec.

NOTES:

ManifestWidevinePlayReadyFairPlayClearKey
DASHYY-Y
HLSYYY ¹-
MSS-Y--

NOTES:

Media container and subtitle support

Shaka Player supports:

Subtitles are rendered by the browser by default. Applications can create a text display plugin for customer rendering to go beyond browser-supported attributes.

<!-- TODO: replace with a link to a TextDisplayer tutorial -->

Transmuxer support

Shaka Player supports:

Thumbnails support

Shaka Player supports:

Monetization with Ads

Shaka Player supports:

Content Steering support

Shaka Player supports Content Steering (v1) in DASH and HLS.

Content Steering features supported:

Content Steering features not supported:

VR support

Shaka Player supports VR when:

VR modes supported:

NOTES:

Documentation & Important Links

FAQ

For general help and before filing any bugs, please read the FAQ.

Contributing

If you have improvements or fixes, we would love to have your contributions. Please read CONTRIBUTING.md for more information on the process we would like contributors to follow.

Framework Integrations

The Shaka team doesn't have the bandwidth and experience to provide guidance and support for integrating Shaka Player with specific frameworks, but some of our users have successfully done so and created tutorials to help other beginners.

Shaka + ReactJS Library

Shaka + ReactJS integrations:

Shaka + Next.js integration:

Shaka + Vue.js integrations:

Shaka + Nuxt.js integration:

Shaka + video.js integration:

Shaka + Angular integration:

If you have published Shaka Integration code/tutorials, please feel free to submit PRs to add them to this list, we will gladly approve!