Live TV streams showing as vod / e2m3u2bouquet 0.7.7

We’ve been made aware that some provider updates have caused the script/plugin to show live stream as vod (which means no epg is listed for them)

If you’re you using ‘output=ts’ in your m3u url please try ‘output=m3u8’ as a temporary workaround.

There’s an updated release (untested) here if anyone is willing to test and give feedback.

Update

v0.7.7 has been released which should fix this issue.

EpgImporter / e2m3u2bouquet 0.7.6

We’ve had some reports of issues with epgimport .

Initial investigation suggest that a recent epgimport update will stop it from working with any panel’s epg feed.

We’ll investigate further but in the meantime we suggest not updating to the latest epgimport version.

Update 

This issue is caused by the latest version of epgimport checking for a ‘LastUpdate.log’ file on the server that supplies the xmltv epg feed. If the file doesn’t exist or the date within is older than 2 days then the server is considered invalid and not used. Unfortunately this file is used by Rytec feed servers but not IPTV panels.

We’ve released v0.7.6 which sets a flag in the epgimport sources to ignore this check however this flag has only recently been added to epgimport and at the moment only works on the OpenPLI branch and not the OE-Alliance fork. Hopefully the OE-Alliance fork will merge this feature soon.

TL;DR

New versions of epgimport have broken the epg for IPTV panels. You should avoid updating epgimport for now, or revert to a previous version.

Updating to v0.7.6 of this script/plugin should fix the issue on OpenPli and hopefully future OE-Alliance images.

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.7/enigma2-plugin-extensions-e2m3u2bouquet_0.7.7_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.6 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.7/enigma2-plugin-extensions-e2m3u2bouquet_0.7.7_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.7 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.7 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.7/enigma2-plugin-extensions-e2m3u2bouquet_0.7.7_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.