import json import urllib import urllib2 import time """ Nike plus activity log https://developer.nike.com Output: -- May -- Sun 05/26/13 : 5.59 miles 1:02:20 (11'10/mi) Fri 05/24/13 : 4.01 miles 0:37:40 (9'24/mi) Wed 05/22/13 : 6.17 miles 1:01:12 (9'55/mi) """ ACCESS_TOKEN = 'YOUR ACCESS TOKEN HERE' base_url = 'https://api.nike.com' url = '/me/sport/activities?access_token=%s' % ACCESS_TOKEN headers = {'appid':'fuelband', 'Accept':'application/json'} # weird required headers, blah. current_month = None while url: req = urllib2.Request('%s%s' % (base_url, url), None, headers) r = urllib2.urlopen(req) resp = json.loads(r.read()) r.close() if resp.get('data'): for activity in resp.get('data'): # 2013-05-26T14:48:42Z start_time = time.strptime(activity.get('startTime'), '%Y-%m-%dT%H:%M:%SZ') date = time.strftime('%a %m/%d/%y', start_time) month = time.strftime('%B', start_time) if month != current_month: current_month = month print '' print '--', current_month, '--' metrics = activity.get('metricSummary') # convert from km to mi and round miles = metrics.get('distance') * 0.621371 distance = '%.2f' % round(miles, 2) # remove milliseconds duration = metrics.get('duration').partition('.')[0] pace = '' sp = duration.split(':') if (len(sp) == 3): duration_seconds = int(sp[0]) * 60 * 60 + int(sp[1]) * 60 + int(sp[2]) seconds_per_mile = duration_seconds / miles hours, remainder = divmod(seconds_per_mile, 3600) minutes, seconds = divmod(remainder, 60) pace = '(%.0f\'%02.0f/mi)' % (minutes, seconds) print date, ':', distance, 'miles', duration, pace # pagination url = None if resp.get('paging') and resp.get('paging').get('next'): url = resp.get('paging').get('next')