def start(room_id): try: room = Room(room_id) except NonexistentError: abort(404) if (room.num_members() == 0): # Do something better like returning some json abort(400) try: me = User() except APIError: abort(500) except UnauthorizedError: return redirect(url_for('login', next=request.url)) liked_artists = room.artist_counts() updater = [] for artist in liked_artists: count = liked_artists[artist] item = {'item': {'item_id': artist, 'artist_id': 'facebook:artist:' + artist, 'play_count': count}} updater.append(item) cat = room.seed_catalog() ticket = cat.update(updater) while True: status = cat.status(ticket) if status['ticket_status'] == 'complete': break time.sleep(0.1) pl = room.playlist(generate=True) pl.get_next_songs(results='0', lookahead='1') song = pl.get_lookahead_songs()[0] track = song.get_tracks('rdio-US')[0] rdio_id = track['foreign_id'].split(':')[-1] return json.dumps({'song_id': song.id, 'rdio_id': rdio_id, 'artist': song.artist_name, 'title': song.title})