def get_tracks(self, feed): """Get a generator of tracks from a SC user The generator will give you a dictionary for every track it can find for its user.""" global CONSUMER_KEY json_url = 'http://api.soundcloud.com/users/%(user)s/%(feed)s.json?' \ 'filter=downloadable&consumer_key=%(consumer_key)s' \ % {"user": self.username, "feed": feed, "consumer_key": CONSUMER_KEY} tracks = (track for track in util.read_json(json_url) if track['downloadable']) for track in tracks: # Prefer stream URL (MP3), fallback to download URL url = track.get('stream_url', track['download_url']) + \ '?consumer_key=%(consumer_key)s' % {'consumer_key': CONSUMER_KEY} filesize, filetype, filename = get_metadata(url) yield { 'title': track.get('title', track.get('permalink')) or 'Unknown track', 'link': track.get('permalink_url') or 'http://soundcloud.com/'+self.username, 'description': track.get('description') or 'No description available', 'url': url, 'file_size': int(filesize), 'mime_type': filetype, 'guid': track.get('permalink', track.get('id')), 'published': soundcloud_parsedate(track.get('created_at', None)), }
def on_search(self, query): json_url = 'http://api.soundcloud.com/users.json?q=%s&consumer_key=%s' % ( urllib.parse.quote(query), CONSUMER_KEY) return [ directory.DirectoryEntry(entry['username'], entry['permalink_url']) for entry in util.read_json(json_url) ]
def get_urls(data_config_url): data_config = util.read_json(data_config_url) for fileinfo in data_config['request']['files'].values(): if not isinstance(fileinfo, list): continue for item in fileinfo: yield (item['quality'], item['url'])
def get_urls(data_config_url): data_config = util.read_json(data_config_url) for fileinfo in data_config['request']['files'].values(): if not isinstance(fileinfo, list): continue for item in fileinfo: yield (item['quality'], item['url'])
def get_coverart(self): global CONSUMER_KEY json_url = 'http://api.soundcloud.com/users/%s.json?consumer_key=%s' %\ (self.username, CONSUMER_KEY) user_info = util.read_json(json_url) image = user_info.get('avatar_url', None) return image
def get_coverart(self): global CONSUMER_KEY json_url = 'http://api.soundcloud.com/users/%s.json?consumer_key=%s' %\ (self.username, CONSUMER_KEY) user_info = util.read_json(json_url) image = user_info.get('avatar_url', None) return image
def get_urls(data_config_url): data_config = util.read_json(data_config_url) for fileinfo in data_config['request']['files'].values(): if not isinstance(fileinfo, dict): continue for fileformat, keys in fileinfo.items(): if not isinstance(keys, dict): continue yield (fileformat, keys['url'])
def on_search(self, query): url = 'http://gdata.youtube.com/feeds/api/videos?alt=json&q=%s' % urllib.parse.quote(query) data = util.read_json(url) result = [] seen_users = set() for entry in data['feed']['entry']: user = os.path.basename(entry['author'][0]['uri']['$t']) title = entry['title']['$t'] url = 'http://www.youtube.com/rss/user/%s/videos.rss' % user if user not in seen_users: result.append(directory.DirectoryEntry(user, url)) seen_users.add(user) return result
def on_search(self, query): url = 'http://gdata.youtube.com/feeds/api/videos?alt=json&q=%s' % urllib.parse.quote(query) data = util.read_json(url) result = [] seen_users = set() for entry in data['feed']['entry']: user = os.path.basename(entry['author'][0]['uri']['$t']) title = entry['title']['$t'] url = 'http://www.youtube.com/rss/user/%s/videos.rss' % user if user not in seen_users: result.append(directory.DirectoryEntry(user, url)) seen_users.add(user) return result
def get_tracks(self, feed): """Get a generator of tracks from a SC user The generator will give you a dictionary for every track it can find for its user.""" global CONSUMER_KEY json_url = 'http://api.soundcloud.com/users/%(user)s/%(feed)s.json?' \ 'filter=downloadable&consumer_key=%(consumer_key)s' \ % {"user": self.username, "feed": feed, "consumer_key": CONSUMER_KEY} tracks = (track for track in util.read_json(json_url) if track['downloadable']) for track in tracks: # Prefer stream URL (MP3), fallback to download URL url = track.get('stream_url', track['download_url']) + \ '?consumer_key=%(consumer_key)s' % {'consumer_key': CONSUMER_KEY} filesize, filetype, filename = get_metadata(url) yield { 'title': track.get('title', track.get('permalink')) or 'Unknown track', 'link': track.get('permalink_url') or 'http://soundcloud.com/' + self.username, 'description': track.get('description') or 'No description available', 'url': url, 'file_size': int(filesize), 'mime_type': filetype, 'guid': track.get('permalink', track.get('id')), 'published': soundcloud_parsedate(track.get('created_at', None)), }
def directory_entry_from_mygpo_json(url): return [ DirectoryEntry(d['title'], d['url'], d['logo_url'], d['subscribers'], d['description']) for d in util.read_json(url) ]
def on_search(self, query): json_url = 'http://api.soundcloud.com/users.json?q=%s&consumer_key=%s' % (urllib.parse.quote(query), CONSUMER_KEY) return [directory.DirectoryEntry(entry['username'], entry['permalink_url']) for entry in util.read_json(json_url)]
def directory_entry_from_mygpo_json(url): return [ DirectoryEntry(d["title"], d["url"], d["logo_url"], d["subscribers"], d["description"]) for d in util.read_json(url) ]