Kodi Community Forum
XBMC Tuxbox Enigma Stream Client (Enigma / Enigma2 Based Dreambox & Dbox2) - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: XBMC Tuxbox Enigma Stream Client (Enigma / Enigma2 Based Dreambox & Dbox2) (/showthread.php?tid=23834)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47


- cwildt - 2011-05-05

x23piracy Wrote:Hi,



i never saw a working channel zap with that plugin are you sure?
What key oder what button do you press?
Do you made any changes to the plugin or with something related to it?


Greetz X23

Oh sorry, i meant choosing a channel from the bouquet.
I don't know how to zap through the channels via one button.

*edit*
You can zap, by adding the channels to the playlist


- x23piracy - 2011-05-05

Hi,

cwildt Wrote:*edit*
You can zap, by adding the channels to the playlist

i allready realised that workaround to have zapping but what we all need is an extended tuxbox client...

Means:

- Bouquetview
- Zapping
- EPG

But i think the Tuxbox Client will never getting updates anymore.


Greetz X23


- look2 - 2011-05-09

I've been browsing this thread, but i can't figure out how to make this work, canät anyone just type a simple step-by-step guide how this shuld be done?


- x23piracy - 2011-05-09

Hi,

look2 Wrote:I've been browsing this thread, but i can't figure out how to make this work, canät anyone just type a simple step-by-step guide how this shuld be done?

Videos > Submenu > Files > Add Source > Add network location > Protocol (change to Tuxbox)

Now enter your configuration:

- Hostname (IP)
- Port
- Username
- Password


Greetz X23


- look2 - 2011-05-09

That seemes to easy, but I'll give it a try when i get home, thanks alot Smile


- x23piracy - 2011-05-09

Hi,

look2 Wrote:That seemes to easy...

but that's all Smile

If you have done that you will find the Tuxbox client under given source name under:

Video > Files > Given name (for me E2)
You can also add this source as favorite (contextmenu > add to favorites)
for menu integration you can use custom home entrys (most skins support that)


Greetz X23


- xayide - 2011-05-24

I made a script to be able to stream TV from dreambox E2 including channelswitching. try it. There are two things to observe here tho. You have to change to your DB IP and also check that you have the right guid for your bouquetfolder. I couldnt get it to work with the choose boquet-folder although function is still there. (works on 500HD with enigma CVS builds at least):

import os #Used to access host file system
import os.path
import xbmcplugin #Used to interface with XBMC
import xbmcgui #Used for XBMC gui
import urllib #Used for URL handling
import urllib2
import re


ACTION_PARENT_DIR = 9
ACTION_PREVIOUS_MENU = 10

BOUQUETNAMESPATTERN = re.compile('<e2servicename>(.*?)</e2servicename>')
BOUQUETIDSPATTERN = re.compile('<e2servicereference>(.*?)</e2servicereference>')
CHANNELNAMESPATTERN = re.compile('<e2eventservicename>(.*?)</e2eventservicename>')
CHANNELIDSPATTERN = re.compile('<e2eventservicereference>(.*?)</e2eventservicereference>')
EVENTNAMESPATTERN = re.compile('<e2eventtitle>(.*?)</e2eventtitle>')
STREAMURLSPATTERN = re.compile('(http://.*?)\n')

SPACECLEANER = re.compile(' ')
QUOTECLEANER = re.compile('&quot;')

DREAMBOXURL = "http://10.0.0.12"
BOUQUETLISTURL = DREAMBOXURL+"/web/getservices"
CHANNELLISTURL = DREAMBOXURL+"/web/epgnow?bRef="
M3USTREAMURL = DREAMBOXURL+"/web/stream.m3u?ref="
CHANNELSWITCH = DREAMBOXURL+"/web/zap?sRef="

BOUQUETNAMES = []
BOUQUETNAME = ''
BOUQUETIDS = []
BOUQUETID = ''
CHANNELNAMES = []
CHANNELNAME = ''
CHANNELIDS = []
CHANNELID = ''
EVENTNAMES = []
EVENTNAME = ''
BOUQUETSLOADED = 0
CHANNELSLOADED = 0
MENULEVEL = 0


def ShowBouquetList():
global BOUQUETIDS, BOUQUETNAMES, MENULEVEL, BOUQUETSLOADED, CHANNELSLOADED
request = urllib2.Request(BOUQUETLISTURL)
socket = urllib2.urlopen(request)
xml = socket.read()
socket.close()
BOUQUETNAMES = re.findall(BOUQUETNAMESPATTERN,xml)
BOUQUETIDS = re.findall(BOUQUETIDSPATTERN,xml)
i = 0
for BOUQUETNAME in BOUQUETNAMES:
liz=xbmcgui.ListItem(BOUQUETNAME,'')
url = sys.argv[0] + "?boqu=" + BOUQUETIDS[i]
xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,1)
i = i + 1
xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)
return(0)

def ShowChannelList(BOUQUETID):
dialog = xbmcgui.Dialog()
global MENULEVEL, CHANNELIDS, CHANNELNAMES, EVENTNAMES, CHANNELSLOADED
request = urllib2.Request(CHANNELLISTURL+'1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet%20Favoriter%20(TV)')
socket = urllib2.urlopen(request)
xml = socket.read()
socket.close()
CHANNELIDS = re.findall(CHANNELIDSPATTERN, xml)
CHANNELNAMES = re.findall(CHANNELNAMESPATTERN, xml)
EVENTNAMES = re.findall(EVENTNAMESPATTERN, xml)
i = 0
for CHANNELNAME in CHANNELNAMES:
CHANNELNAME = CHANNELNAME + " ("
CHANNELNAME = CHANNELNAME + EVENTNAMES[i]
CHANNELNAME = CHANNELNAME + ")"
liz=xbmcgui.ListItem(CHANNELNAME,'')
url = sys.argv[0] + "?play=" + CHANNELIDS[i]
xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,1)
i = i + 1
xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)
return(0)

def PlayChannel(CHANNELID):
request = urllib2.Request(CHANNELSWITCH+CHANNELID)
socket = urllib2.urlopen(request)
socket.close();
request = urllib2.Request(M3USTREAMURL+CHANNELID)
socket = urllib2.urlopen(request)
m3u = socket.read()
socket.close()
STREAMURLS = re.findall(STREAMURLSPATTERN,m3u)
xbmc.Player().play(STREAMURLS[0])
return (0)

if cmp (sys.argv[2][0:6],"?play=") == 0:
PlayChannel(sys.argv[2][6:])
elif cmp (sys.argv[2][0:6],"?boqu=") == 0:
ShowChannelList(sys.argv[2][6:])
else:
ShowBouquetList()


- Cr4z33 - 2011-06-10

x23piracy Wrote:Hi,



Videos > Submenu > Files > Add Source > Add network location > Protocol (change to Tuxbox)

Now enter your configuration:

- Hostname (IP)
- Port
- Username
- Password


Greetz X23
Tried it and it's not working.
I see the list of Favourites, choose one and then the spinner keeps turning forever.
No chance to abort, exit, etc.
All I can do is to kill the XBMC process... No


- jsimo01 - 2011-06-13

Works fine here with a DM800, is there a way to pull the epg thru though??


- realjobe - 2011-06-14

jsimo01 Wrote:Works fine here with a DM800, is there a way to pull the epg thru though??

I have NewNigma2 v3.2 and some Experimental 05/2011 Xbmc image: bouquets are retreived properly and channels are streamed great. Works! TuxBox protocoll.


HTTPApi for Enigma2 is here. http://dream.reichholf.net/e2web/
some python can be done I suppose..


- jsimo01 - 2011-06-14

Even if something could be done to extract the now and next info that would be a great improvement.


- snappz - 2011-06-15

Cr4z33 Wrote:Tried it and it's not working.
I see the list of Favourites, choose one and then the spinner keeps turning forever.
No chance to abort, exit, etc.
All I can do is to kill the XBMC process... No

Try tuning the box manually to the channel you want then stream it. It doesn't seem to zap to the channel you want by itself. Works for me with a dm7025 and a dm7000


- jsimo01 - 2011-06-19

I always thought it needed to be in standby to stream as well?


- snappz - 2011-06-19

jsimo01 Wrote:I always thought it needed to be in standby to stream as well?

Not that I have come across.

I'm using openpli images.


- esxbr - 2011-07-05

How can I install this script ?
I tried Basic Steps but i can't see the 6 step.

xayide Wrote:I made a script to be able to stream TV from dreambox E2 including channelswitching. try it. There are two things to observe here tho. You have to change to your DB IP and also check that you have the right guid for your bouquetfolder. I couldnt get it to work with the choose boquet-folder although function is still there. (works on 500HD with enigma CVS builds at least):

import os #Used to access host file system
import os.path
import xbmcplugin #Used to interface with XBMC
import xbmcgui #Used for XBMC gui
import urllib #Used for URL handling
import urllib2
import re


ACTION_PARENT_DIR = 9
ACTION_PREVIOUS_MENU = 10

BOUQUETNAMESPATTERN = re.compile('<e2servicename>(.*?)</e2servicename>')
BOUQUETIDSPATTERN = re.compile('<e2servicereference>(.*?)</e2servicereference>')
CHANNELNAMESPATTERN = re.compile('<e2eventservicename>(.*?)</e2eventservicename>')
CHANNELIDSPATTERN = re.compile('<e2eventservicereference>(.*?)</e2eventservicereference>')
EVENTNAMESPATTERN = re.compile('<e2eventtitle>(.*?)</e2eventtitle>')
STREAMURLSPATTERN = re.compile('(http://.*?)\n')

SPACECLEANER = re.compile(' ')
QUOTECLEANER = re.compile('&quot;')

DREAMBOXURL = "http://10.0.0.12"
BOUQUETLISTURL = DREAMBOXURL+"/web/getservices"
CHANNELLISTURL = DREAMBOXURL+"/web/epgnow?bRef="
M3USTREAMURL = DREAMBOXURL+"/web/stream.m3u?ref="
CHANNELSWITCH = DREAMBOXURL+"/web/zap?sRef="

BOUQUETNAMES = []
BOUQUETNAME = ''
BOUQUETIDS = []
BOUQUETID = ''
CHANNELNAMES = []
CHANNELNAME = ''
CHANNELIDS = []
CHANNELID = ''
EVENTNAMES = []
EVENTNAME = ''
BOUQUETSLOADED = 0
CHANNELSLOADED = 0
MENULEVEL = 0


def ShowBouquetList():
global BOUQUETIDS, BOUQUETNAMES, MENULEVEL, BOUQUETSLOADED, CHANNELSLOADED
request = urllib2.Request(BOUQUETLISTURL)
socket = urllib2.urlopen(request)
xml = socket.read()
socket.close()
BOUQUETNAMES = re.findall(BOUQUETNAMESPATTERN,xml)
BOUQUETIDS = re.findall(BOUQUETIDSPATTERN,xml)
i = 0
for BOUQUETNAME in BOUQUETNAMES:
liz=xbmcgui.ListItem(BOUQUETNAME,'')
url = sys.argv[0] + "?boqu=" + BOUQUETIDS[i]
xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,1)
i = i + 1
xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)
return(0)

def ShowChannelList(BOUQUETID):
dialog = xbmcgui.Dialog()
global MENULEVEL, CHANNELIDS, CHANNELNAMES, EVENTNAMES, CHANNELSLOADED
request = urllib2.Request(CHANNELLISTURL+'1:7:1:0:0:0:0:0:0:0:FROM%20BOUQUET%20%22userbouquet.favourites.tv%22%20ORDER%20BY%20bouquet%20Favoriter%20(TV)')
socket = urllib2.urlopen(request)
xml = socket.read()
socket.close()
CHANNELIDS = re.findall(CHANNELIDSPATTERN, xml)
CHANNELNAMES = re.findall(CHANNELNAMESPATTERN, xml)
EVENTNAMES = re.findall(EVENTNAMESPATTERN, xml)
i = 0
for CHANNELNAME in CHANNELNAMES:
CHANNELNAME = CHANNELNAME + " ("
CHANNELNAME = CHANNELNAME + EVENTNAMES[i]
CHANNELNAME = CHANNELNAME + ")"
liz=xbmcgui.ListItem(CHANNELNAME,'')
url = sys.argv[0] + "?play=" + CHANNELIDS[i]
xbmcplugin.addDirectoryItem(int(sys.argv[1]),url,liz,1)
i = i + 1
xbmcplugin.endOfDirectory(int(sys.argv[1]), 1)
return(0)

def PlayChannel(CHANNELID):
request = urllib2.Request(CHANNELSWITCH+CHANNELID)
socket = urllib2.urlopen(request)
socket.close();
request = urllib2.Request(M3USTREAMURL+CHANNELID)
socket = urllib2.urlopen(request)
m3u = socket.read()
socket.close()
STREAMURLS = re.findall(STREAMURLSPATTERN,m3u)
xbmc.Player().play(STREAMURLS[0])
return (0)

if cmp (sys.argv[2][0:6],"?play=") == 0:
PlayChannel(sys.argv[2][6:])
elif cmp (sys.argv[2][0:6],"?boqu=") == 0:
ShowChannelList(sys.argv[2][6:])
else:
ShowBouquetList()