
jekyll-livid
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.
jekyll-livid is a Jekyll plugin that makes embedding Livid-hosted videos as simple as one tag. It outputs a clean, responsive iframe wrapper and passes any combination of Livid’s advanced embedding parameters directly to the player.
Demo
{% livid Bdkgc6Wvujvh livid_logo=true title=false airplay=true chromecast=true pip=true speed=true quality_selector=true keyboard=true %}
Why This Exists
Livid is a compelling Vimeo alternative — more affordable, better value for small organizations, and a genuine fit for the kind of work I do in local government and economic development. I wanted to embed Livid videos in Jekyll the same way I embed other media: with a clean, intentional tag rather than raw HTML in Markdown.
Source Code
- GitHub: github.com/jchance/jekyll-livid
- RubyGems: rubygems.org/gems/jekyll-livid
Installation
Add to your Gemfile:
gem "jekyll-livid", "~> 0.1.0"
Add to _config.yml:
plugins:
- jekyll-livid
Then run bundle install.
Styling
The plugin outputs a wrapper div with the class livid-embed. No spacing or layout styles are applied by default — this is intentional, since every site has its own typographic rhythm and spacing scale.
If the video sits too close to the content below it, add a rule to your site’s CSS:
.livid-embed {
margin-bottom: 32px; /* adjust to match your site's heading/paragraph spacing */
}
Usage
Basic embed:
{% livid VIDEO_ID %}
With parameters:
{% livid VIDEO_ID autoplay=true muted=true %}
{% livid VIDEO_ID color=ff0000 controls=false %}
{% livid VIDEO_ID t=30 %}
The video ID is the alphanumeric string at the end of your Livid share URL (e.g. https://livid.com/watch/Bdkgc6Wvujvh → ID is Bdkgc6Wvujvh).
Advanced Parameters
All Livid advanced embedding parameters are supported:
| Parameter | Values | Notes |
|---|---|---|
autoplay |
true/false | All videos |
muted |
true/false | All videos |
loop |
true/false | All videos |
controls |
true/false | Pro/Premium |
color |
hex code (no #) |
Pro/Premium |
colors |
up to 4 comma-separated hex codes | Pro/Premium |
dnt |
true/false | Disables analytics. All videos. |
background |
true/false | No controls, loops, autoplay, muted. Pro/Premium. |
t |
seconds | Start position — appended as #t=N |
preload |
auto/metadata/none | All videos |
playsinline |
true/false | Mobile inline playback. All videos. |
fullscreen |
true/false | Pro/Premium |
pip |
true/false | Picture-in-picture. Pro/Premium. |
keyboard |
true/false | All videos |
livid_logo |
true/false | Pro/Premium |
title |
true/false | Pro/Premium |
share |
true/false | Pro/Premium |
speed |
true/false | Pro/Premium |
quality_selector |
true/false | Pro/Premium |
min_quality |
240p–4k | Pro/Premium |
max_quality |
240p–4k | Pro/Premium |
progress_bar |
true/false | Pro/Premium |
volume |
true/false | Pro/Premium |
cc |
true/false | Closed captions. Pro/Premium. |
chromecast |
true/false | Pro/Premium |
airplay |
true/false | Safari only. Pro/Premium. |
play_button_position |
auto/bottom/center | Pro/Premium |
transparent |
true/false | All videos |
custom_logo |
true/false | Pro/Premium |
