jekyll-bunny

August 20, 2026 ยท View on GitHub

A Jekyll plugin that provides a {% bunny %} Liquid tag for embedding Bunny Stream-hosted videos with a responsive iframe wrapper.

Installation

Add to your Gemfile:

gem "jekyll-bunny", "~> 0.1"

Add to your _config.yml:

plugins:
  - jekyll-bunny

Then run:

bundle install

Usage

The tag requires both your Library ID and Video ID:

{% bunny LIBRARY_ID VIDEO_ID %}

With optional parameters:

{% bunny LIBRARY_ID VIDEO_ID autoplay=false loop=true muted=false showSpeed=true %}

The tag outputs a responsive 16:9 iframe wrapper:

<div class="bunny-embed" style="position:relative;padding-bottom:56.25%;height:0;overflow:hidden;">
  <iframe
    src="https://player.mediadelivery.net/embed/LIBRARY_ID/VIDEO_ID"
    frameborder="0"
    allow="accelerometer; gyroscope; autoplay; encrypted-media; picture-in-picture"
    allowfullscreen
    style="position:absolute;top:0;left:0;width:100%;height:100%;"
    loading="lazy">
  </iframe>
</div>

Finding Your Library ID and Video ID

Both values are available in your Bunny Stream dashboard. The embed URL format is:

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

You can also copy the embed code from the video details page in the Bunny Stream dashboard.

Supported Parameters

ParameterValuesDescription
autoplaytrue, falseAutoplay on load (may be blocked by browsers)
looptrue, falseLoop playback
mutedtrue, falseStart muted
preloadtrue, falsePreload video files
playsinlinetrue, falsePlay inline on mobile
t30s, 1h20m45s, hh:mm:ss, or secondsStart playback at this time
captionscaption short-codeDefault caption language (e.g., en)
chromecasttrue, falseEnable Chromecast support
disableAirplaytrue, falseDisable AirPlay
disableIosPlayertrue, falseDisable native iOS player
showHeatmaptrue, falseShow engagement heatmap on progress bar
showSpeedtrue, falseShow playback speed control
rememberPositiontrue, falseRemember last playback position
compactControlstrue, falseEnable compact player UI
responsivetrue, falseResponsive player sizing

Styling

The plugin outputs an unstyled .bunny-embed wrapper div. Add bottom margin or other spacing in your site's CSS:

.bunny-embed {
  margin-bottom: 2rem;
}

GitHub Pages compatibility

This plugin is compatible with Jekyll sites deployed to GitHub Pages when the site is built through a custom GitHub Actions workflow.

It is not compatible with the default GitHub Pages safe-mode build, which does not load custom plugins.

License

MIT โ€” see LICENSE.txt.