Quantcast
Channel: [EN] OpenPLi Third-Party Development
Viewing all 1690 articles
Browse latest View live

Crossepg

$
0
0

The Crossepg provided in OpenPLi does not import XMLTV files anymore.

I am not sure where it is taken from (probably OE-Alliance)

This version has not been updated for a long time.

 

The version on E2OpenPlugins:  https://github.com/E2OpenPlugins/e2openplugin-CrossEPG

has been adapted for reading xz files.  However I am unable to make an ipk from it, or otherwise install it on a receiver.

 

I am getting several questions about importing EPG with the ais of CrossEPG.  And I am unable to answer them, by the lack of a working version.

One of the problems is that Updating the Rytec sources doe not seem to work anymore. In python file which is suppose to do this, some files are being read which holds the data.

These files are still present and up-to-date  (although they contain the .gz references at the moment)

 

My questions:

 

1. Update crossepg_rytec_update.py so it works again.

2. Provide a bitbake recipe which I can run in the OpenPLi building environment, so I can build a working version of Crossepg.

3. Maybe updating also the version on OE-Alliance

 

Lack of answers, will results in me complete abandoning Crossepg.

 

Willy

 


Astrometa DVB-T/T2/C MN88472/MN88473

$
0
0

Hi,

 

I have very popular DVB-C/T/T2 astrometa USB stick. There is no official driver from Astrometa for this device for linux, anyway it worked partialy with dvb-usb-rtl28xxu driver, only DVB-T1, not C/T2. Thanks to some good people reverse engneering was done and now there is support for MN88472/3 and T2/C works fine.

 

ASTROMETA-DVB-T2-HDTV-USB-Stick_slika_O_

 

Components:
Realtek RTL2832P
Panasonic MN88472 (newer version MN88473)
Rafael Micro R828D
http://blog.palosaari.fi/2013/10/naked-hardware-14-dvb-t2-usb-tv-stick.html

 

I have linux Ubuntu 12.04lts and I have tried it out my self, compiled drivers for Kernel 3.13 and scan the services.

 

97i0x5.png

 

I have DM800 and I would like to have drivers for it, but I have never build anything for E2 (mipsel) before, so I need help how if it is possible to port it for kernel 2.6?!

 

The driver author recomended me this:

./build --git git://linuxtv.org/anttip/media_tree.git astrometa

And link:

http://linuxtv.org/wiki/index.php/How_to_Obtain,_Build_and_Install_V4L-DVB_Device_Drivers

 

But if I do so, would I again build modules for my architecture and ubuntu kernel, not mips?

OpenPli and NeoBoot2 plugin - any solutions?

$
0
0

I have the Zgemma H7S and I want to use it with a multiboot in which I would install 5 or more pictures.
I know I can install 4 images, however, I want more. The reason is that I need the ability to install a Kodi plugin with different builds on different images.
Is this possible and how can I do it?

I tried NeoBoot2.01 plugin. I installed OpenATV 6.3 in the flesh, and I installed PurE2, OpenVix, OpenSPA in NeoBoot. All images work well. I then installed OpenPLi-multiboot, but the installation lasts a long, specifically boot process. Plugin's entry to me also takes a very long time, and during this time the images of the active satellite channel trump and crash. Audio is ok. The plugin installation process also takes a very long time. Example: The code plugin, its installation lasted for 8 minutes.

also tried the variant that OpenPLi is in the flesh, but it is not possible to install PurE2 (problem booting). I also tried OpenHDF in flesh. Impressions are similar ...
I did not try the variant that PurE2 should be in the flesh, but I believe the impressions would be similar ...

Can you find a solution that will enable OpenPLi to run smoothly in the NeoBoot plugin. The other images are working well, it's just that the OpenPLi solution is found. I'm sure you will solve this problem. I'm ready to test it. Thank you in advance !!

plugin/Python - I'm looking for a way to run a Youtube video from a certain position (not from the beginning)

$
0
0

Hello.

I am not an expert in programming under Enigma2. So I ask for advice from the more experienced Enigma2 programmers. I've just created a simple plugin for testing.

 

I'm looking for a way to run a Youtube video from a certain position (not from the beginning). I can translate the original Youtube link to the Youtube streaming link. This can be done by using the imported "youtube_dl" python module (source: github / youtube-dl) or via imported code (as a module) from the original Youtube plug-in. Unfortunately, in the "youtube-dl" project, it is not possible to get a streaming video link directly from the specified position.

Is there a way to start a Youtube video from a certain position? (of course streaming URL, after translation from the original Youtube URL, which is determined by its video-ID code)
Or run a stream in Enigma2, and then set a new stream position immediately?

I have also searched for a code on the github server (Youtube plug-in), but I did not understand much :-). I found only a video shift left / right. Unfortunately, it does not work. I do not know how exactly the "4097 service" in Enigma is used to play the online stream. Is it at all possible to start the stream from a certain position?

Thanks.

 

 

 

Here is the plugin code example:

# -*- coding: utf-8 -*-

#### from __future__ import unicode_literals
from youtube_dl import YoutubeDL                 # opkg update && opkg install python-youtube-dl

from Plugins.Plugin import PluginDescriptor
from Screens.MessageBox import MessageBox

from Screens.Screen import Screen
from Screens.InfoBarGenerics import InfoBarNotifications
from enigma import eTimer, eConsoleAppContainer, ePicLoad, loadPNG, loadJPG, getDesktop, eServiceReference, iPlayableService, eListboxPythonMultiContent, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER, RT_VALIGN_CENTER
from Components.ServiceEventTracker import ServiceEventTracker
from Components.ActionMap import ActionMap
from Components.Label import Label




def ytStreamURL(video_id = ''):           # video_id = youtube URL link or video-ID only, to translate into streaming youtube URL
    ydl_opts = {'format': 'bestvideo+bestaudio', 'verbose': True}
    data = video_url = audio_url = ''
    with YoutubeDL(ydl_opts) as ydl:
        data = ydl.extract_info(video_id, download=False)
    if not data:
        return ''
    data = data['formats']
    for row in data:         # browse thorough all possible formats (audio+video / video / audio tracks)
        if not video_url and row['format_id'] == '137' or row['format_id'] == '136':  video_url = row['url']            # '22'
        if not audio_url and row['format_id'] == '140' or row['format_id'] == '171':  audio_url = row['url']
    if video_url and audio_url:
        return str(video_url + '&suburi=' + audio_url)        # return the two URL streams - joined as together with the "&suburi=" parameter
    else:
        return ''




class AthanTimesStreamVideo(Screen, InfoBarNotifications):
    STATE_IDLE = 0
    STATE_PLAYING = 1
    STATE_PAUSED = 2
    ENABLE_RESUME_SUPPORT = True
    ALLOW_SUSPEND = True
    PLAYER_STOPS = 3
    skinfhd = '''
        <screen name="AthanTimesStreamVideo" flags="wfNoBorder" position="0,0" size="1920,1080" title="AthanTimesStreamVideo" backgroundColor="transparent">
            <widget source="global.CurrentTime" render="Label" position="13,9" size="250,100" font="Regular; 28" halign="left" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" zPosition="1">
                <convert type="ClockToText">Format:%d.%m.%Y</convert>
            </widget>
        </screen>'''
    skinhd = '''
        <screen name="AthanTimesStreamVideo" flags="wfNoBorder" position="0,0" size="1280,720" title="LiveSoccerStream" backgroundColor="transparent">
            <widget source="global.CurrentTime" render="Label" position="3,5" size="150,100" font="Regular; 24" halign="left" backgroundColor="#263c59" shadowColor="#1d354c" shadowOffset="-1,-1" transparent="1" zPosition="1">
                <convert type="ClockToText">Format:%d.%m.%Y</convert>
            </widget>
        </screen>'''
    
    def __init__(self, session, service):
        Screen.__init__(self, session)
        self.skin = AthanTimesStreamVideo.skinhd
        #if dwidth == 1280:
        #    self.skin = AthanTimesStreamVideo.skinhd
        #else:
        #    self.skin = AthanTimesStreamVideo.skinfhd
        InfoBarNotifications.__init__(self)
        self.session = session
        self.initialservice = self.session.nav.getCurrentlyPlayingServiceReference()
        self.service = service
        self.screen_timeout = 1000
        self.__event_tracker = ServiceEventTracker(screen = self,
               eventmap = { iPlayableService.evSeekableStatusChanged  :  self.__seekableStatusChanged,
                            iPlayableService.evStart  : self.__serviceStarted,
                            iPlayableService.evEOF    : self.__evEOF  } )
        self['actions'] = ActionMap( ['OkCancelActions', 'InfobarSeekActions', 'ColorActions', 'MediaPlayerActions', 'MovieSelectionActions'], {
            'ok'     : self.leavePlayer,
            'cancel' : self.leavePlayer,
            'stop'   : self.leavePlayer  } , -2)
        self['pauseplay'] = Label(_('Play'))
        self.hidetimer = eTimer()
        #self.repeter = True
        self.repeater = True
        self.state = self.STATE_PLAYING
        self.onPlayStateChanged = []
        self.play()
        self.onClose.append(self.__onClose)
    
    def __onClose(self):
        self.session.nav.stopService()
        self.session.nav.playService(self.initialservice)
    
    def __evEOF(self):
        self.STATE_PLAYING = True
        self.state = self.STATE_PLAYING
        self.session.nav.playService(self.service)
        if self.session.nav.stopService():
            self.state = self.STATE_PLAYING
            self.session.nav.playService(self.service)
        else:
            self.leavePlayer()
    
    def __setHideTimer(self):
        self.hidetimer.start(self.screen_timeout)
    
    def ok(self):
        self.leavePlayer()
    
    def playNextFile(self):
        self.session.open(MessageBox, 'only to watch not play Next and Prev File', MessageBox.TYPE_INFO)
    
    def playPrevFile(self):
        self.session.open(MessageBox, 'only to watch not play Next and Prev File', MessageBox.TYPE_INFO)
    
    def playService(self, newservice):
        if self.state == self.STATE_IDLE:
            self.play()
        self.service = newservice
    
    def play(self):
        self.state = self.STATE_PLAYING
        self['pauseplay'].setText('PLAY')
        self.session.nav.playService(self.service)
        self.__evEOF
    
    def __seekableStatusChanged(self):
        service = self.session.nav.getCurrentService()
        if service is not None:
            seek = service.seek()
            if seek is None or not seek.isCurrentlySeekable():
                self.setSeekState(self.STATE_PLAYING)
                self.__evEOF
        return
    
    def __serviceStarted(self):
        self.state = self.STATE_PLAYING
        self.__evEOF
    
    def setSeekState(self, wantstate):
        print 'setSeekState'
        if wantstate == self.STATE_PAUSED:
            print 'trying to switch to Pause- state:', self.STATE_PAUSED
        elif wantstate == self.STATE_PLAYING:
            print 'trying to switch to playing- state:', self.STATE_PLAYING
        service = self.session.nav.getCurrentService()
        if service is None:
            print 'No Service found'
            return False
        else:
            pauseable = service.pause()
            if pauseable is None:
                print 'not pauseable.'
                self.state = self.STATE_PLAYING
            if pauseable is not None:
                print 'service is pausable'
                if wantstate == self.STATE_PAUSED:
                    print 'WANT TO PAUSE'
                    pauseable.pause()
                    self.state = self.STATE_PAUSED
                    if not self.shown:
                        self.hidetimer.stop()
                        self.show()
                elif wantstate == self.STATE_PLAYING:
                    print 'WANT TO PLAY'
                    pauseable.unpause()
                    self.state = self.STATE_PLAYING
                    if self.shown:
                        self.__setHideTimer()
            for c in self.onPlayStateChanged:
                c(self.state)

            return True
            return
    
    def handleLeave(self):
        self.close()
    
    def leavePlayer(self):
        self.close()








def backToIntialService():
    pass





def pluginOpen(session, **kwargs):
    streamURL = ytStreamURL('LXb3EKWsInQ')                         # LXb3EKWsInQ(costa rica 4k) zw5BReAqBS8(do 1080p building machines) fDWFVI8PQOI(shufle-dance-1080p) e8WhbRgxe64(videoclip up to max. 4K resolution)
    sref = eServiceReference(4097, 0, streamURL)
    sref.setName('')
    session.openWithCallback(backToIntialService, AthanTimesStreamVideo, sref)
    #print(message)
    #session.open(MessageBox, message, type = MessageBox.TYPE_INFO) 


def Plugins(**kwargs):
    return PluginDescriptor(
            name = "test plugin No. 42",
            description = "YouTube link transform - from original URL to a streaming URL & play it",
            where = [ PluginDescriptor.WHERE_EXTENSIONSMENU ,  PluginDescriptor.WHERE_PLUGINMENU ] ,
            icon = "/usr/lib/enigma2/python/Plugins/Extensions/EnhancedMovieCenter/img/link.png",
            fnc = pluginOpen)

3G Modem Manager plugin

Setting custom EPG event in infobar

$
0
0

Hello all!

 

This snippet works beautifully when changing the current played service and service name

self.reference = eServiceReference(4097, 0, str(vod_url))
self.reference.setName(info.getName())
self.session.nav.playService(self.reference)

But how could one set a custom short description in the infobar and a long description in info or second infobar? I looked in every piece of code I could look but to no avail.

 

Thank you!
 

"print" statement inside Enigma2 plugins

$
0
0

I've seen a lot of print statements in various Enigma2 plugins and I wonder where the print output is printed since Enigma2 plugins are executed inside Enigma2 and not inside the console. I have tried to check the dmesg output but it seems dmesg doesn't capture python print outputs.

def function(self):        
	try: 
           x = y 
        except Exception as ex:
           print ex
           print 'ERROR'



Where does print ex print?

MediaPortal dependencies problem.

$
0
0

 I am running latest upgradeble image Pli4 on my Vu Zero.

Media portal after latest update is not shown in plugins, there are missing dependencies for it.

python-requests_2.11.1+git0+58d855e193-r0.0_mips32el.ipk

python-js2py_0.39+git0+144b1701fa-r0.0_mips32el.ipk

python-cfscrape_1.6.6+git0+5da4af148f-r0.1_mips32el.ipk

I have them as ipk files, bit unable to install it on Pli?!?!

 

log file for mediaportal:

satisfy_dependencies_for: Cannot satisfy the following dependencies for enigma2-plugin-extensions-mediaportal:
 * python-six * python-cfscrape * python-js2py * python-requests (>= 2.0.0) *
 
Any solution for this?

Image/Pixmap vanuit plugin op VU+ LCD afbeelden

$
0
0

Hallo,

 

Ik ben sinds kort in het bezit van een VU+ Ultimo 4K met front LCD scherm en ik wil graag meer gebruik maken van de LCD. Een voorbeeld is de MerlinMusicPlayer. Ik zou graag de album cover op het LCD scherm zetten samen met de summary informatie van wat er op dat moment speelt.

 

Nu maakt de plugin al gebruik van de 'createSummary' om een class te registeren die text op het LCD te zet. Deze heb ik al met succes kunnen aanpassen om zo de font sizes vergroten, maar wanneer ik er een widget bijzet met een pixmap wordt deze niet gerenderd.

 

Nu snap ik uberhaupt niet helemaal hoe de LCD integratie werkt van OpenPLi, maar weet iemand hoe ik dit zou moeten aanpakken ? De image moet wel 'dynamisch' aan te passen zijn aangezien het zoeken en downloaden van album covers asynchroon verloopt. Er wordt dus eerst een standaard image gezet die wordt vervangen met de album cover zodra deze gevonden en gedownload is.

 

Ik draai overigens de laatste OpenPLi 7.

 

Alle hulp is welkom :)

MediaPortal dependencies problem.

$
0
0

 I am running latest upgradeble image Pli4 on my Vu Zero.

Media portal after latest update is not shown in plugins, there are missing dependencies for it.

python-requests_2.11.1+git0+58d855e193-r0.0_mips32el.ipk

python-js2py_0.39+git0+144b1701fa-r0.0_mips32el.ipk

python-cfscrape_1.6.6+git0+5da4af148f-r0.1_mips32el.ipk

I have them as ipk files, bit unable to install it on Pli?!?!

 

log file for mediaportal:

satisfy_dependencies_for: Cannot satisfy the following dependencies for enigma2-plugin-extensions-mediaportal:
 * python-six * python-cfscrape * python-js2py * python-requests (>= 2.0.0) *
 
Any solution for this?

AutoLanguageSelection does not work properly !

$
0
0

hello, AutoLanguageSelection does not work correctly on some channels.

when use AutoLanguageSelection, subtitle always showing !

I tried to explain with pictures !
 
e1evd4wroy3owkadl.png

e1evdfqfe5b9nrc7d.png

e1evdz2dhaeixs1vt.png

e1evj7fjitq4yqf7t.png

annoying :( we have to turn off subtitles from the remote control..

 

openPLI 7.0 latest release on VU+ DUO2

thanks

Error cross-compiling oscam

$
0
0

Hi, I have a full up-to-date openpli dev branch environment. If i run

bitbake enigma2-plugin-softcams-oscam

I get

| cmake: error while loading shared libraries: libidn2.so.4: cannot open shared object file: No such file or directory

I'm using archlinux os with libidn2 2.1.1-2.

Any hits?

Thanks

freeze picture

$
0
0

sometimes you want to freeze the picture to write down some important informations off the TV screen (i.e. telephone number, address...), this tool could be something for you, it installs /usr/bin/freeze and /usr/script/!freeze.sh, it is not a python plugin, after installing it and restarting enigma you´ll have to assign a hotkey to it, you´ll find it in shellscripts (!freeze.sh), pressing the hotkey it freezes the picture (the sound is still present) and pressing the hotkey again releases the picture, I´ve tested it on a mipsel box, I compiled for an armhf too, I don´t have an armhf box so I can´t test it, in freeze.zip there is a source too, it is based on test_av.c from tuxbox tools

 

Attached Files

Rtsp Convert to Channel

$
0
0

Hi Everyone, could someone please tell me how can I convert a rtsp address to a channel for viewing?

I had tried using M3u bouquet converter but it didn’t work.

Thanks very much

 

PLiHD Skin and missing signal infos in second infobar


openpli 7 ftp

$
0
0

Dont work ftp and telnet. After reboot it work but only fiew minutes. Vu solo 2 openpli7 ver 03.04.

DB transcoder

$
0
0

Hello,

 

What is DB Transcoder ?

It is web application for transcoding, recompressing, resizing stream from your enigma2 receiver .

 

Why ?

You can stream your favorite HD TV show to your cell phone over 3G/4G. Stream will be scaled to not use so much bandwidth.

 

What i need for this web app ?

You need linux computer with webserver, php5, also php5 should have installed sqlite plugin, ffmpeg or avlib(avconv) for transcoding.

 

How does it work ?

Basically this web application is frontend for ffmpeg or avlib with possibility sellect channel from your enigma2 bouquet for transcoding.

 

Where i can download it ?

http://sharetext.net/userfiles/db_transcode_0.1.tar.gz

 

How can i view stream ?

With build in flash video player, vlc player, bsplayer (android).

 

How can i install this web app ?

Download DB transcoder and edit according your needs config.php . After configuration open web app, go to settings and push "Reload Playlist" button to download bouquets from receiver.

 

Few notes:

 

It is highly recomended to set HTTP authorization for this WEB application if you will access this application from internet.

 

Im hobby php programmer :) , dont be rude if something is not perfect .

 

most of linux distributions have ffmpeg or avlib available, but you can also download last static binaries for ffmpeg here

http://johnvansickle.com/ffmpeg/

 

Flash HLS player are from:

https://github.com/mangui/flashls

 

Im planing to also add support for windows server with IIS.

 

Suggestions and bug reports are welcomed. 

 

Screenshots

Main page with channels list:

channels_55072ac0e4039.png

 

live with flash:

Live_55072ac9a8b74.png

 

Settings:

settings_55072ad0e28a7.png

 

 

 

picons.eu

$
0
0

seems to have disappeared. Website is gone, repo's on gitlab are empty. Anyone's got any idea?

Remote debug

$
0
0

Hi,

now test in syslog-startup.conf

DESTINATION=remote		# log destinations (buffer file remote)
LOGFILE=/var/log/messages	# where to log (file)
REMOTE=192.168.1.50:514		# where to log (syslog remote)
REDUCE=no			# reduce-size logging
DROPDUPLICATES=no		# whether to drop duplicate log entries
#ROTATESIZE=0			# rotate log if grown beyond X [kByte]
#ROTATEGENS=3			# keep X generations of rotated logs
BUFFERSIZE=64			# size of circular buffer [kByte]
FOREGROUND=no			# run in foreground (don't use!)
#LOGLEVEL=5			# local log level (between 1 and 8) 

but on PC none data.

known some idea or fix ?

 

RetroArch - A retrogame emulator on enigma 2

$
0
0

hi guys, i don't think that there is a good working retro games emulator that works on enigma2

maybe some devs can take a look at this goos thing and try to bring it to our devices

the emulator works on almost any existing OS at this time

so... why not the Enigma2 also !

 

https://www.retroarch.com/

Viewing all 1690 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>