コード例 #1
0
    def _get_streams(self):
        url, params = parse_url_params(self.url)

        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme("http://", urlnoproto)

        return HDSStream.parse_manifest(self.session, urlnoproto, **params)
コード例 #2
0
ファイル: hds.py プロジェクト: justastranger/Twitchy
    def _get_streams(self):
        url, params = parse_url_params(self.url)

        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme("http://", urlnoproto)

        return HDSStream.parse_manifest(self.session, urlnoproto, **params)
コード例 #3
0
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(1)
        urlnoproto = update_scheme("http://", urlnoproto)

        log.debug("URL={0}; params={1}".format(urlnoproto, params))
        return {"live": AkamaiHDStream(self.session, urlnoproto, **params)}
コード例 #4
0
ファイル: akamaihd.py プロジェクト: justastranger/Twitchy
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(1)
        urlnoproto = update_scheme("http://", urlnoproto)

        self.logger.debug("URL={0}; params={1}", urlnoproto, params)
        return {"live": AkamaiHDStream(self.session, urlnoproto, **params)}
コード例 #5
0
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(1)
        urlnoproto = update_scheme("http://", urlnoproto)

        self.logger.debug("URL={0}; params={1}", urlnoproto, params)
        return {"live": HTTPStream(self.session, urlnoproto, **params)}
コード例 #6
0
ファイル: hlskeyuri.py プロジェクト: patrick-hudson/plugins
    def _get_streams(self):
        self.session.http.headers.update({'User-Agent': useragents.FIREFOX})
        log.debug('Version 2018-07-12')
        log.info('This is a custom plugin. '
                 'For support visit https://github.com/back-to/plugins')

        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme('http://', urlnoproto)

        streams = self.session.streams(urlnoproto, stream_types=['hls'])

        if not streams:
            log.debug('No stream found for hls-key-uri,'
                      ' stream is not available.')
            return

        stream = streams['best']
        urlnoproto = stream.url

        log.debug('URL={0}; params={1}', urlnoproto, params)
        streams = KeyUriHLSStream.parse_variant_playlist(
            self.session, urlnoproto, **params)
        if not streams:
            return {
                'live': KeyUriHLSStream(self.session, urlnoproto, **params)
            }
        else:
            return streams
コード例 #7
0
ファイル: rtmp.py プロジェクト: andromeda420/andromeda420
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        params["rtmp"] = url

        for boolkey in ("live", "realtime", "quiet", "verbose", "debug"):
            if boolkey in params:
                params[boolkey] = bool(params[boolkey])

        self.logger.debug("params={0}", params)
        return {"live": RTMPStream(self.session, params)}
コード例 #8
0
ファイル: hls.py プロジェクト: amadu80/repository.xvbmc
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme("http://", urlnoproto)

        self.logger.debug("URL={0}; params={1}", urlnoproto, params)
        streams = HLSStream.parse_variant_playlist(self.session, urlnoproto, **params)
        if not streams:
            return {"live": HLSStream(self.session, urlnoproto, **params)}
        else:
            return streams
コード例 #9
0
    def _get_streams(self):
        self.session.http.headers.update({'User-Agent': useragents.FIREFOX})
        log.debug('Version 2018-07-12')
        log.info('This is a custom plugin. '
                 'For support visit https://github.com/back-to/plugins')

        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme('http://', urlnoproto)

        if not hasattr(TempData, 'sequence_ignore_number'):
            TempData.sequence_ignore_number = (
                HLSSessionPlugin.get_option('ignore_number')
                or 0)

        if not hasattr(TempData, 'session_reload_segment'):
            TempData.session_reload_segment = (
                HLSSessionPlugin.get_option('segment')
                or False)
        if not hasattr(TempData, 'session_reload_segment_status'):
            TempData.session_reload_segment_status = False

        if not hasattr(TempData, 'session_reload_time'):
            TempData.session_reload_time = int(
                HLSSessionPlugin.get_option('time')
                or 0)

        if not hasattr(TempData, 'cached_data'):
            TempData.cached_data = {}
            # set a timestamp, if it was not set previously
            if not TempData.cached_data.get('timestamp'):
                TempData.cached_data.update({'timestamp': int(time())})

            TempData.cached_data.update({'stream_name': 'best'})
            TempData.cached_data.update({'url': urlnoproto})

        streams = self.session.streams(
            urlnoproto, stream_types=['hls'])

        if not streams:
            log.debug('No stream found for hls-session-reload,'
                      ' stream is not available.')
            return

        stream = streams['best']
        urlnoproto = stream.url

        self.logger.debug('URL={0}; params={1}', urlnoproto, params)
        streams = HLSSessionHLSStream.parse_variant_playlist(self.session, urlnoproto, **params)
        if not streams:
            return {'live': HLSSessionHLSStream(self.session, urlnoproto, **params)}
        else:
            return streams
コード例 #10
0
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(2)
        urlnoproto = update_scheme("http://", urlnoproto)

        log.debug("URL={0}; params={1}".format(urlnoproto, params))
        streams = HLSStream.parse_variant_playlist(self.session, urlnoproto,
                                                   **params)
        if not streams:
            return {"live": HLSStream(self.session, urlnoproto, **params)}
        else:
            return streams
コード例 #11
0
    def _get_streams(self):
        url, params = parse_url_params(self.url)
        urlnoproto = self._url_re.match(url).group(1)
        urlnoproto = update_scheme("http://", urlnoproto)

        self.logger.debug("Video URL: {}", urlnoproto)

        aurlnoproto = params.get("audio")
        aurlnoproto = update_scheme("http://", aurlnoproto)
        quality = params.get("quality", "unknown")

        self.logger.debug("Video Quality: {}", quality)
        self.logger.debug("Audio URL: {}", aurlnoproto)

        streams = {}
        streams[quality] = MuxedStream(self.session,
                                       HTTPStream(self.session, urlnoproto),
                                       HTTPStream(self.session, aurlnoproto))

        return streams
コード例 #12
0
ファイル: _remoteE2.py プロジェクト: angelo2507/eePlugins
    def _get_streams(self):
        if not '/web/zap' in self.url:
            log.info('URL to stream channel only, zapping not needed')
            return {"live": HTTPStream(self.session, self.url)}

        url, params = parse_url_params(self.url)
        zapURL = self.url.split('/http://')[0]
        streamURL = 'http://' + self.url.split('/http://')[1]
        mainURL = zapURL.split('/web/zap')[0]
        #https://dream.reichholf.net/wiki/Enigma2:WebInterface

        log.debug("URL={0}; params={1}", url, params)
        log.debug("zapURL: %s" % zapURL)
        log.debug("streamURL: %s" % streamURL)
        #sprawdzenie stanu tunera
        response = self.session.http.get(mainURL + '/web/powerstate')
        log.debug(response.text)
        if response.status_code != 200:
            return
        root = ET.fromstring(response.text)
        #budzenie tunera
        if root.tag == 'e2powerstate' and root[
                0].tag == 'e2instandby' and root[0].text.strip() == 'true':
            log.info('Tuner is sleeping, waking it up')
            response = self.session.http.get(mainURL +
                                             '/web/powerstate?newstate=4')
            log.info(response.text)
            if response.status_code != 200:
                log.info("ERROR waking up tuner")
                return
        #zap na kanal
        currChannel = 'unknown'
        response = self.session.http.get(mainURL + '/web/subservices')
        log.info(response.text)
        if response.status_code == 200:
            root = ET.fromstring(response.text)
            for child in root[0]:
                if child.tag == 'e2servicereference':
                    currChannel = child.text.strip()
                    if currChannel[-1:] == ':':
                        currChannel = currChannel[:-1]
                    break
        else:
            return
        if currChannel in zapURL and currChannel != 'unknown':
            log.info(
                'Tuner already on correct channel (%s), zapping not needed' %
                currChannel)
        else:
            log.info('Zapping from %s to %s' %
                     (currChannel, zapURL.split('Ref=')[1]))
            response = self.session.http.get(zapURL)
            if response.status_code == 200:
                log.debug("Successful ZAP to '%s'" % zapURL)
            else:
                log.info("ERROR ZAPPING to '%s'\n\t Response: %s" %
                         (zapURL, response.status_code))
                return
        #wylaczenie tunera?
        #strumieniowanie
        time.sleep(1)
        return {"live": HTTPStream(self.session, streamURL, **params)}