M3UIPTV turns M3U playlists, Xtream Codes panels, Stalker (Ministra/MAG) portals and TVHeadend servers into native Enigma2 bouquets — complete with picons, EPG, catchup/archive playback and a full Video on Demand library.
M3UIPTV is a system plugin for Enigma2, the Linux-based firmware running on satellite, cable and IPTV set-top boxes from the OpenPLI / oe-alliance family of images (OpenPLI, OpenATV, OpenViX, OpenBH, Egami and similar). It runs natively inside the box's own menu system — no companion app, no phone, no separate server required.
Channels from your IPTV sources are converted into genuine Enigma2 bouquets, so they zap, record, timeshift and appear in the channel list exactly like satellite or cable channels.
Add as many M3U, Xtream Codes, Stalker portal, TVHeadend or standalone VOD sources as you like, each with its own settings, refresh schedule and blacklist.
Generates EPGImport-compatible guide data, downloads channel logos automatically, and adds catchup/archive playback directly into the EPG screens you already use.
A dedicated Movies and TV Shows browser aggregates VOD catalogs from every configured provider, with resume points, poster art and optional TMDb/IMDb lookups.
Every feature below is configured from the box's own menus, or from the optional web manager.
Choose per-group bouquets, one "All Channels" bouquet, both, or a master bouquet with sub-bouquets — plus channel ordering and a blacklist to exclude unwanted groups.
Generates XMLTV source/channel files consumed by the community EPGImport plugin, including "dynamic" URLs that re-resolve on every fetch for providers that rotate their EPG link.
Downloads channel logos in parallel (configurable thread pool) and links them into your skin's picon path, without ever overwriting picons you've already installed yourself.
Adds a "play archive" action right inside the Graph Multi EPG and single EPG screens, with support for Standard, Xtream, Stalker and Flussonic-style catchup URL schemes.
Genre browsing, search, resume/progress icons and cover art, aggregated across every Xtream, Stalker and VOD-enabled provider into one screen.
An optional local web UI (default port 8090) for adding and editing providers
from a PC or phone browser, secured with the box's own system login.
Set a time of day and days of the week to automatically refresh bouquets and EPG for every provider that opts in — no manual regeneration needed.
Custom User-Agent strings, playback engine selection (DVB / GStreamer / Exteplayer3), stream format (TS/HLS) and account-info lookups (expiry, connections, server details).
Regex-based overrides for a channel's name, EPG id, service type or catch-up type, plus group/category exclusion lists — editable per provider from the web manager.
Five provider types cover the vast majority of IPTV services in use today.

Any playlist URL or local file.
#EXTINF, group-title, tvg-id, tvg-logo
Panel URL + username + password.

Portal URL + device MAC address.

Server URL + username + password.

A playlist used purely as a movie library.
name,url text format
Selectable per provider.
Follow these steps in order the first time you set up M3UIPTV.
Before installing, make sure you have:
python3-requests, python3-multiprocessing and python3-zoneinfo, which are pulled in automatically as package dependencies — you don't need to install them yourself.M3UIPTV is distributed as a system plugin package (enigma2-plugin-systemplugins-m3uiptv) through the OpenPLI / oe-alliance feed — the same feed your image already uses for updates.
M3UIPTV generates EPG source and channel files for programme guide data, but it doesn't import EPG itself — that's handled by the separate, widely-used EPGImport plugin. Install it the same way (Plugin Manager → Download Plugins → search "EPGImport") if you want a filled-in TV guide for your IPTV channels.
If you skip this step, everything else still works — you just won't get guide data for the imported channels.
Go to Menu → Settings → IPTV → Settings. The defaults work for most setups, but it's worth knowing what's here:
| Setting | What it does |
|---|---|
| Enable IPTV manager | Master on/off switch for the whole plugin (requires restart) |
| Check network before fetching | Waits for connectivity before trying to reach a provider |
| Picon max threads | How many channel logos download in parallel |
| Show VOD menu entry | Shows/hides "Video On Demand" in the main menu and/or Extensions |
| VoD playback system | GStreamer/HiSilicon, or Exteplayer3 if ServiceApp is installed |
| Catchup/Archive EOF timeout | How long to wait before treating an archive stream as finished |
| Web interface | Enables the browser-based playlist manager (see step 11) |
| Schedule update | Turns on automatic, unattended bouquet/EPG refresh (see step 12) |
Go to Menu → Settings → IPTV → Playlist manager and press Green to add a new provider. Pick the type that matches your service, then fill in its fields:
| Type | You need |
|---|---|
| M3U / M3U8 | A playlist URL, or a local file path |
| Xtream Codes | Panel URL, username, password |
| Stalker portal | Portal URL, device MAC address |
| TVHeadend | Server URL, username, password |
| Video on Demand | A movie/series playlist URL (no login needed) |
Also give the provider a friendly name and a unique scheme (an internal ID with no spaces). Everything else — EPG matching, bouquet strategy, picon downloads, catchup type, User-Agent — has a sensible default and can be left as-is on a first pass.
Back in the Playlist manager list, select your new provider and press Yellow to generate its bouquets. This downloads and parses the source, creates the Enigma2 bouquet(s), downloads picons if enabled, and writes the EPGImport source files. A status message confirms success or reports a network/parsing error.
Exit to the channel list — your IPTV channels now appear as regular bouquets, ready to zap, add to favorites, or record.
If you installed EPGImport in step 3, open it from its own menu entry and run an import. M3UIPTV's generated source file is picked up automatically — no extra configuration needed — and your new channels' programme guide fills in.
Your IPTV bouquets behave exactly like satellite or cable bouquets: browse the channel list, zap between them, use timeshift, or start a recording — all through the box's normal remote and UI.
Go to Menu → Video On Demand → Movies or TV Shows (or find them in the Extensions/blue-button menu, depending on your settings). Browse by provider or genre, or search directly.
For providers that support it, open the EPG for a channel — Graph Multi EPG, single EPG or grid EPG all work — and look for the catchup icon on past programmes. Select one and press play to watch it back from the archive instead of live.
Prefer managing providers from a PC or phone instead of the remote? Enable it in Settings → Enable Playlist manager web interface, note the port (default 8090), and open http://<box-ip>:8090/ in a browser.
To keep bouquets and EPG fresh without manual work:
To update a single provider on demand, revisit Playlist manager and press Yellow again at any time. To remove a provider completely — its bouquets, VOD data, EPG sources and picons — edit it and press Yellow → Delete.
No. M3UIPTV works fully without it — you just won't get a programme guide for the imported channels. EPGImport is an independent, optional plugin that consumes the source files M3UIPTV generates.
Yes. You can add any number of M3U, Xtream Codes, Stalker portal, TVHeadend and standalone VOD sources at the same time, each configured and refreshed independently.
No — picons you've already installed yourself are never overwritten. M3UIPTV only adds logos for channels that don't already have one.
Only if your provider actually offers server-side catchup/archive. M3UIPTV supports several URL schemes (Standard, Xtream, Stalker, Flussonic and more) to match how different providers implement it, but the underlying capability has to come from the provider itself.
No — it listens on your box's local network address only. It's a convenience for managing providers from a browser on your own network, and can be password-protected with your box's existing system login.
Any Enigma2 image from the OpenPLI / oe-alliance family with Python 3 support — including OpenPLI, OpenATV, OpenViX, OpenBH and Egami.