Provider Managed Updates

This post will only be relevant to you if you are a provider or manage multiple boxes.

As mentioned on the plugin homepage¬†the new plugin has a mechanism to update provider details (i.e. name, host name, port) across multiple boxes. We’ve received a number of enquiries on how providers can provide automated updates and one line installs. This post aims to address these questions.

Create Provider Update File

The provider update file is a text file that has your provider details. The plugin will automatically check this file every 6 hours and apply any updates.¬†The text file should follow the format ‚ÄėName,M3UURL,EPGURL‚Äô¬† e.g.

SULS,http://www.suls.co.uk/get.php?username=USERNAME&password=PASSWORD&type=m3u_plus&output=ts,http://www.suls.co.uk/xmltv.php?username=USERNAME&password=PASSWORD

Note: USERNAME & PASSWORD should be left as the generic placeholders

Upload the provider.txt file to an accessible hosting space e.g. your panel or some cloud service like Dropbox

Create Generic Provider Config

Create a generic config file with your provider URLs e.g.

<!--
 E2m3u2bouquet supplier config file
 Add as many suppliers as required
 this config file will be used and the relevant bouquets set up for all suppliers entered
 0 = No/False
 1 = Yes/True
 For elements with <![CDATA[]] enter value between empty brackets e.g. <![CDATA[mypassword]]>
-->
<config>
 <supplier>
 <name>SULS</name><!-- Supplier Name -->
 <enabled>1</enabled><!-- Enable or disable the supplier (0 or 1) -->
 <settingslevel>simple</settingslevel>
 <m3uurl><![CDATA[http://www.suls.co.uk/get.php?username=USERNAME&password=PASSWORD&type=m3u_plus&output=ts]]></m3uurl><!-- Extended M3U url --> 
 <epgurl><![CDATA[http://www.suls.co.uk/xmltv.php?username=USERNAME&password=PASSWORD]]></epgurl><!-- XMLTV EPG url -->
 <username><![CDATA[uuuuu]]></username><!-- (Optional) will replace USERNAME placeholder in urls -->
 <password><![CDATA[ppppp]]></password><!-- (Optional) will replace PASSWORD placeholder in urls -->
 <providerupdate><![CDATA[https://www.dropbox.com/s/<fileid>/provider.txt?dl=1]]></providerupdate><!-- (Optional) Provider update url -->
 <iptvtypes>0</iptvtypes><!-- Change all TV streams to IPTV type (0 or 1) -->
 <streamtypetv></streamtypetv><!-- (Optional) Custom TV stream type (e.g. 1, 4097, 5001 or 5002 -->
 <streamtypevod></streamtypevod><!-- (Optional) Custom VOD stream type (e.g. 4097, 5001 or 5002 -->
 <multivod>0</multivod><!-- Split VOD into seperate categories (0 or 1) -->
 <allbouquet>0</allbouquet><!-- Create all channels bouquet (0 or 1) -->
 <picons>0</picons><!-- Automatically download Picons (0 or 1) -->
 <xcludesref>1</xcludesref><!-- Disable service ref overriding from override.xml file (0 or 1) -->
 <bouqueturl><![CDATA[]]></bouqueturl><!-- (Optional) url to download providers bouquet - to map custom service references -->
 <bouquetdownload>0</bouquetdownload><!-- Download providers bouquet (uses default url) must have username and password set above - to map custom service references -->
 <bouquettop>1</bouquettop><!-- Place IPTV bouquets at top (0 or 1) -->
 </supplier>
</config>
  • The providerupdate url¬†https://www.dropbox.com/s/<fileid>/provider.txt?dl=1 should be set to the URL of your provider update file created in the previous step
  • Again USERNAME & PASSWORD should be left as the generic placeholders
  • The username string ‘uuuuu’ and password string ‘ppppp’ should be left as these values. They will get replaced with the individuals details within the install command below

Upload the config.xml file to an accessible hosting space e.g. your panel or some cloud service like Dropbox

One line install script

The version below will only copy the config file if the user doesn’t already have one

wget -O /tmp/config.xml "https://www.dropbox.com/s/<fileid>/config.xml?dl=1" && sed -i 's/uuuuu/myusername'/g /tmp/config.xml && sed -i 's/ppppp/mypassword'/g /tmp/config.xml && opkg install --force-reinstall "https://github.com/su1s/e2m3u2bouquet/releases/download/v0.7.4/enigma2-plugin-extensions-e2m3u2bouquet_0.7.4_all.ipk" && reboot
  • The config file URL¬†https://www.dropbox.com/s/<fileid>/config.xml?dl=1¬†should be set to the URL of your config file
  • The text myusername & mypassword in the command should be replaced with the individuals users username & password. You should do this on a server script (see below for a JavaScript generator) or instruct the user to make the change.
  • The command above references the 0.7.4 version of the plugin, this should be updated to the current release version

The version below will overwrite the config file even if the user already has one (not recommended)

rm -f /etc/enigma2/e2m3u2bouquet/config.xml && wget -O /tmp/config.xml "https://www.dropbox.com/s/<fileid>/config.xml?dl=1" && sed -i 's/uuuuu/myusername'/g /tmp/config.xml && sed -i 's/ppppp/mypassword'/g /tmp/config.xml && opkg install --force-reinstall "https://github.com/su1s/e2m3u2bouquet/releases/download/v0.7.4/enigma2-plugin-extensions-e2m3u2bouquet_0.7.4_all.ipk" && reboot
  • The config file url¬†https://www.dropbox.com/s/<fileid>/config.xml?dl=1¬†should be set to the URL of your config file
  • The text myusername & mypassword in the command should be replaced with the individuals users username & password. You should do this on a server script or instruct the user to make the change.
  • The command above references the 0.7.4 version of the plugin, this should be updated to the current release version

Below is an example of a simple JavaScript generator page that asks for the users username & password and then outputs the custom install line. The config.xml URL in the line towards the bottom starting ‘var¬†installcmd’ will need edited to the correct config.xml URL and as it currently references the 0.7.4 version of the plugin, this should be updated to the current release version

<!doctype html>
<html lang="en">
 <head>
 <title>Generator Demo</title>
 <style>
 h1 {
 font-size: 1.5em
 }
 input, button {
 min-width: 72px;
 min-height: 36px;
 border: 1px solid grey;
 padding: 3px;
 }
 label, input, button {
 display: block;
 }
 input {
 margin-bottom: 1em;
 } 
 pre {
 background: #f1f1f1;
 border: 1px solid #ccc;
 overflow: auto;
 padding: 1em;
 white-space: pre-wrap;
 word-break: break-all;
 word-wrap: break-word;
 }
 .hidden {
 display: none;
 }
 </style> 
 </head>
</html>
<body>
 <h1>Generator Demo</h1>
 
 <label for="username">Username</label>
 <input id="username" placeholder="Enter Username">
 <label for="password">Password</label>
 <input id="password" placeholder="Enter Password"> 
 <button id="generate">Generate</button>
 
 <pre id="output" class="hidden"></pre>
 
 <script type="text/javascript"> 
 function onClick() { 
 var username = document.getElementById('username').value;
 var password = document.getElementById('password').value;
 var output = document.getElementById('output');
 output.classList.remove('hidden');
 
 if (inputsAreEmpty(username, password)) {
 output.textContent = 'Error: need to enter username and password';
 return;
 }
 
 var displaycmd = installcmd.replace('myusername', username).replace('mypassword', password); 
 output.textContent = displaycmd; 
 return;
 }
 
 function inputsAreEmpty(username, password) {
 if (username === '' || password === '') {
 return true;
 } else {
 return false;
 }
 }
 
 var installcmd = "wget -O /tmp/config.xml \"https://www.dropbox.com/s/<fileid>/config.xml?dl=1\" && sed -i 's/uuuuu/myusername'/g /tmp/config.xml && sed -i 's/ppppp/mypassword'/g /tmp/config.xml && opkg install --force-reinstall \"https://github.com/su1s/e2m3u2bouquet/releases/download/v0.7.4/enigma2-plugin-extensions-e2m3u2bouquet_0.7.4_all.ipk\" && reboot";
 var button = document.getElementById('generate');
 button.addEventListener('click', onClick);
 </script> 
</body>
</html>

e2m3u2bouquet 0.7.3

v0.7.3

This is a plugin release if you use the script there is no need to upgrade if you are on v0.7.1 or higher

Plugin changes

  • Fix issue with main screen showing no text on some skins
  • Add option to reset bouquets

Please note we will now no longer be maintaining or updating the list of providers that the old plugin used. From v0.7.1 the plugin uses a config file based support and supports any provider.

See the plugin page for details

 

e2m3u2bouquet 0.7.1

v0.7.1

Script changes

  • Make sure comments are xml safe
  • Extract username and password from m3u url if they are not passed in
  • Set services to stream type ‘1’ in epg config so that the epg can be imported if
    serviceapp is overriding stream type ‘4097’ to exteplayer3
  • Minor fixes & tidy
  • Option for custom stream type for TV and VOD
  • Allow https & rtmp services
  • Unicode fixes
  • Url encoding fixes

Plugin changes

  • Multi custom provider support
  • File based setup (values can be edited in an xml file instead
    of entered using the remote)
  • Provider managed update system
  • Fixed time schedule type
  • Option for custom stream type for TV and VOD

Full details on the plugin page

Latest releases here

Community guides here

e2m3u2bouquet 0.6.3

v0.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

v0.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)

Notes

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

e2m3u2bouquet 0.6

v0.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

v0.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 the 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 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