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

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

https://github.com/su1s/e2m3u2bouquet/releases/tag/v0.7.0

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
./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
or
vi config.xml

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

Then run the script again.

./e2m3u2bouquet.py

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

Automation

To automate this use cron.

crontab -e

enter

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.

Issues

Any issues / bugs or problems leave a coment.

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

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.

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