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
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
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
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
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
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