Hi!
Since vlc-3.0.0 the stream.m3u files generated by the webinterface fail if "alternate services" are in use, because the URIs are not urlencoded.
VLC up to 2.2.5 urlencoded the blanks to "+". This was removed in VLC 3 which enforces correctly encoded URIs in m3u files.
eg:
Code
#EXTM3U
#EXTVLCOPT--http-reconnect=true
http://192.168.1.65:8001/1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.orf1_hd.tv" ORDER BY bouquet
I fixed it by changing ....
Diff
--- web/stream.m3u.xml.orig
+++ web/stream.m3u.xml
@@ -1,4 +1,4 @@
<e2:screen name="M3uStreamingWebScreen">#EXTM3U
#EXTVLCOPT--http-reconnect=true
-http://<e2:element source="localip" />:8001/<e2:element source="ref"><e2:convert type="web:TextToHTML" /></e2:element>
+http://<e2:element source="localip" />:8001/<e2:element source="ref"><e2:convert type="web:TextToURL" /></e2:element>
</e2:screen>
and (please s/%_/%/g ... the forum soft urldecodes code sections)
Diff
--- webif.py.orig
+++ webif.py
@@ -155,7 +155,7 @@
#===============================================================================
class TextToURL(Converter):
def getHTML(self, id):
- return self.source.text.replace(" ", "%_20").replace("+", "%_2b").replace("&", "%_26").replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8")
+ return self.source.text.replace(" ", "%_20").replace('\x22', "%_22").replace("+", "%_2b").replace("&", "%_26").replace('\xc2\x86', '').replace('\xc2\x87', '').decode("utf-8", "ignore").encode("utf-8")
#===============================================================================
# ReturnEmptyXML
Alles anzeigen
Now I correctly get it with encoded blanks and quotes and vlc 3 is willing to open it.
I think services.m3u.xml should be changed as well:
Diff
--- web/services.m3u.xml.orig
+++ web/services.m3u.xml
@@ -1,7 +1,7 @@
<e2:screen name="ServiceListWebScreen"><e2:element source="localip" macro="ipadress" />#EXTM3U
#EXTVLCOPT--http-reconnect=true
<e2:element source="ServiceList" id="bRef"><e2:convert type="web:ListFiller">#EXTINF:-1,<e2:item name="Name" filter="xml" />
-http://<e2:item macro="ipadress" filter="xml" />:8001/<e2:item name="Reference" filter="xml" />
+http://<e2:item macro="ipadress" filter="xml" />:8001/<e2:item name="Reference" filter="urlencode" />
</e2:convert><e2:convert type="web:TextToHTML" />
</e2:element>
</e2:screen>
Alles anzeigen