opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

Self-host HLS transcoding with stitched bumpers and ads
GitHub RepoImpressions2

Project Description

View on GitHub

Self-Host Your Own HLS Pipeline, Bumpers and Ads Included

If you've ever tried to set up video streaming infrastructure from scratch, you know the pain. Transcoding, packaging, playlist generation, S3 uploads, ad insertion—each piece is its own rabbit hole. Superstreamer is a self-hostable platform that tries to collapse all of that into something you can actually run without losing a weekend.

What It Does

Superstreamer handles video delivery from processing to playback. At its core, it transcodes your source video into separate quality tracks (1080p, 720p, 480p, and so on) and writes HLS CMAF playlists directly to S3, ready for playback. You interact with it through API calls with what the project describes as sane defaults, so you're not hand-tuning every encoding parameter just to get something playing.

The more interesting layer is what happens after the basics. Superstreamer can stitch bumpers as HLS interstitials on the fly—the same way Netflix inserts them—and it supports linear ad insertion by providing a simple VMAP, or by scheduling VAST manually. There's also a player facade: a simplified API that sits alongside HLS.js, aimed at developers building their own player UI. So it's not just a transcoder; it's a full pipeline for getting video from a file to a screen with ads and branding in the right places.

Why It's Cool

Ad and bumper insertion without pre-rendering. The typical approach to inserting ads or bumpers is to stitch them into the video file itself, which means re-encoding and losing flexibility. Superstreamer does it as HLS interstitials on the fly. That means your base content stays clean, and the bumpers and ads are layered in dynamically. If you've ever wanted to change an ad schedule without touching the source video, this is the design decision that makes it possible.

It writes directly to S3. No intermediate storage layer to manage, no local disk to babysit. The output is HLS CMAF playlists sitting in your bucket, ready for a CDN or direct playback. That's a practical simplification for anyone already living in AWS or S3-compatible storage.

The player facade is a smart addition. Most transcoding tools stop at "here's your playlist." Superstreamer goes one step further with a simplified API alongside HLS.js, tailored for developers building player UIs. If you're building a custom frontend, you don't have to wire up HLS.js from scratch—there's a facade that handles the common cases.

Docker-first self-hosting. The getting started flow is a docker-compose file and an .env. The project explicitly acknowledges that self-hosting is challenging and aims to make it as easy as possible. Prebuilt containers are provided, so you're not compiling from source unless you want to.

VMAP and VAST support. If you're doing any kind of ad-supported video, you're probably already dealing with VMAP or VAST. Superstreamer speaks both, which means it fits into existing ad workflows rather than requiring you to build something bespoke.

How to Try It

The project ships prebuilt containers, so the fastest path is Docker Compose. From the repository:

# We have prebuilt containers, see docker/docker-compose.yml
cd docker
# Copy the example .env
cp .env.example .env
# Configure the .env
docker compose up -d

Once that's running, you'll want to check out the Getting Started guide for configuration details and the local development setup. The documentation lives at superstreamer.xyz.

The repository is at github.com/superstreamerapp/superstreamer. If you hit a bug, the project asks you to open an issue. If you want to contribute, there's a local development guide linked in the README, and pull requests are welcome.

Final Thoughts

Superstreamer is aimed at developers who need to run their own video pipeline and don't want to assemble one from five different tools. The combination of transcoding, S3 output, on-the-fly interstitial stitching, and ad support in a single self-hostable package is a genuinely useful scope. It's not trying to be a managed service or a media empire in a box—it's a practical tool for people who already understand what HLS is and just want the plumbing handled. If that's you, the Docker Compose setup makes it easy to see whether it fits your workflow.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 445fb1f9-9f0d-452e-b9c9-500ae62d5439Last updated: September 17, 2026 at 02:48 AM