from boto.s3.bucket import Bucket from boto.s3.connection import S3Connection from boto.s3.key import Key import spotipy import json def get_content(start='20150906', end='20150912', country='US', genre='all', hydrate=True): s3conn = S3Connection() bucketname = 'dev-hackathon' keyname_format = '/hotness/charts/{start}-{end}-{country}-{genre}.json' keyname = keyname_format.format( start=start, end=end, country=country, genre=genre ) bucket = Bucket(s3conn, bucketname) key = Key(bucket, keyname) data = json.loads(key.get_contents_as_string().decode('UTF-8')) if not hydrate: return data track_list = [] for track in data: track_id = track['track_uri'].replace("spotify:track:", "") track_list.append(track_id) sp = spotipy.Spotify() max_tracks_per_call = 50 results = [] for start in range(0, len(track_list), max_tracks_per_call): result = sp.tracks(track_list[start: start + max_tracks_per_call]) for i, row in enumerate(result['tracks']): data[start + i]['spotify_data'] = row return data