예제 #1
0
 def getLinksForVideo(self, cItem):
     printDBG("TVJWORG.getLinksForVideo [%s]" % cItem)
     urlTab = []
     
     try:
         tmpTab = cItem.get('files', [])
         for item in tmpTab:
             try:
                 linkVideo = item['progressiveDownloadURL']
                 linkVideo = urlparser.decorateUrl(linkVideo, {'Referer': 'http://tv.jw.org/'})
                 urlTab.append({'name':item['label'], 'url': linkVideo, 'need_resolve':0})
             except Exception:
                 printExc()
             
         if 1 < len(urlTab):
             error = False
             max_bitrate = int(config.plugins.iptvplayer.tvjworg_default_format.value)
             def __getLinkQuality( itemLink ):
                 try: 
                     return int(itemLink['name'][0:-1])
                 except Exception:
                     error = True
                     return 0
             oneLink = CSelOneLink(urlTab, __getLinkQuality, max_bitrate)
             if not error and config.plugins.iptvplayer.tvjworg_use_df.value:
                 urlTab = oneLink.getOneLink()
             else:
                 urlTab = oneLink.getSortedLinks()
     except Exception:
         printExc()
     
     return urlTab
예제 #2
0
 def getLinksForVideo(self, cItem):
     printDBG("TVJWORG.getLinksForVideo [%s]" % cItem)
     urlTab = []
     
     try:
         tmpTab = cItem.get('files', [])
         for item in tmpTab:
             try:
                 linkVideo = item['progressiveDownloadURL']
                 linkVideo = urlparser.decorateUrl(linkVideo, {'Referer': 'http://tv.jw.org/'})
                 urlTab.append({'name':item['label'], 'url': linkVideo, 'need_resolve':0})
             except:
                 printExc()
             
         if 1 < len(urlTab):
             error = False
             max_bitrate = int(config.plugins.iptvplayer.tvjworg_default_format.value)
             def __getLinkQuality( itemLink ):
                 try: 
                     return int(itemLink['name'][0:-1])
                 except:
                     error = True
                     return 0
             oneLink = CSelOneLink(urlTab, __getLinkQuality, max_bitrate)
             if not error and config.plugins.iptvplayer.tvjworg_use_df.value:
                 urlTab = oneLink.getOneLink()
             else:
                 urlTab = oneLink.getSortedLinks()
     except:
         printExc()
     
     return urlTab
 def getVideoLinks(self, videoUrl):
     printDBG("FilmovizijaStudio.getVideoLinks [%s]" % videoUrl)
     urlTab = []
     if 'filmovizija.studi' in videoUrl:
         sts, data = self.getPage(videoUrl)
         if not sts: return []
         printDBG(data)
         
         sub_tracks = []
         subData = self.cm.ph.getDataBeetwenMarkers(data, 'tracks:', ']', False)[1].split('}')
         for item in subData:
             if 'captions' in item:
                 label   = self.cm.ph.getSearchGroups(item, '''label:[ ]*?["']([^"^']+?)["']''')[0]
                 src     = self.cm.ph.getSearchGroups(item, '''file:[ ]*?["']([^"^']+?)["']''')[0]
                 if not src.startswith('http'): continue
                 sub_tracks.append({'title':label, 'url':src, 'lang':label, 'format':'srt'})
         
         linksTab = self.up.pp._findLinks(data, serverName='')
         for idx in range(len(linksTab)):
             name = linksTab[idx]['url']
             url  = urlparser.decorateUrl(linksTab[idx]['url'], {'external_sub_tracks':sub_tracks})
             urlTab.append({'name':name, 'url':url, 'need_resolve':0})
         
         if 0 == len(urlTab):
             videoUrl = self.cm.ph.getSearchGroups(data, '<iframe[^>]+?src="([^"]+?)"', 1, True)[0]
         
     if videoUrl.startswith('http'):
         urlTab.extend(self.up.getVideoLinkExt(videoUrl))
     return urlTab
예제 #4
0
 def getLinksForVideo(self, cItem):
     printDBG("SemBilheteTV.getLinksForVideo [%s]" % cItem)
     urlTab = []
     if 0 == len(self.loginData['api_key']) and 0 == len(self.loginData['username']):
         self.requestLoginData()
     
     if 'imdb_id' in cItem:
         url = 'content/request/%s/?api_key=%s&username=%s' % (cItem['imdb_id'], self.loginData['api_key'], self.loginData['username'])
         url = self._getFullUrl(url)
         sts, data = self.cm.getPage(url)
         if not sts: return []
         try:
             printDBG(data)
             data = byteify(json.loads(data))
             linkVideo = data['url']
             if not linkVideo.startswith('http'):
                 SetIPTVPlayerLastHostError(self.cleanHtmlStr(url))
                 return []
             subTracks = []
             for track in data.get('subtitles', []):
                 subUrl = self._getFullUrl(track['url'], False)
                 subLang = track['language']
                 subTracks.append({'title':subLang, 'url':subUrl, 'lang':subLang, 'format':'srt'})
             
             urlTab.append({'name': 'main', 'url':urlparser.decorateUrl(linkVideo, {'external_sub_tracks':subTracks}), 'need_resolve':1})
         except:
             printExc()
     
     return urlTab
예제 #5
0
    def getVideoLinks(self, videoUrl):
        urlTab = []
        for key in self.cacheLinks:
            for idx in range(len(self.cacheLinks[key])):
                if self.cacheLinks[key][idx]['url'] == videoUrl:
                    self.cacheLinks[key][idx][
                        'name'] = '*' + self.cacheLinks[key][idx]['name']
        if videoUrl.startswith('id=') or videoUrl.startswith('redirect='):
            sts, data = self.getPage(self.getFullUrl('/morgan.php'),
                                     {'raw_post_data': True}, videoUrl)
            if not sts:
                return []
            printDBG(data)
            videoUrl = data
        tries = 0

        while tries < 3 and 'filmovizija.' in videoUrl:
            tries += 1
            sts, data = self.getPage(videoUrl)
            if not sts:
                return []
            printDBG(data)
            sub_tracks = []
            subData = self.cm.ph.getDataBeetwenMarkers(data, 'tracks:', ']',
                                                       False)[1].split('}')
            for item in subData:
                if 'captions' in item:
                    label = self.cm.ph.getSearchGroups(
                        item, 'label:[ ]*?["\']([^"^\']+?)["\']')[0]
                    src = self.cm.ph.getSearchGroups(
                        item, 'file:[ ]*?["\']([^"^\']+?)["\']')[0]
                    if not src.startswith('http'):
                        continue
                    sub_tracks.append({
                        'title': label,
                        'url': self._getFullUrl(src),
                        'lang': label,
                        'format': 'srt'
                    })
            linksTab = self.up.pp._findLinks(data, serverName='')
            for idx in range(len(linksTab)):
                url = self._getFullUrl(linksTab[idx]['url'])
                name = url
                url = urlparser.decorateUrl(
                    url, {'external_sub_tracks': sub_tracks})
                urlTab.append({'name': name, 'url': url, 'need_resolve': 0})
            if 0 == len(urlTab):
                videoUrl = self._getFullUrl(
                    self.cm.ph.getSearchGroups(data,
                                               '<iframe[^>]+?src="([^"]+?)"',
                                               1, True)[0])
                if videoUrl == '':
                    videoUrl = self._getFullUrl(
                        self.cm.ph.getSearchGroups(
                            data, '\\.load\\(\\s*?"([^"]+?)"', 1, True)[0])
        if videoUrl != '':
            urlTab.extend(self.up.getVideoLinkExt(videoUrl))

            return urlTab
예제 #6
0
 def getVideoLinks(self, baseUrl):
     printDBG("SemBilheteTV.getVideoLinks [%s]" % baseUrl)
     urlTab = []
     url = strwithmeta(baseUrl)
     if url.startswith('http'): 
         subTracks = url.meta.get('external_sub_tracks', [])
         tmp = self.up.getVideoLinkExt(url)
         if len(subTracks):
             for item in tmp:
                 item['url'] = urlparser.decorateUrl(item['url'], {'external_sub_tracks':subTracks})
                 urlTab.append(item)
         else:
             urlTab = tmp
     return urlTab
예제 #7
0
 def getResolvedURL(self, url):
     linkTab = getDirectM3U8Playlist(url, False)
     for idx in range(len(linkTab)):
         linkTab[idx]['url'] = urlparser.decorateUrl(linkTab[idx]['url'], {'iptv_proto':'m3u8'})
     return linkTab