If you already run an Enigma2 box (Vu+, Zgemma, GigaBlue and similar) for your own satellite or cable subscription, you already own a perfectly good tuner. The problem is that Emby does not speak Enigma2. Headend is an Emby plugin that bridges the two: it reads your receiver through OpenWebif and exposes the channels your receiver tunes as Emby Live TV channels, with a guide, channel logos and parental control.
One thing to be clear about before we start: Headend does not provide channels, playlists or any IPTV subscription. It streams what your own receiver tunes from satellite or cable, on hardware you control. If you are looking for channels to buy, this is not that product, and this tutorial will not help with it.
This walkthrough covers a full Emby Live TV setup with an Enigma2 receiver: connecting, choosing bouquets, merging guide data, picons, the adult PIN and the receiver watchdog.
Prerequisites
- Emby Server 4.10.1 or newer, with Emby Premiere for the Live TV features.
- An Enigma2 receiver running a recent image (VTi, OpenATV, OpenPLi and similar) with OpenWebif 1.2.9 or newer, reachable from the Emby server. The tested combination in the documentation is a Vu+ Duo 4K with VTi 15.
- Optional: an NVIDIA GPU with NVENC if you want SD channels upscaled on the server.
- Optional: root SSH access to the receiver (no password or with a key) if you want the receiver watchdog.
- A Headend license for your Emby server. Without a valid license the plugin is stopped: automatic tasks do not run and its pages answer with the reason, so do the licensing step first.
Step 1: Install the plugin and activate the license
- Sign in to your MediaLab Works account, open Licenses and download the plugin DLL. It is available on an active subscription, a lifetime license within its update window, or during the free 30-day trial.
- Copy the DLL into the Emby plugins folder and restart Emby Server:
- Linux (package):
/var/lib/emby/plugins/ - Docker: the
pluginsfolder inside your Emby config volume - Windows:
%AppData%\Emby-Server\programdata\plugins\
- Linux (package):
- Open Emby Dashboard → Plugins, click the plugin, paste your license key and save. The plugin contacts the license server, binds the key to this Emby server and shows the license as Active.
The license is checked once a day and at every Emby start. Without internet the plugin keeps working for 7 days after the last successful check; after that it stops until it can check again. Nothing is deleted, and everything resumes once the license is valid again.
Step 2: Connect to the receiver
Open Dashboard → Plugins → Headend. In the Receiver section, enter the IP or hostname, the OpenWebif port (80 by default) and a user and password if your OpenWebif has authentication enabled. Click Test connection.
If the test fails, check from the Emby host itself that OpenWebif answers, for example by opening http://receiver/api/getallservices in a browser. That is also the first troubleshooting step later if no channels show up.
A note on credentials: from version 0.2.9 the OpenWebif password is encrypted at rest in secrets.enc.json in the plugin data folder (AES-256-GCM with a random key bound to the server id, files mode 600) and is never sent to the browser. Earlier versions keep it in plain text in the Live TV tuner configuration, so upgrade if you can.
Step 3: Choose bouquets
In the Bouquets section, pick which bouquets become Emby channels. Channel numbers follow the bouquet order, so this is where you decide the channel order your users will see. Keep it deliberate: a short, tidy list of bouquets is easier to navigate on a TV remote than your full receiver lineup.
Step 4: Guide data (EPG)
The receiver's own EPG is on by default, so you get a guide without any extra work. For better coverage you can add external XMLTV URLs and map channels by name or by service reference. Guide data is merged per channel, so the receiver's data and your XMLTV sources complement each other instead of overwriting one another.
Be aware of what the external guide option contacts. On new installations from version 0.2.9 the external guide is off by default and can be enabled in the first-setup checklist; on updates it stays as it was. When enabled, it runs daily at 04:00 with 2 seconds between requests and contacts www.programetv.ro, www.cinemagia.ro, epgshare01.online and open-epg.com, plus your own XMLTV sources (off by default). Only program pages and files are requested; no user data is sent. Program images are passed to the server as external URLs, and the server may download them.
Step 5: Picons (channel logos)
In the Picons section you can use the picons already on your receiver, or point the plugin to a local picon folder. That is the whole story: the plugin downloads no picon packs itself, and logos from a link are fetched only on an admin action, with a 10 MB limit.
Step 6: Optional NVENC upscaling
If your server has an NVIDIA GPU with NVENC, you can enable upscaling, choose the target resolution and set a maximum number of concurrent streams. This upscales SD channels on the server before they reach clients. If playback stutters afterward, lower the target resolution or turn upscaling off and check the network between receiver and server.
Step 7: Adult channels and the PIN
Mark the channels you want behind parental control and set a PIN. Only a PBKDF2-SHA256 hash of the PIN is stored (200,000 iterations, salted). From version 0.2.10 new PINs must have at least 6 digits (an existing PIN keeps working), and wrong attempts are limited with growing lockouts that survive a restart. In apps, the PIN is unlocked from a browser at /Headend/Unlock, per account.
Step 8: The receiver watchdog (optional)
A frozen receiver means a dead Live TV stream. The watchdog is optional and off on new installations from version 0.2.9 (it stays as it was on updates). When enabled, you set the check interval and the action: restart enigma2 or wake the receiver from standby.
It works over SSH to the receiver, so it needs root SSH without a password or with a key. It runs a TCP/HTTP check every 3 minutes; after 2 failures it sends the restart command via ssh (default user root, optional key), then reboots, collecting diagnostics over SSH before restarting. It also handles standby after 10 minutes idle and a nightly channel scan between 02:00 and 06:00. From version 0.2.9 the SSH host key is verified (trust on first use): it is saved at the first connection in ssh/known_hosts in the data folder, and if it changes the command is not sent and a clear message is shown. You can view and forget the saved fingerprint from the page.
Step 9: Add the tuner in Emby and refresh the guide
Go to Live TV → Settings → Tuner devices. Headend appears there as a tuner. Add it, then refresh the guide.
Daily use and limits
Channels and the guide appear in Live TV, and recording works like with any Emby tuner. Keep the tuner math in mind: one tuner on the receiver carries one channel at a time, though channels on the same transponder can share it. Plan your concurrent recordings accordingly.
Client support is served through the server's Live TV, so channels, guide, streams, adult-channel blocking and audio/subtitle preferences should work in any app with Live TV. Emby Web is verified end to end with a Vu+ Duo 4K (VTi, OpenWebif), with a cold start of 4.4–5.7 s. Native apps and TV browsers are not tested. The admin page, the "TV" page and the "Adult channels" page are browser only.
Tips and troubleshooting
- No channels: confirm OpenWebif is reachable from the Emby host (
http://receiver/api/getallservices), then re-check the receiver address and port in the plugin. - No guide data: make sure the receiver EPG is on, then add XMLTV URLs and check the channel mapping by name or service reference. Remember the external guide is off by default on new installations.
- Stuttering: lower the upscaling target or disable upscaling, and check the network path between receiver and server.
- Receiver freezes: enable the watchdog so it restarts enigma2 when streams stop responding.
- Tuner busy: another channel is already using the tuner. Wait for it to finish or record from the same transponder.
- Privacy: clients never see the receiver address; streams go through the server. Your own M3U lists are optional, and internet channels (iptv-org) are off on new installations from version 0.2.9.
Conclusion
Headend lets you keep using the receiver you already own as a legal tuner for Emby Live TV, with your bouquets, a merged guide, picons and a watchdog that saves you a trip to the attic. Start with the product page, follow the user guide for the exact fields, and keep the changelog handy when you upgrade. If something does not line up, the knowledge base and FAQ are the next stop, and you can always contact us.