[non-official] X-streamity - modifications

There are 5 replies in this Thread which was already clicked 1,111 times. The last Post () by msatter.

  • I am using since a while X-streamity and modified thing to be more to my liking and extend the capabilities of it.


    Thanks to Kiddac for creating X-streamity and it very structured to finding stuff is not that difficult.


    My latest modification is able to keep watching live while having started a instant recording of same live channel. Even if you have chosen for .m3u8 instead of .ts as output extension. What it does, when a instant recording is started while you watch the same channel, the current stream is terminated on start of the recording and new stream is started matching the way a recording is made.

    This way you keep watching live while the recording is made in background. You can change/stop the recording through the menu button and go to timers.


    Also what is added is the actual end time of the transmission so the recording will stop when the transmission is over. If no end time is found the the default recording duration will be one hour.


    Python: streamplayer.py
    instantRecordActive = False #### allows to instant record a channel


    The toggle and I shorted it now so that it won't change the servicetype

    Python: streamplayer.py
        def streamTypeFailed(self, data=None):
            if instantRecordActive == False: #### allow instant recording run uninterupted
                if str(self.servicetype) == "1":
                    self.servicetype = "4097"
                elif str(self.servicetype) == "4097":
                    self.servicetype = "1"
    
                self.streamcheck = 2
                self.playStream(self.servicetype, self.streamurl, self.direct_source)
            instantRecordActive = False


    IPTVstartInstantRecording proposed changes have been implemented in X-streamity 4.16 adding the actual end time of a recording instead of default one hour if EPG data is available.

    Edited 4 times, last by msatter: Updated code to make it more stable. One change added to the official version. ().

  • The next one is a adaptation to the download manager screen. When a Catch-up can be marked as to be recorded but the recording is in fact not present.


    This can happen because EPG and the actual recording have separate sources.


    Default this will be displayed as the recording being "0B" and changed that "File N/A". If the recording is restored with your provider then then this should be detected and then you can still get the recording.


    Python: downloadmanager.py
    def convert_size(size_bytes):
        if size_bytes == 0:
            return "File N/A"
            #return "0B" #### replaced by "File N/A" in the downloadmanager screen
        size_name = ("B", "KB", "MB", "GB", "TB")
        i = int(math.floor(math.log(size_bytes, 1024)))
        p = math.pow(1024, i)
        s = round(size_bytes / p, 2)
        return "%s %s" % (s, size_name[i])
  • This is the first step to enable EIT (Extended Information Table) file support also for Catch-up recordings.


    The first step is to put the short description taken form the EPG into the download2.json file so that it can be read by the download manager code.


    I have marked the changes as always with ####

  • Next step for the EIT file is to read it in downloadmanager.py and store it with the help of an external script named "EvenInformationTable.py" written by cmikula.


    This file is attached and has be copied to the X-streamity directory and after a restart of the box it should be active.


    This is a new code part and you can place it above "def createMetaFile(self, filename, filmtitle):" at the bottom of the downloadmanager.py code.


    The shown line numbers are indicative because in my files there also other changes that I will post at a later moment.

    Python: downloadmanager.py
    from Components.ActionMap import ActionMap
    from Components.Sources.List import List
    from Screens.MessageBox import MessageBox
    from Screens.Screen import Screen
    from enigma import eTimer, eServiceReference
    from requests.adapters import HTTPAdapter, Retry
    #### for writing the EIT file after downloading a Catch-up item
    from EvenInformationTable import writeEIT 

    The needed file: EvenInformationTable.py

  • When using the download manager and having more than one recording the marking the the recording is a bit tricky. When marking, and at the same time a screen update is being made, the selected recording is deselected and the just updated is being selected.


    This can lead to unexpected outcomes when wanting to apply changes by the user.


    So I changed the order of the lines in the download manager screen.


    The changed order is: note started / waiting / progress / last downloaded


    So the not stared are always at the top of the list and can so be started more easy without that it gets tricky. The downloaded lines are default automatically removed after successful download.


    disclaimer: the shown line number is an estimate because my code has more modifications than I already have written here. So more to come. :winking face:

  • This a small one and when selecting recording to be placed local so I can watch those in a time I want.


    The change is in the flow and it makes it easier to select more than one recording.

    I have marked the lines that are marked out now with #### and added the changed line underneath.


    If you by accident still want go to the download manager screen then you can select a other recording and the then select no, showing then the screen or you go the main menu where you can enter the download manager screen also.

KiddaC Skins and Plugins

KiddaC Enigma2 Picons, Plugins and Skins, includes slyk-1-HD, v-skin-HD, slyk-q-HD, slyk onyx skins, Bouquet Maker Xtream, E2Piconizer, IPTV Bouquet Maker, Jedi Maker Xtream, Jedi EPG Xtream, ScreenNames, Visual Weather and X Class, X-Streamity - Xtream Codes IPTV Player.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!