When you’re building video capabilities, the player component is the part of your video stack that’s experienced directly by your users.
Today, we’re glad to help improve their experience with the new Bunny Stream video player becoming generally available.
The new player offers:
- Improved user interface
- Faster, smoother playback
- Consistency across all major browsers
- Accessibility improvements
In this post, we’ll cover:
- What this release means for new and existing video libraries
- How to upgrade to the new player
- What’s under the hood and where the ecosystem is heading
Let’s get into it.
How the new player rolls out
- New libraries use the new player by default. New video libraries created in Bunny Stream will automatically use the new player. If needed, you can switch a library back to the legacy player after it’s created via a toggle in the dashboard or using the 'update video library' API endpoint.
- Existing libraries stay on the legacy player until you migrate them. Your existing libraries and embed URLs will continue to use the legacy player until you choose to migrate them to the new one.
From this point onward, new capabilities and features added to Bunny Stream will only be supported by the new player. At the same time, we don’t currently have plans to sunset the legacy player, so you won’t be forced to migrate. Your current embed URLs will continue to work.
That said, migration is straightforward and your users will surely feel the difference, so we recommend you take one of the paths described below.
How to upgrade to the new player
If you’re not using custom CSS or JavaScript
- Log in to bunny.net
- Navigate to Stream from the sidebar
- Select the Video Library you’d like to use the new player on
- Open Player Settings
- Toggle off Enable Legacy Player
-
Update your embed URLs to use the new player endpoint: replace
iframe.mediadelivery.net/embed/withplayer.mediadelivery.net/embed/
Alternatively, you can also upgrade your video library to the new player using the API by setting
"PlayerVersion": 2,
like in the following example:
curl --request POST \
--url https://api.bunny.net/videolibrary/{libraryId} \
--header
'AccessKey: YOUR_ACCESS_KEY' \
--header
'Content-Type: application/json' \
--data '
{
"PlayerVersion": 2
}
Note: Updating the video library via the dashboard or API does not automatically update your existing embed URLs. To use the new player endpoint, update your embed URLs to player.mediadelivery.net/embed/ instead of iframe.mediadelivery.net/embed/
If you’re using custom CSS or JavaScript
If your player uses custom CSS or JavaScript via the
Custom HTML head
feature, you’ll need to migrate the
<head>
markup to work with the new player.
The new player uses a different structure and control elements, meaning CSS selectors or scripts targeting the legacy player may no longer work as expected.
We’ve prepared a migration guide that explains how to update common customizations and map legacy selectors to the new player components.
What you’ll need to do:
-
Search your custom snippet for
plyr,.plyr__, anddata-plyr - Replace selectors using the mapping table in the migration guide
-
Search for jQuery usage
(
$(,jQuery) and rewrite to vanilla JavaScript - Verify on desktop and mobile, especially controls and captions
For detailed instructions and selector mappings, follow the complete migration guide here.
What’s under the hood and where the ecosystem is heading
The new Bunny Stream player is built using Web Components and the open-source Media Chrome project.
Media Chrome provides a set of composable HTML elements that represent common media controls. Elements such as
media-controller,
media-play-button,
and
media-time-range
can be combined to build a player interface directly in the DOM.
Playback itself still relies on the native
<video>
element. Media Chrome components are layered on top of it to provide the user interface.
This HTML-first approach offers a few advantages:
- More flexible customization using standard HTML and CSS
- Improved accessibility through semantic control elements
- More predictable control structure for styling and scripting
This direction also reflects a broader shift happening across the web video ecosystem, with player architectures increasingly moving toward composable, HTML-first approaches.
By building the Bunny Stream player on Media Chrome, we’re aligning with this evolution while keeping the player flexible and easier to extend over time.
Try the new Bunny Stream player
The new Bunny Stream player is now available to everyone and will be used by default for all newly created video libraries.
If you’re already using Bunny Stream, upgrading existing libraries is straightforward. Most libraries can switch to the new player with a single toggle or API call, while customized players can be migrated by following the guide linked above.
We recommend upgrading when convenient, so you can take advantage of the improvements in the new player and upcoming features.

