Bunny Stream Video Is Too Small in WordPress? Here’s Which URL to Use

When adding a Bunny Stream video to WordPress, two problems can appear at the same time:

  1. The embedded video is displayed very small.
  2. Bunny Stream’s dashboard seems to provide several URLs, but not the Direct Play URL mentioned in some instructions.

For example, the video details may show:

HLS Playlist URLThumbnail URLPreview Animation URL (WebP)Video IDOEmbed

This makes it unclear which value should actually be pasted into WordPress.

The important thing is that those values serve different purposes.

For a normal Bunny-hosted video displayed on a WordPress page, you generally should not use the Thumbnail URL or Preview Animation URL, and you only use the HLS Playlist URL when your WordPress video player explicitly asks for an HLS .m3u8 stream.

If you want Bunny’s own player, use the Bunny embed/player URL or, even better, use Bunny’s official WordPress Stream block or shortcode. Bunny’s current documentation recommends its responsive iframe player for website embeds.

What Each Bunny Stream URL Is For

The dashboard values can be separated like this:

Bunny valuePurpose
HLS Playlist URLRaw adaptive video stream for HLS-compatible players
Thumbnail URLStatic poster image
Preview Animation URLAnimated WebP preview, not the video itself
Video IDIdentifies the Bunny Stream video
OEmbedMetadata/embed information for compatible integrations
Embed/Player URLBunny’s actual web video player

Bunny officially documents the raw HLS structure as:

https://YOUR-PULL-ZONE.b-cdn.net/VIDEO_ID/playlist.m3u8

while the current Bunny player embed format is:

https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID

These are not interchangeable.

Which URL Should You Paste?

That depends entirely on what the WordPress field asks for.

If the Field Says HLS URL or .m3u8

Use:

HLS Playlist URL

For example:

https://vz-example.b-cdn.net/VIDEO-ID/playlist.m3u8

This is appropriate for players such as:

HLS.js-based playersFV PlayerPresto Player with HLS supportother HTML5/HLS players

Bunny describes the HLS playlist as the raw adaptive stream intended for custom playback integrations.

Do not use:

Thumbnail URL

or:

Preview Animation URL

in the video-source field.

Those are images.

If the Field Wants a Bunny Video/Embed URL

Use:

https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID

For example:

https://player.mediadelivery.net/embed/197133/dc48a09e-d9bb-420a-83d7-72dc2304c034

on one line:

https://player.mediadelivery.net/embed/197133/dc48a09e-d9bb-420a-83d7-72dc2304c034

Bunny currently documents this as the standard embed URL for its player.

This is usually the safest choice when another plugin asks for:

Bunny URLEmbed URLPlayer URLVideo URL

rather than specifically asking for an HLS source.

Where Is the “Direct Play URL”?

Bunny’s older/current storage documentation still describes the direct-play structure as:

https://video.bunnycdn.com/play/LIBRARY_ID/VIDEO_ID

Bunny’s 2026 player documentation also says the new player uses player.mediadelivery.net for both embed and Direct Play URLs, while older URLs remain supported.

So with the newer player you may encounter a play URL resembling:

https://player.mediadelivery.net/play/LIBRARY_ID/VIDEO_ID

However, if you’re embedding the video on a website, I would prefer the explicitly documented:

https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID

because Bunny’s embedding documentation specifically defines that URL for iframe website playback.

Bunny Still Documents “Copy Video Play URL”

Bunny’s current Stream quickstart says you can:

Stream→ open the video→ Copy Video Play Url

to obtain a shareable video URL.

If that button is not visible in the particular dashboard panel you are looking at, you do not need to rely on it to embed the video in WordPress.

You can build the embed URL from:

Library ID+Video ID

instead.

Where Do I Find the Library ID?

You already have the Video ID in the screen you described.

You also need the numeric Bunny Stream Library ID.

It usually appears in:

  • your Stream library settings,
  • the library URL in Bunny’s dashboard,
  • the embed code,
  • or WordPress if the Bunny account has already been connected.

Bunny’s official WordPress documentation specifically states that its shortcode requires both:

library = numeric Library IDid = video UUID

For example:

Library ID:197133Video ID:dc48a09e-d9bb-420a-83d7-72dc2304c034

produces:

https://player.mediadelivery.net/embed/197133/dc48a09e-d9bb-420a-83d7-72dc2304c034

Best Option in WordPress: Don’t Paste a URL at All

If you are using the official bunny.net WordPress plugin, Bunny now includes dedicated Stream support.

In Gutenberg:

Add Block→ bunny.net Stream Video→ Select existing video

The plugin can select videos from your Bunny Stream library directly.

That avoids confusion between:

HLSoEmbedthumbnailpreviewdirect playembed URL

entirely.

Use the Bunny Stream Shortcode

For a Classic Editor, page builder, WooCommerce product description, or shortcode-capable field, Bunny officially provides:

[bunnycdn_stream_video library=LIBRARY_ID id="VIDEO_ID"]

For example:

[bunnycdn_stream_video library=197133 id="dc48a09e-d9bb-420a-83d7-72dc2304c034"]

Bunny’s shortcode also supports:

responsive=true

and responsive sizing is the default.

For clarity, I would use:

[bunnycdn_stream_video library=197133 id="dc48a09e-d9bb-420a-83d7-72dc2304c034" responsive=true]

This is probably the easiest solution if the current manual embed is appearing very small.

Why Is the Video So Small?

Bunny’s player fills the dimensions of the iframe containing it.

That means if WordPress or your page builder produces:

<iframewidth="300"height="169"...></iframe>

the Bunny player will also appear approximately:

300px × 169px

Bunny itself cannot make the iframe larger than the space the website gives it.

Bunny’s official documentation specifically recommends using a responsive container rather than relying on small fixed width and height values.

Recommended Responsive Bunny Embed

For a normal 16:9 video, use:

<divclass="bunny-video-wrapper"><iframesrc="https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID"loading="lazy"allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture;"allowfullscreen></iframe></div>

Then:

.bunny-video-wrapper {    position: relative;    width: 100%;    aspect-ratio: 16/9;}.bunny-video-wrapperiframe {    position: absolute;    inset: 0;    width: 100%;    height: 100%;    border: 0;}

This gives you:

Desktop→ fills the content widthTablet→ shrinks proportionallyMobile→ remains 16:9

without maintaining fixed pixel dimensions.

Bunny recommends essentially this responsive layout in its own embedding documentation.

Older-Browser Version Using Padding

Another standard responsive approach is:

<divclass="bunny-video"><iframesrc="https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID"allowfullscreen></iframe></div>

with:

.bunny-video {    position: relative;    width: 100%;    padding-top: 56.25%;}.bunny-videoiframe {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;    border: 0;}

Why:

56.25%

Because:

9 ÷ 16 = 0.5625

so it creates a 16:9 player.

This is also the pattern Bunny uses in its official responsive example.

Check the Parent Container Too

Sometimes the iframe is correctly:

width: 100%;

but still looks tiny.

That usually means its parent container is narrow.

For example:

<divstyle="width: 300px;"><iframestyle="width:100%;"></iframe></div>

The iframe’s 100% is only:

100% of 300px

not 100% of the browser.

Use DevTools:

Right click player→ Inspect

and inspect the parent elements.

Look for:

width: 300px;max-width: 300px;flex-basis: 25%;grid-template-columns: ...

or page-builder column settings.

Gutenberg

If the Bunny block appears small:

  1. Select the Bunny video block.
  2. Check the block toolbar.
  3. Try:
Wide width

or:

Full width

if your theme supports those alignments.

Then inspect whether the theme applies:

max-width

to the video/block wrapper.

Elementor, Divi, Bricks, Beaver Builder

The same issue commonly comes from the module/container rather than Bunny.

Check the video module’s parent:

Container widthColumn widthMax widthContent width

For example, in a two-column layout:

Column 1 = 25%Column 2 = 75%

putting the video in Column 1 will naturally make it small.

The Bunny iframe cannot exceed its assigned column.

Don’t Use Thumbnail URL as the Video

Your Bunny dashboard may provide:

Thumbnail URL

similar to:

https://vz-example.b-cdn.net/VIDEO-ID/thumbnail.jpg

That is only the poster image.

It does not contain the stream.

Likewise:

preview.webp

is an animated preview.

Bunny documents these separately from the HLS and playable video URLs.

What Is Preview Animation URL?

This:

Preview Animation URL (WebP)

is normally:

https://YOUR-CDN/VIDEO-ID/preview.webp

Bunny generates it as an animated preview of the video.

It can be useful for things such as:

video cardshover previewsvideo library thumbnails

but it should not be pasted into your video player’s source field.

What About OEmbed?

Bunny provides an oEmbed API and its oEmbed data includes information such as:

titlethumbnailwidthheightHTML embed markup

oEmbed is mainly a mechanism through which another application asks Bunny:

Give me the appropriate embed HTML for this Bunny video.

It is not the same thing as the HLS stream.

If a WordPress plugin explicitly says:

oEmbed URL

use its documented Bunny/oEmbed workflow.

But if the player asks:

Video Source

or:

HLS URL

do not paste the oEmbed endpoint.

Why oEmbed Can Sometimes Produce a Small Player

An oEmbed response can contain explicit:

widthheight

values.

A WordPress theme/plugin might use those dimensions directly and produce a fixed iframe.

For example:

<iframewidth="320"height="180">

That can explain:

The video plays, but it’s tiny.

The correct fix is usually not changing the Bunny video.

It is making the embed wrapper responsive.

If You’re Using Bunny’s Official WordPress Plugin

There is an even easier answer.

The current official bunny.net WordPress CDN Plugin includes:

Bunny Stream

and Bunny’s documentation specifically says:

responsive=true

is supported and defaults to responsive sizing.

So instead of manually pasting the HLS or oEmbed URL, use:

[bunnycdn_stream_video library=YOUR_LIBRARY_ID id="YOUR_VIDEO_ID" responsive=true]

This is the route I would recommend first.

The New Bunny Player Changed in 2026

There is one more reason older tutorials can be confusing.

Bunny introduced its new Stream player in March 2026.

New video libraries use the new player by default, and Bunny now recommends:

https://player.mediadelivery.net/embed/...

instead of the older:

https://iframe.mediadelivery.net/embed/...

for migrated/new-player integrations.

So if an old article tells you to look for a URL or dashboard option that no longer appears exactly the same way, it may simply be describing the old Bunny interface/player.

The Official Bunny WordPress Plugin Also Switched Players

The official Bunny WordPress plugin’s changelog shows that version 3.0.0 changed Stream integration to:

stream: use new player

and warns that custom HTML may require changes. Version 3.1.0 is tested with WordPress 7.0 and includes additional Stream improvements.

That is another reason I would use the current block or shortcode instead of copying old iframe snippets.

Fastest Fix

If you already have the official Bunny plugin installed, do this:

1. Find your Library ID.2. Copy the Video ID shown in Bunny.3. Add:[bunnycdn_stream_video library=LIBRARY_ID id="VIDEO_ID" responsive=true]4. Remove the old small embed.5. Clear page/cache.6. Reload.

That should give you a responsive Bunny player without needing:

HLS Playlist URLThumbnail URLPreview WebPOEmbed

at all.

If Your Plugin Specifically Requires a URL

Use this decision table:

Plugin field saysPaste
HLS / M3U8 URL.../playlist.m3u8
Bunny Embed URLhttps://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID
Bunny Video IDOnly the UUID Video ID
Library + Video IDEnter both separately
Poster / ThumbnailThumbnail URL
oEmbedBunny player/play URL according to that plugin’s instructions

The most common mistake is feeding:

HLS Playlist URL

into something expecting:

Bunny Player URL

or vice versa.

Do Not Enable Direct Play Just to Fix Player Size

Bunny has a security setting called:

Enable Direct Play

When disabled, direct video URLs can return 403, while website iframe embeds may still function.

That setting controls access, not player dimensions.

If your video already plays but is simply small, enabling Direct Play is not the correct fix.

Focus on:

iframe widthparent container widthresponsive setting

instead.

How to Verify the Fix

After changing the embed:

  1. Open the page on desktop.
  2. Inspect the player.
  3. Confirm the wrapper uses the desired width.
  4. Confirm iframe width is 100%.
  5. Confirm the player keeps its correct aspect ratio.
  6. Resize the browser.
  7. Test mobile.
  8. Click fullscreen.
  9. Verify playback quality changes normally.
  10. Confirm no horizontal overflow appears.

The desired layout is:

Page content width┌───────────────────────────────────┐│                                   ││       Bunny Stream Video          ││             16:9                  ││                                   │└───────────────────────────────────┘

rather than:

┌──────┐│video │└──────┘

Direct Answer

If your Bunny dashboard shows only:

HLS Playlist URLThumbnail URLPreview Animation URLVideo IDOEmbed

you are not missing the actual video.

For WordPress:

  • If the player asks specifically for HLS, use the HLS Playlist URL.
  • If it expects a Bunny/web-player URL, use:
https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID
  • If you’re using Bunny’s official WordPress plugin, use the Stream block or:
[bunnycdn_stream_video library=LIBRARY_ID id="VIDEO_ID" responsive=true]

The small video is almost certainly a separate sizing issue caused by the iframe or its parent container. Bunny’s own documentation recommends a responsive 100%-width player wrapper.

About the author

Tahrim Naziat

WordPress and Server Troubleshooting Specialist

Tahrim Naziat is a senior WordPress and JavaScript developer with more than 14 years of experience specializing in WordPress troubleshooting, WooCommerce, PHP compatibility, plugin conflicts, malware cleanup, performance optimization, Nginx, Redis, and production server issues. He documents practical solutions based on real WordPress debugging, technical investigations, and client projects.

Leave a Comment