OwnVideo is a free Jekyll theme that turns every Jekyll post into a video with its own dedicated watch page, letting you host and control video files on your own domain instead of a video sharing service.
What is OwnVideo?
OwnVideo is a free open-source Jekyll theme for building a self-hosted video sharing site. Each Jekyll post becomes a video, and each video gets a dedicated watch page that puts it front-and-center, similar to YouTube. The theme accepts source video files in common formats like mp4, avi, and wmv, then converts them to web-streamable formats using an included Python script that calls FFmpeg and MediaInfo. It runs on Jekyll version 3 or later, produces static HTML output, and is licensed under the MIT License.
What makes OwnVideo stand out?
OwnVideo gives you total control over your video distribution, avoiding the takedown risks of centralized video sharing platforms. Here are its key features:
- Dedicated watch pages — Every video gets its own page with multiple quality options, share buttons, and optional integrated Disqus comments for audience discussion.
- Custom playlists and thumbnails — Videos are grouped into playlists via Jekyll categories, and you can add custom thumbnails named
video-id.jpgnext to each source video. - Automatic transcoding — The included
transcode.pyscript pipes videos through FFmpeg and MediaInfo to produce multiple resolutions and browser-compatible formats automatically. - Mobile-first responsive design — The theme's layout is mobile-first responsive, as seen on the live demo site MusicalWolfe.com.
- Separate video hosting — Configure
video-baseurlto serve thevideofolder from a different domain, such as Amazon S3, while the site itself runs on GitHub Pages. - Structured data and OpenGraph tags — The theme generates these tags automatically, helping videos appear with rich metadata in search results and social media.
- No backend required — Because OwnVideo builds to static Jekyll output, there is no server-side processing or database needed at runtime.
Who should use OwnVideo?
OwnVideo is aimed at anyone who wants to publish videos without submitting them to a third-party platform's review or removal process.
- Independent video creators who want to keep their videos online without relying on video sharing platforms where copyright claims or complaints can force takedowns.
- Jekyll site owners who already maintain a static blog or portfolio and want to add a video section using the same build workflow.
- Musicians and performers — the demo site MusicalWolfe.com uses OwnVideo to publish music videos and live performance clips with playlists.
- Self-hosting enthusiasts who want to control the storage and delivery of their video files, optionally from a separate cloud storage domain.
What can you do with OwnVideo?
- Build a self-hosted video library: Drop source videos in the
source_videofolder, run the transcoder, and publish them on your own domain with custom URLs based on your chosen video ids. - Manage playlists with Jekyll categories: Assign each video to one or more categories in its post front-matter; videos in the special
uploadscategory automatically appear on the front page. - Customize the site branding: Replace the images in the
imgfolder with your own logo and artwork, and add extra pages like about, terms, or press that show up in the nav bar when they use thepagelayout. - Host videos on a separate domain: Keep the main site on GitHub Pages while streaming video files from Amazon S3 or another server by updating
video-baseurl.
How does OwnVideo work?
OwnVideo combines a Jekyll post pipeline with a transcoding step run before the site build.
- Place each source video in
source_videonamedvideo-id.ext(e.g.,my-video.mp4), and optionally a custom thumbnail namedvideo-id.jpg. - Run
python transcode.pyfrom thesource_videodirectory; the script uses FFmpeg and MediaInfo to create web-streamable versions and aresolutions.jsondescriptor in_data. - Create a Jekyll post in
_postswith filenameYYYY-MM-DD-video-id.markdownand front-matter containing the title, video id, categories, and date. - Run
jekyll serveorjekyll buildto produce the static site, then upload the_sitefolder to your web host.
Pricing
OwnVideo is free to download and use, released under the MIT License, and does not require any paid account or subscription.
FAQ
Is OwnVideo free?
Yes, OwnVideo is free software released under the MIT License, so you can use it for personal or commercial projects without paying a fee.
What software do I need to install?
You need Jekyll version 3 or later, Python 2.7, FFmpeg, and MediaInfo. The Python script uses FFmpeg for transcoding and MediaInfo for reading video metadata.
Can I host videos on a different domain than my site?
Yes, you can set the video-baseurl option in _config.yml to point to a separate domain such as Amazon S3, while the rest of the site is hosted on GitHub Pages or any static host.
What happens if I don't have custom thumbnails?
If a source video lacks a matching video-id.jpg file, the transcode.py script automatically generates a thumbnail for you, so every video will still have a poster image.
What video formats are supported as input?
The theme accepts common video extensions such as mp4, avi, and wmv as source files in the source_video folder; the transcoder then converts them to web-streamable formats.




