import json import requests import pandas as pd from pandas import DataFrame from pprint import pprint import datetime # get all playlists taken from Apollo into a list import csv with open('apollo_playlists.csv', 'rb') as f: reader = csv.reader(f) all_playlists = list(reader) all_playlists.pop(0) print len(all_playlists), "playlists checked" # set Spotify API token auth = "Bearer " + "BQAmZqSH9Y6dkvbI2Vvesp-LdLwbOaGWOTGmuNpJ7MxJsK3Lshnjb1PYI-CWAQnijERAyLwt9RshEqDxNw06yEpLYc8BKyAC5apmjnCsKK2nU4d1EtoDl4QBHdpegBLVKYIl_4GnQrlk5Q" playlists_followers = [] now = datetime.datetime.now() print now max_diff = datetime.timedelta(days=2) for playlist in all_playlists: p = [] p_id = playlist[1] #print p_id p.append(p_id) p_name = playlist[2] #print p_name p.append(p_name) user = playlist[3] #print user p.append(user) response = requests.get('https://api.spotify.com/v1/users/' + user + '/playlists/{}'.format(p_id), headers={"Authorization": auth}) t_data = response.json() #print t_data.get("error").get("status") if t_data.get("error"): if t_data.get("error").get("status") == 404: print "Something went wrong." continue elif t_data.get("error").get("status") == 401 or 403: print "key error" break else: followers = t_data.get("followers").get("total") print "followers", followers p.append(followers) print p playlists_followers.append(p) playlist_df = DataFrame.from_records(playlists_followers, columns=['ID','PLAYLIST','USER','FOLLOWERS']) playlist_df.sort_values(by=['FOLLOWERS'], ascending = False) print playlist_df[:50] print playlist_df.shape[0] playlist_df.to_csv('apollo_playlists_followers.csv')