Esempio n. 1
0
    def UpdateVideoItem(self, item):
        """
        Accepts an item. It returns an updated item. Usually retrieves the MediaURL
        and the Thumb! It should return a completed item.
        """
        Logger.Debug('Starting UpdateVideoItem for %s (%s)', item.name,
                     self.channelName)

        data = UriHandler.Open(item.url,
                               proxy=self.proxy).decode('unicode_escape')
        streams = Regexer.DoRegex("file:\W+'([^']+)'", data)
        part = item.CreateNewEmptyMediaPart()
        for s in streams:
            if "anifest" in s:
                continue
            s = JsonHelper.ConvertSpecialChars(s)
            if s.startswith("rtmp"):
                s = self.GetVerifiableVideoUrl(s)
                part.AppendMediaStream(s, 1001)
                part.AppendMediaStream(s.replace("_medium.mp4", "_low.mp4"),
                                       301)
            else:
                part.AppendMediaStream(s, 1002)
                part.AppendMediaStream(s.replace("_medium.mp4", "_low.mp4"),
                                       302)

        item.complete = True
        return item
Esempio n. 2
0
    def __ConvertJsonSubtitleToSrt(jsonSubtitle):
        """Converts Json Subtitle format into SRT format:

        Arguments:
        jsonSubtitle : string - Json Subtitle subtitle format

        Returns:
        SRT formatted subtitle:

        Example:
            {"startMillis":80,"endMillis":4170,"text":"Ett Kanal 5:\nAlla gonblick i \"100 jdare!!!\"?","posX":0.5,"posY":0.9,"colorR":220,"colorG":220,"colorB":220}

        Returns
            1
            00:00:20,000 --> 00:00:24,400
            text

        The format of the timecode is Hours:Minutes:Seconds:Ticks where a "Tick"
        is a value of between 0 and 249 and lasts 4 milliseconds.

        """

        regex = '"startMillis":(\d+),"endMillis":(\d+),"text":"(.+?)(?=["] *,)'
        subs = Regexer.DoRegex(regex, jsonSubtitle)

        # Init some stuff
        srt = ""
        i = 1

        for sub in subs:
            try:
                # print sub
                start = SubtitleHelper.__ConvertToTime(sub[0])
                end = SubtitleHelper.__ConvertToTime(sub[1])

                text = sub[2].replace('\"', '"')
                text = JsonHelper.ConvertSpecialChars(text)
                text = HtmlEntityHelper.ConvertHTMLEntities(text)
                srt = "%s\n%s\n%s --> %s\n%s\n" % (srt, i, start, end, text.strip())
                i += 1
            except:
                Logger.Error("Error parsing subtitle: %s", sub, exc_info=True)

        return srt