Skip to main content
Bunny Player is the video player included with every Bunny Stream library. It runs at player.mediadelivery.net, plays your library’s HLS output with adaptive bitrate, and needs no player code on your side. Embed it with an iframe, style it from the dashboard, and control it from your page with a small JavaScript API.

Embed a video

Every processed video has an embed URL built from the library ID and video GUID:
Embedding videos covers sizing, per-embed parameters such as autoplay and captions, the direct play URL for sharing a link, and the security settings that can block an embed.

What the player does

  • Adaptive HLS playback with a quality menu, and optional native HLS in Safari.
  • Captions, including auto-generated transcription tracks, and an audio track menu for videos with several languages.
  • Chapters and moments on the progress bar, with thumbnail previews on hover.
  • Playback speed control, a watch-time heatmap, and a resume-where-you-left-off option, each configurable per library.
  • Picture-in-picture, fullscreen, Chromecast, and AirPlay.
  • Keyboard shortcuts for playback, seeking, volume, captions, and speed.
  • An interface translated into 27 languages besides English, selected with the lang parameter.
  • MediaCage DRM and VAST ads.
Each playback session feeds the statistics in your dashboard.

Customise the look and defaults

Player settings in the dashboard set the colours, logo, controls, and default behaviour for every embed in a library. Query parameters on the embed URL override those defaults for a single embed.

Control playback from your page

The player speaks the player.js protocol, so your page can play, pause, seek, mute, and listen for events such as timeupdate and ended. Playback control API lists every method and event, and the framework guides show a working component for each stack:

React

Next.js

Vue and Nuxt

Svelte and SvelteKit

Native apps

For iOS and Android apps, the iOS SDK and Android SDK play the same HLS output through the platform’s native video stack. To play your library through Bitmovin, Shaka, or another web player, see Third-party players.

Legacy player

Libraries created before Bunny Player launched may still run the previous Plyr-based player at iframe.mediadelivery.net. Embed URLs on that host keep working while the legacy player is enabled for the library.
The legacy player is deprecated and will be removed in early 2027. Move your embeds to player.mediadelivery.net before then. If you customised it with custom head HTML, the migration guide maps the old selectors to the new ones.
To switch a library between players in the dashboard, open Stream, select the library, open Player Settings, and toggle Enable legacy player.
Enable legacy player toggle in Player SettingsEnable legacy player toggle in Player Settings
The same switch is PlayerVersion on the Update Video Library endpoint, where 2 is Bunny Player and 1 is the legacy player:
Changing the player does not rewrite embed codes you have already published. Update those URLs to player.mediadelivery.net/embed/ yourself.
Last modified on September 21, 2026