e2m3u2bouquet 0.7


Updated release today of the script only. This update adds the following functionality to the script

  • Config file based settings
  • Support for multiple providers

If you are a plugin user on 0.6.3 with a single IPTV provider there is no need to upgrade to script version 0.7 (Plugin v0.7 is in the pipe line).

However as probably the largest out standing feature on our list I thought it worth releasing the script alone for those that don’t mind the commandline.

So script release is available here;


Install Guide

Download and extract the e2m3u2bouquet.py file.

FTP it to /etc/enigma2/e2m3u2bouquet on your enigma2 box.

SSH into your enigma box, then;

cd /etc/enigma2/e2m3u2bouquet
chmod 755 e2m3u2bouquet.py

The script on first run will create a config.xml in /etc/enigma2/e2m3u2bouquet and tell you to fill it in.

Edit the config.xml and populate provider details and settings for as many providers as your require, the XML is commented so should be pretty straight forward.

NB: You need to change the supplier name field for the script to know you have updated the file.

nano config.xml
vi config.xml

Or use FTP to transfer the file for editing and replace it.

Then run the script again.


This will create bouquets for all the providers specificed and enabled in the config file.


To automate this use cron.

crontab -e


0 5 * * * /etc/enigma2/e2m3u2bouquet/e2m3u2bouquet.py >> /tmp/e2.log

and press ESC follwed by :wq to exit the cron editor and save the entry. This will update your bouquets at 5am daily.


Any issues / bugs or problems leave a coment.

e2m3u2bouquet 0.6.3


Quick update to cover the changes made in v0.6.2 & v0.6.3

v0.6.2 Changes

  • New versions of epg-importer use categories for sources. The IPTV provider source will now be listed under the ‘IPTV Bouquet Maker – E2m3u2bouquet’

v0.6.3 Changes

  • Some providers are now using Cloudflare (or equivalent service) to restrict access to their service. In some case this resulted in the script/plugin being unable to download the providers playlist. v0.6.3 has a workaround for the issue

Latest releases here

Community guides here

e2m3u2bouquet 0.6.1


Script changes

  • Dedicated config directory ‘/etc/enigma2/e2m3u2bouquet’
  • Pre Python 2.7.9 SSL context workaround
  • Remove delimiter options (command arguments -d1, -d2, -d3, -d4)
  • Option to place IPTV bouquets at top or bottom ‘-bt’
  • Consistent channel numbering (best results when IPTV bouquets are set to top). Each new IPTV category will start numbering +100 from start of last category

Plugin changes

  • Add /picon option for download path
  • Show last playlist update
  • Add override service refs option
  • Add IPTV bouquet position option
  • Add option download providers bouquet (for custom service refs)


The delimiter command arguments have been removed (-d1, -d2, -d3, -d4). Due to improvement in the m3u parsing these are no longer needed

The script and plugin will now save e2m3u2bouquet-sort-current.xml and look for e2m3u2bouquet-sort-override.xml in the new config directory ‘/etc/enigma2/e2m3u2bouquet’. If the override file can’t be found in the config folder it will also check in the current working directory ‘/hoem/root’ in most cases.

Plugin Potential Issues

Custom sorting – If you have an override.xml file then when the bouquet update is happening you may see the spinner graphic and the box ui may be unresponsive for around a minute

Downloading Picons (especially on first run) takes a long time. Your box will show the spinner graphic and the ui will be unresponsive  while this happening.


Latest releases here

Community guides here

FAB URL Changes

Fab Urls

Changes to the new Fab new urls were made by Doug last night (12/08/2017)

However due to changes in the way we handle providers in later versions of the script you need to be on version >= 0.6 of the script or plugin to receive these changes.

See here or here to download the latest version.

Also please note FAB continue to be blocked by the current court directives despite the change in URLs so do not expect service during EPL matches

If you’re looking to setup a VPN on your enigma2 box there’s a guide available on the PIA website here

Community Guides – E2m3u2bouquet

Community Guides

Noticed a couple of good community guides knocking about for the plugin which may well be useful to some.

Firstly Tommycahir who came up with the initial concepts for the script has done a very concise install guide for the plugin over on Enigma2 Community (registration required but worth it)

How to install IPTV and EPG with Suls E2m3u2bouquet IPK

Also Head Melted has done a nice video install guide on YouTube

Enigma2 IPTV Bouquets with EPG ipk install , Suls Script removal & ipk install. quick guide.

Dsayers Guide to installing and configuring the plugin over on Techkings

Suls e2m3u2bouquet 0.6 IPTV Bouquet MakerMaker plugin


e2m3u2bouquet 0.6


  • Better m3u parsing
  • Plugin

Plugin (beta)

We’ve now released a plugin for the script. As it’s still in beta please only use if you are comfortable knowing it’s only had limited testing and know how to re-flash your box if you encounter any issues.
Update: Not had any negative reports so should be safe to use

Plugin features:-

  • Named provider support
  • Ability to set commonly used options
  • Ability to set an update schedule

Plugin install

  • Download the ipk and ftp it to the /tmp folder on the box.
  • Either install it from the box GUI (in OpenVix this will be ‘Menu -> Setup -> ViX -> Install local extension
    or SSH/Telnet to to the box and run ‘opkg install /tmp/enigma2 [TAB – to autocomplete path]
  • Reboot box
  • Open your plugins menu, there should now be a plugin named ‘IPTV Bouquet Maker (IPTV for Enigma2 – E2m3u2bouquet plugin)’

Latest release here

Tommy has also kindy made a lengthy install guide here

Potential Issues

Custom sorting – If you have an override.xml file then when the bouquet update is happening you may see the spinner graphic and the box ui may be unresponsive for around a minute

Downloading Picons (especially on first run) takes a long time. Your box will show the spinner graphic and the ui will be unresponsive  while this happening.

Thanks to ..

You’ll notice that the plugin looks a lot like Epg-Importer. Epg-Importer was used as the starting point of the plugin so all credit to the Epg-Importer team for developing their great plugin.

e2m3u2bouquet 0.5.4


  • Add nameOverride attribute to xml files to allow service or bouquet names to be changed
  • Add option to use service references from providers bouquet file. -b command argument,see below
  • Add SSL fix for some boxes. Unconfirmed if working (if this now allows you to use the provider based setup please let us know in the comments below)
  • Improved service ref id generation logic to reduce (hopefully eliminate) id conflicts especially if override file is used
  • Add option -xs to stop service refs from override.xml file being used

Custom service references from providers bouquet file

Some providers already map their service references to existing DVB services. This means that if you have CrossEPG set-up you can automatically get a full 7 day epg for channels that you are able to receive the DVB epg from.

For this feature add the -b command argument (url to providers bouquet file)  e.g. ‘-b http://PROVIDERSURL/get.php?username=YOURUSERNAME&password=YOURPASSWORD&type=dreambox&output=ts’

N.B. If you using this feature with an override.xml file the service refs in the xml file will apply. Use the command argument -xs to ignore the service refs in the override.xml file

Override Service & Bouquet Names

You can now override then service and bouquet names by setting the ‘nameOverride’ attribute in the override.xml file

Missing EPG info

If after upgrading to this you are missing the EPG then please do a manual import in EPG-Importer


Full details of v0.5 release here

Download latest release here

E2m3u2bouquet Help Thread

Help Thread

Common problems and resolutions for E2m3u2bouquet.

“Permission denied” attempting to run the script

Ensure the script is executable, eg run (in the folder the script is in)

chmod 777 e2m3u2bouquet.py

then run the script as per instructions

or run the script via python

python e2m3u2bouquet.py -n PROVIDER -u USERNAME -p PASSWORD

EPG is not working

Ensure you have enabled the source in epg-importer and run a manual import.

If this still doesn’t work paste your epg url into firefox, this should return a bunch of XML data to the browser (nb: doesn’t work in chrome), if you don’t receive XML data back in the browser your epg url is wrong. Contact your provider to resolve this.

If you are using the serviceapp plugin to change the playback engine this is also know to stop the epg from working.

ImportError: No module named argparse

You need to install argparse on your box. Telnet/ssh to your box and run

opkg install python-argparse

No Module named imghdr

You need to install python-image (and likely python-imaging). Telnet/ssh to your box and run

opkg install python-image python-imaging

Bouquets disappear after box is rebooted

If you’ve already installed the providers iptv.sh script the changes it makes will need to be reverted otherwise the new bouquets will be deleted on restart

  • SSH to the box and remove /usr/bin/enigma2_pre_start.sh – this sets iptv.sh to run on restart which causes all bouquets to be deleted
    N.B. Your box may use enigma2_pre_start.sh for other services. Check that it only contains iptv.sh before removing
rm /usr/bin/enigma2_pre_start.sh
  • Use the box GUI to delete the bouquet that iptv.sh creates Open the bouquet list. With the ‘Example’ bouquet selected, press the menu button there should be an option to remove the entry
  • Remove iptv.sh
rm /etc/enigma2/iptv.sh

Some channels stutter or don’t play correctly

This is likely due to having the ‘All IPTV type’ option enabled. Disable this option and re-run. If you’re using an override.xml file then you’ll also need to make sure the -xs option (script) or ‘Override service refs’: disabled (plugin) is set fo r this change to take effect.

e2m3u2bouquet 0.5.1

V 0.5.1

Minor update.

The generated xml no longer has the streamUrl attribute. This means that your username & password is not in the xml file so custom mapping files can now easily be shared

If you wish to map a DVB service to an IPTV bouquet (by using the DVB service reference with no stream url) then this can be done by setting the new clearStreamUrl attribute to true

Full details of v0.5 release here

Download latest release here


e2m3u2bouquet 0.5


Latest release focuses on custom mapping and now allows a number of new possibilities:-

  • Reorder bouquets
  • Reorder channels within bouquets
  • Disable entire bouquet or individual channels
  • Ability to change service reference (so that EPG from existing satellite service can be used)
  • Ability to replace local DVB in IPTV bouquet (e.g. if your box has a tuner you can use it for FTA channels instead of the IPTV versions)
  • Change tvg-id to match other xml epg feeds

Custom mapping

To use the custom mapping feature run the script once, it will create ‘e2m3u2bouquet-sort-current.xml’  in the working directory, FTP this to your machine rename it to ‘e2m3u2bouquet-sort-override.xml’ (best to use an xml aware editor like Notepad++), make changes and then FTP it back to the box.

N.B. Some of the more advanced mapping features (e.g. changing to a local dvb epg or a different xmltv epg) will be time consuming to set-up. Ways to further automate this will, hopefully, be part of a future release

Bouquet mapping

Open the override xml file, in the <mapping> -> <categories> section reorder the categories as you wish. If you set enabled from “true” to “false” no bouquet will be create for the category

Service mapping

Open the override xml file, in the <mapping> -> <channel> section reorder the channels as you wish. If you set enabled from “true” to “false” no service will be create for the channel

Using local DVB epg (e.g for full 7 day epg)

Open the override xml file, in the <mapping> -> <channel> section change the serviceRed attribute

For example to use the Channel 4 HD DVB-S EPG you would set the serviceRef to “1:0:1:52D0:814:2:11A0000:0:0:0″ (part in bold SID:TID:NID:Namespace needs to match). If you match a DVB service and also set the clearStreamUrl attribute to true the DVB service will replace the IPTV service.

(The service references can be found using a program like E-Channelizer)

Using different xmltv feed (e.g for full 7 day epg)

Open the override xml file, in the <mapping> -> <channel> update the tvg-id values to match the xmltv feed.Add the provider urls in <mapping> -> <xmltvextrasources> – there is a commented out config for the Rytec uk & de sources for reference

Provider Updates

Over time your provider is likely to update the channels they offer. If you are using custom sorting then any new categories/channels will be added at the end of your custom lists. If you wish to include the categories/channels in your custom mapping it’s best to re-save ‘e2m3u2bouquet-sort-current.xml’ as ‘e2m3u2bouquet-sort-override.xml’ (‘e2m3u2bouquet-sort-current.xml’ should always reflect the changes you’ve made in the override file)

Functionality changes

VOD is now back in one bouquet. Reason for this change it that a large number of bouquets can crash the box. If you wish to have multiple categories for VOD please use the -M parameter e.g.

./e2m3u2bouquet.py -n FAB -u USERNAME -p PASSWORD -M

All channels bouquet
To have an All Channels bouquet created please use the -a parameter e.g.

./e2m3u2bouquet.py -n FAB -u USERNAME -p PASSWORD -a


Download latest release here