def playlist(plid): ilist = cache.get(youtube.youtube(key=key).playlist, 12, plid) if ilist is None: return for i in ilist: i.update({'action': 'play', 'isFolder': 'False'}) for item in ilist: bookmark = dict((k, v) for k, v in item.iteritems() if not k == 'next') bookmark['bookmark'] = item['url'] bm_cm = { 'title': 30006, 'query': { 'action': 'addBookmark', 'url': json.dumps(bookmark) } } refresh = {'title': 30008, 'query': {'action': 'refresh'}} cache_clear = {'title': 30005, 'query': {'action': 'cache_clear'}} item.update({'cm': [refresh, cache_clear, bm_cm]}) directory.add(ilist, content='videos')
def archive(self): self.list = cache.get( youtube.youtube(key=self.yt_key).playlists, 12, self.yt_channel) if self.list is None: return for i in self.list: i['title'] = client.replaceHTMLCodes(i['title']) i.update({'action': 'episodes'}) bookmark = dict((k, v) for k, v in iteritems(i) if not k == 'next') bookmark['bookmark'] = i['url'] i.update({ 'cm': [{ 'title': 32501, 'query': { 'action': 'addBookmark', 'url': json.dumps(bookmark) } }] }) control.sortmethods('title') directory.add(self.list, content='videos')
def techno_choices(self, url): self.list = cache.get(youtube.youtube(key=thgiliwt(api_keys['api_key']), replace_url=replace_url).playlist, 12, url) if self.list is None: return for i in self.list: i['label'] = i.pop('title') # process stupid descriptions/comments put up by uploaders on labels i['label'] = re.sub(r'PREMIERE ?:|\(full version\)\.mp4|\(?(?:Un)?Official.*\)? ?(?:HD)?|\[?HD (?:108|72)0p\]?', '', i['label'], flags=re.IGNORECASE) for count, i in list(enumerate(self.list, start=1)): if '–' in i['label']: sep = '–' elif ':' in i['label'] and not '-' in i['label']: sep = ':' elif '-' in i['label']: sep = '-' else: sep = ' ' artist, separator, title = i['label'].partition(sep) if '&' in artist: artists_separator = '&' elif ',' in artist: artists_separator = ',' elif 'feat.' in artist: artists_separator = 'feat.' elif 'feat' in artist: artists_separator = 'feat' elif 'Feat' in artist: artists_separator = 'Feat' else: artists_separator = None if artists_separator: artist = [a.strip() for a in artist.split(artists_separator)] on_label = ' / '.join(artist) else: on_label = artist.strip() artist = [artist.strip()] i.update( { 'action': 'play', 'isFolder': 'False', 'title': title, 'label': ' '.join([on_label, separator , title]), 'album': control.lang(30292), 'fanart': 'https://i.ytimg.com/vi/vtjL9IeowUs/maxresdefault.jpg', 'tracknumber': count, 'count': count, 'artist': artist } ) if control.setting('audio_only') == 'true' and control.condVisibility('Window.IsVisible(music)'): i['artist'] = on_label control.sortmethods('tracknum', mask='%A') directory.add(self.list, content=self.content, infotype=self.infotype, argv=self.argv)
def yt_playlist(self, pid): self.list = youtube.youtube(key=self.key).playlist(pid, limit=10) for item in self.list: item.update({'action': 'play', 'isFolder': 'False'}) return self.list
def videos(link): if link == 'mgtow': if control.setting('language') == '0' and control.infoLabel( 'System.Language') == 'Greek': video_list = cache.get(item_list, 12, gr_id2) + cache.get( item_list, 12, gr_id3) + cache.get( youtube.youtube(key=key).playlist, 12, gr_id1) elif control.setting('language') == '0' and control.infoLabel( 'System.Language') != 'Greek' or control.setting( 'language') == '1': video_list = cache.get(item_list, 12, en_id1) + cache.get( item_list, 12, en_id2) else: video_list = cache.get(item_list, 12, gr_id2) + cache.get( item_list, 12, gr_id3) + cache.get( youtube.youtube(key=key).playlist, 12, gr_id1) else: video_list = cache.get(item_list, 12, link) for v in video_list: v.update({'action': 'play', 'isFolder': 'False'}) for item in video_list: bookmark = dict((k, v) for k, v in item.iteritems() if not k == 'next') bookmark['bookmark'] = item['url'] bm_cm = { 'title': 30006, 'query': { 'action': 'addBookmark', 'url': json.dumps(bookmark) } } refresh = {'title': 30008, 'query': {'action': 'refresh'}} cache_clear = {'title': 30005, 'query': {'action': 'cache_clear'}} item.update({'cm': [refresh, cache_clear, bm_cm]}) directory.add(video_list, content='videos')
def latest(self): self.list = cache.get( youtube.youtube(key=self.yt_key).videos, 1, self.yt_channel, False, 2) if self.list is None: return self.list = [i for i in self.list if int(i['duration']) > 60] for i in self.list: i.update({'action': 'play', 'isFolder': 'False'}) directory.add(self.list)
def yt_playlist_getter(pid): if 'playlist?list=' in pid: pid = pid.partition('list=')[2] yt_list = youtube.youtube(key='AIzaSyA8k1OyLGf03HBNl0byD511jr9cFWo2GR4', replace_url=False).playlist(pid) if not yt_list: return for count, i in enumerate(yt_list, start=1): i.update({'action': 'play', 'isFolder': 'False', 'code': count}) return yt_list
def mgreekz_list(self, url): self.list = cache.get(youtube.youtube(key=thgiliwt(api_keys['api_key']), replace_url=replace_url).playlist, 12, url) if self.list is None: return for i in self.list: i.update( { 'action': 'play', 'isFolder': 'False', } ) directory.add(self.list, content=self.content, infotype=self.infotype, argv=self.argv)
def episodes(self, url): if self.base_link in url: self.list = cache.get(self.episodes_listing, 3, url) elif self.radio_base in url: self.list = cache.get(self.pod_episodes, 3, url) else: self.list = cache.get( youtube.youtube(key=self.yt_key).playlist, 3, url) if self.list is None: return for i in self.list: i.update({'action': 'play', 'isFolder': 'False'}) directory.add(self.list, content='videos')
def mgreekz_index(self): self.data = cache.get(youtube.youtube(key=thgiliwt(api_keys['api_key']), replace_url=replace_url).playlists, 48, self.mgreekz_id) for i in self.data: i.update( { 'action': 'mgreekz_list', 'fanart': control.addonmedia( addonid=art_id, theme='networks', icon='mgz_fanart.jpg', media_subfolder=False ) } ) for item in self.data: bookmark = dict((k, v) for k, v in iteritems(item) if not k == 'next') bookmark['bookmark'] = item['url'] bookmark_cm = {'title': 30080, 'query': {'action': 'addBookmark', 'url': json.dumps(bookmark)}} item.update({'cm': [bookmark_cm]}) self.list = sorted(self.data, key=lambda k: k['title'].lower()) directory.add(self.list, argv=self.argv)
def yt_playlists(self): return youtube.youtube(key=self.yt_key).playlists(self.yt_channel)
def yt_playlist(self, url): return youtube.youtube(key=self.yt_key).playlist(url)
def pseudo_live(url): _url = url if 'youtube' in url: url = url.rpartition('/')[2] elif url.endswith('fifties'): url = '{0}movies.php?y=7&l=&g=&p='.format(GM_BASE) elif url.endswith('sixties'): url = '{0}movies.php?y=6&l=&g=&p='.format(GM_BASE) elif url.endswith('seventies'): url = '{0}movies.php?y=5&l=&g=&p='.format(GM_BASE) elif url.endswith('eighties'): url = '{0}movies.php?y=4&l=&g=&p='.format(GM_BASE) else: url = '{0}movies.php?g=8&y=&l=&p='.format(GM_BASE) if 'channel' in _url: movie_list = tulip_youtube.youtube(key=api_keys()['api_key'], replace_url=False).videos(url, limit=10) elif 'playlist' in _url: movie_list = tulip_youtube.youtube(key=api_keys()['api_key'], replace_url=False).playlist( url, limit=10) else: movie_list = gm_indexer().listing(url, get_listing=True) if 'youtube' in _url: movie_list = [i for i in movie_list if i['duration'] >= 240] if not _url.endswith('kids') and 'youtube' not in _url: if CACHE_DEBUG: bl_urls = blacklister() else: bl_urls = cache.get(blacklister, 96) movie_list = [i for i in movie_list if i['url'] not in bl_urls] for i in movie_list: i.update({'action': 'play_skipped', 'isFolder': 'False'}) plot = None if control.setting('pseudo_live_mode') == '0': choice = random_choice(movie_list) meta = {'title': choice['title'], 'image': choice['image']} if 'youtube' not in _url: if CACHE_DEBUG: plot = source_maker(choice['url']).get('plot') else: plot = cache.get(source_maker, 6, choice['url']).get('plot') if plot: meta.update({'plot': plot}) player(choice['url'], meta) else: shuffle(movie_list) directory.add(movie_list, as_playlist=True, auto_play=True)
def yt_videos(self): return youtube.youtube(key=self.key).videos(self.main_youtube_id, limit=10)
def yt_videos(self, url): return youtube.youtube(key=self.yt_key).videos(url)
def yt_playlist(url): return youtube.youtube(key=key).playlist(url, limit=10)
def yt_playlists(): return youtube.youtube(key=key).playlists(channel_id())
def yt_videos(): return youtube.youtube(key=key).videos(channel_id(), limit=2)
def yt_videos(self): return youtube.youtube(key=self.yt_key).videos(self.yt_channel, limit=2)
def yt_videos(): return youtube.youtube(key=b64decode(key)).videos(cid)
def yt_playlists(cid): return youtube.youtube(key=key).playlists(cid)
def item_list(cid): return youtube.youtube(key=key).videos(cid)