jekyll-livid

August 20, 2026 · View on GitHub

A Jekyll plugin that provides a {% livid %} Liquid tag for embedding Livid-hosted videos with a responsive iframe wrapper and full support for advanced embedding parameters.

Scope

This plugin is intentionally narrow. It handles one thing: embedding Livid videos cleanly in Jekyll templates with a minimal, standards-compliant iframe output.

Who this is for

  • Jekyll site owners who host video on Livid
  • Anyone migrating from Vimeo to Livid who wants drop-in embed support
  • Developers who want fine-grained control over player behavior via URL parameters

Features

  • {% livid VIDEO_ID %} tag with responsive 16:9 iframe wrapper
  • Full support for all Livid advanced embedding parameters
  • #t= hash fragment support for timestamp-based start positions
  • Unknown parameter warnings via Jekyll logger (skipped silently in output)
  • Lazy-loading iframe by default

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.

Installation

Published on RubyGems:

Add the gem to your Gemfile:

gem "jekyll-livid", "~> 0.1.0"

Then add it to _config.yml:

plugins:
  - jekyll-livid

Run:

bundle install

Styling

The plugin outputs a wrapper div with the class livid-embed. No spacing or layout styles are applied — this is intentional, since every site has its own typographic rhythm and spacing scale.

If the embed sits too close to the content below it, add a rule to your site's CSS or SCSS:

.livid-embed {
  margin-bottom: 32px; /* adjust to match your site's heading/paragraph spacing */
}

Usage

Basic embed

{% livid Bdkgc6Wvujvh %}

With parameters

{% livid Bdkgc6Wvujvh autoplay=true muted=true loop=true %}
{% livid Bdkgc6Wvujvh color=ff0000 controls=false %}
{% livid Bdkgc6Wvujvh dnt=true %}
{% livid Bdkgc6Wvujvh t=30 %}

The t parameter starts playback at a specific second and is appended as a URL hash fragment (#t=30). All other parameters are appended as query string parameters.

Advanced embedding parameters

All parameters from the Livid advanced embedding documentation are supported. Boolean parameters accept true/false or 1/0.

ParameterValuesDefaultNotes
airplaytrue/falsetrueAirPlay support (Safari only). Pro/Premium accounts.
autoplaytrue/falsefalseAutostart playback.
backgroundtrue/falsefalseBackground mode: no controls, loops, autoplay, muted. Pro/Premium.
cctrue/falsetrueClosed captions button. Pro/Premium.
chromecasttrue/falsetrueChromecast button. Pro/Premium.
colorhex code4e48f9Player control color (no #). Pro/Premium.
colors1–4 hex codes, comma-separatedButton, accent, icon/text, background. Pro/Premium.
controlstrue/falsetrueShow/hide all player controls. Pro/Premium.
custom_logotrue/falseShow custom logo. Pro/Premium.
dnttrue/falsefalseDo Not Track — disables analytics. All videos.
fullscreentrue/falsetrueFullscreen button. Pro/Premium.
keyboardtrue/falsetrueKeyboard controls. All videos.
livid_logotrue/falsetrueShow Livid logo. Pro/Premium.
looptrue/falsefalseLoop the video. All videos.
max_quality240p–4kautoMaximum quality ceiling. Pro/Premium.
min_quality240p–4kautoMinimum quality floor. Pro/Premium.
mutedtrue/falsefalseMute on load. All videos.
piptrue/falsetruePicture-in-picture button. Pro/Premium.
play_button_positionauto/bottom/centerautoPlay button position. Pro/Premium.
playsinlinetrue/falsetrueInline playback on mobile. All videos.
preloadauto/metadata/nonenonePre-playback loading behavior. All videos.
progress_bartrue/falsetrueProgress bar. Pro/Premium.
quality_selectortrue/falsetrueQuality selector menu. Pro/Premium.
sharetrue/falsetrueShare button. Pro/Premium.
speedtrue/falsetrueSpeed controls. Pro/Premium.
tseconds0Start at timestamp (appended as #t=N). All videos.
titletrue/falsetrueShow video title. Pro/Premium.
transparenttrue/falsetrueTransparent iframe background. All videos.
volumetrue/falsetrueVolume control. Pro/Premium.

Live example

Development

Install dependencies:

bundle install

Run tests:

ruby -Ilib -Itest test/livid_tag_test.rb

License

MIT