From 366b65dd15f23430a0407c812078044aa16b4e27 Mon Sep 17 00:00:00 2001 From: TheTedLab <71270225+TheTedLab@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:19:34 +0300 Subject: [PATCH 1/3] Update aggregator Add 401 and 429 error handlers and timeouts Add some logging --- src/aggregator/aggregator.py | 136 +++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 7 deletions(-) diff --git a/src/aggregator/aggregator.py b/src/aggregator/aggregator.py index f26de40..7b959e0 100644 --- a/src/aggregator/aggregator.py +++ b/src/aggregator/aggregator.py @@ -15,10 +15,9 @@ def main(): - print(f' [T] Time: {datetime.datetime.now()}') - timeout = 0.5 + timeout = 2 request_count = 0 @@ -29,7 +28,7 @@ def main(): with open(f'resources/artists-ids-list.json', 'r', encoding='utf-8') as file: artists_ids = json.load(file) - for artist_id in artists_ids[10392:10393]: + for artist_id in artists_ids[773:1001]: # 1 request response = requests.get( f'https://api.spotify.com/v1/artists/{artist_id}', @@ -39,7 +38,6 @@ def main(): request_count += 1 print(f" [*] Request {request_count} - {response.status_code}]") - print(response.status_code) if response.status_code != 200: print('Token expired!') # 2 request (potential) @@ -63,6 +61,7 @@ def main(): print(f" [*] Request {request_count} - {response.status_code}]") artist_info_data = response.json() + print(f"Artist ID: {artist_info_data.get('id')}") print(f"Artist Name: {artist_info_data.get('name')}") print(f"Artist Popularity: {artist_info_data.get('popularity')}") print(f"Artist Genres: {artist_info_data.get('genres')}") @@ -115,6 +114,28 @@ def main(): request_count += 1 print(f" [*] Request {request_count} - {response.status_code}]") + if response.status_code != 200: + print('Token expired!') + + response = requests.post( + 'https://accounts.spotify.com/api/token', + data=token_data + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + + headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" + + response = requests.get( + f'https://api.spotify.com/v1/artists/{artist_id}/albums', + params=album_params, + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + artist_albums_ids = list() artist_albums = response.json().get('items') for album in artist_albums: @@ -132,6 +153,28 @@ def main(): request_count += 1 print(f" [*] Request {request_count} - {response.status_code}]") + if response.status_code != 200: + print('Token expired!') + + response = requests.post( + 'https://accounts.spotify.com/api/token', + data=token_data + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + + headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" + + response = requests.get( + f'https://api.spotify.com/v1/artists/{artist_id}/albums', + params=album_params, + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + artist_albums = response.json().get('items') for album in artist_albums: artist_albums_ids.append(album.get('id')) @@ -159,6 +202,28 @@ def main(): request_count += 1 print(f" [*] Request {request_count} - {response.status_code}]") + if response.status_code != 200: + print('Token expired!') + + response = requests.post( + 'https://accounts.spotify.com/api/token', + data=token_data + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + + headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" + + response = requests.get( + 'https://api.spotify.com/v1/albums', + params=several_albums_params, + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print(f" [*] Request {request_count} - {response.status_code}]") + album_data = response.json().get('albums') for album in album_data: print() @@ -228,7 +293,33 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print( + f" [*] Request {request_count} - {response.status_code}]") + + if response.status_code != 200: + print('Token expired!') + + response = requests.post( + 'https://accounts.spotify.com/api/token', + data=token_data + ) + time.sleep(timeout) + request_count += 1 + print( + f" [*] Request {request_count} - {response.status_code}]") + + headers[ + 'Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" + + response = requests.get( + 'https://api.spotify.com/v1/tracks', + params=several_tracks_params, + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print( + f" [*] Request {request_count} - {response.status_code}]") tracks_data = response.json().get('tracks') for track_obj in tracks_data: @@ -252,12 +343,43 @@ def main(): params=several_features_params, headers=headers ) - time.sleep(timeout) + time.sleep(timeout + 1) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print( + f" [*] Request {request_count} - {response.status_code}]") + + if response.status_code != 200: + print('Token expired!') + + response = requests.post( + 'https://accounts.spotify.com/api/token', + data=token_data + ) + time.sleep(timeout) + request_count += 1 + print( + f" [*] Request {request_count} - {response.status_code}]") + + headers[ + 'Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" + + response = requests.get( + 'https://api.spotify.com/v1/audio-features', + params=several_features_params, + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print( + f" [*] Request {request_count} - {response.status_code}]") features_data = response.json().get('audio_features') for features_track in features_data: + try: + features_track.get('id') + except AttributeError: + continue + print(f"Track ID: {features_track.get('id')}") print(f"Track Acousticness: {features_track.get('acousticness')}") print(f"Track Danceability: {features_track.get('danceability')}") From 4d40c2d3c77ad386dadca43944d62e35655e425e Mon Sep 17 00:00:00 2001 From: Fedor Mukhin <71270225+TheTedLab@users.noreply.github.com> Date: Thu, 7 Dec 2023 17:43:50 +0300 Subject: [PATCH 2/3] Update artist saving and docker Some improvings in Dockerfile Update save_artist.py script for actual files --- src/aggregator/Dockerfile | 2 +- .../artist-4tZwfgrHOc3mvqYlEYSvVi.json | 2 +- src/aggregator/save_artist.py | 37 +++++++++---------- 3 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/aggregator/Dockerfile b/src/aggregator/Dockerfile index b4c2e43..d321f9c 100644 --- a/src/aggregator/Dockerfile +++ b/src/aggregator/Dockerfile @@ -12,7 +12,7 @@ RUN pip install -r /app/requirements.txt # Copy files to the container COPY save_artist.py . COPY server_vars.py . -COPY resources/artists/artist-1.json ./resources/artists/artist-1.json +COPY resources/artists/ ./resources/artists/ # Command to run application CMD ["python", "save_artist.py"] \ No newline at end of file diff --git a/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json b/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json index 0baf364..3612556 100644 --- a/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json +++ b/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json @@ -220,7 +220,7 @@ "album_name": "Human After All (Medley)", "album_id": "4KmFHj9bLSp2sWeYILTYJz", "album_type": "single", - "release_date": "2005", + "release_date": "2005-01-01", "genres": [], "label": "Daft Life Ltd./ADA France", "popularity": 11 diff --git a/src/aggregator/save_artist.py b/src/aggregator/save_artist.py index 44a162d..55d2587 100644 --- a/src/aggregator/save_artist.py +++ b/src/aggregator/save_artist.py @@ -1,27 +1,26 @@ import json +import time import random import requests from server_vars import server_address, server_port -with open(f'resources/artists/artist-1.json', 'r', encoding='utf-8') as file: - data = json.load(file) +ids = ['00FQb4jTyendYWaN8pK0wa', '0M2HHtY3OOQzIZxrHkbJLT'] - data['artist_id'] = str(random.randint(0, 100000000)) + chr(random.randint(60, 100)) - data['name'] += str(random.randint(0, 100)) - print(data) +for artist_id in ids: + with open(f'resources/artists/artist-{artist_id}.json', 'r', encoding='utf-8') as file: + data = json.load(file) - header = { - 'Content-Type': 'application/json' - } + header = { + 'Content-Type': 'application/json' + } - json_string = json.dumps( - data, - indent=4, - ensure_ascii=False - ) - response = requests.post( - f'http://{server_address}:{server_port}/saveArtist', - headers=header, - data=json_string - ) - print(response.text) + json_string = json.dumps( + data + ) + response = requests.post( + f'http://{server_address}:{server_port}/saveArtist', + headers=header, + data=json_string + ) + print(f"{response.text} - Status Code: {response.status_code}") + time.sleep(1) From 4f59e918e5d5a85f52fb0d91a9ae2792bbd89f1b Mon Sep 17 00:00:00 2001 From: Fedor Mukhin <71270225+TheTedLab@users.noreply.github.com> Date: Sun, 10 Dec 2023 23:30:36 +0300 Subject: [PATCH 3/3] Add updating for playcount and stats Add stats_update script for parsing tracks playcount and artists' stats as followers, monthly listeners, world rank and top cities Add count for all parsed tracks, albums and artists Remove unnecessary example file Update aggregator logging and rewrite some comments --- src/aggregator/aggregator.py | 60 +- src/aggregator/auth_credentials.template | 3 +- .../artist-00FQb4jTyendYWaN8pK0wa.json | 825 ++++++++++------ .../artist-0M2HHtY3OOQzIZxrHkbJLT.json | 249 +++-- .../resources/artists/artist-1.json | 90 -- .../artist-4tZwfgrHOc3mvqYlEYSvVi.json | 888 ++++++++++++------ src/aggregator/stats_update.py | 91 ++ src/aggregator/tracks_count.py | 25 + 8 files changed, 1476 insertions(+), 755 deletions(-) delete mode 100644 src/aggregator/resources/artists/artist-1.json create mode 100644 src/aggregator/stats_update.py create mode 100644 src/aggregator/tracks_count.py diff --git a/src/aggregator/aggregator.py b/src/aggregator/aggregator.py index 7b959e0..3ddbb50 100644 --- a/src/aggregator/aggregator.py +++ b/src/aggregator/aggregator.py @@ -2,7 +2,7 @@ import time import requests import datetime -from auth_credentials import client_id, client_secret, client_headers, client_extensions, token_type, access_token +from auth_credentials import client_id, client_secret, token_type, access_token from classes.artist import Artist from classes.album import Album from classes.track import Track @@ -17,9 +17,7 @@ def main(): print(f' [T] Time: {datetime.datetime.now()}') - timeout = 2 - - request_count = 0 + timeout, request_count = 2, 0 headers = { 'Authorization': f'{token_type} {access_token}', @@ -36,7 +34,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") if response.status_code != 200: print('Token expired!') @@ -47,7 +45,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" @@ -58,7 +56,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") artist_info_data = response.json() print(f"Artist ID: {artist_info_data.get('id')}") @@ -75,28 +73,6 @@ def main(): artist_info_data.get('genres'), ) - # client_params = { - # 'operationName': 'queryArtistOverview', - # 'variables': '{"uri":"spotify:artist:' + artist_id + '","locale":"","includePrerelease":true}', - # 'extensions': client_extensions - # } - # - # 4 request - # response = requests.get( - # 'https://api-partner.spotify.com/pathfinder/v1/query', - # params=client_params, - # headers=client_headers - # ) - # time.sleep(timeout) - # request_count += 1 - # print(f" [*] Request {request_count} - {response.status_code}]") - # - # artist_stats_data = response.json().get('data').get('artistUnion').get('stats') - # print(f"Monthly Listeners: {artist_stats_data.get('monthlyListeners')}") - # print(f"World Rank: {artist_stats_data.get('worldRank')}") - # print(f"Cities: {artist_stats_data.get('topCities').get('items')}") - # print() - album_params = { 'include_groups': 'album', 'limit': 50, @@ -104,7 +80,7 @@ def main(): 'market': 'ES' } - # 5 request + # 4 request response = requests.get( f'https://api.spotify.com/v1/artists/{artist_id}/albums', params=album_params, @@ -112,7 +88,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") if response.status_code != 200: print('Token expired!') @@ -123,7 +99,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" @@ -134,7 +110,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") artist_albums_ids = list() artist_albums = response.json().get('items') @@ -143,7 +119,7 @@ def main(): album_params['include_groups'] = 'single' - # 6 request + # 5 request response = requests.get( f'https://api.spotify.com/v1/artists/{artist_id}/albums', params=album_params, @@ -151,7 +127,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") if response.status_code != 200: print('Token expired!') @@ -162,7 +138,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" @@ -173,7 +149,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") artist_albums = response.json().get('items') for album in artist_albums: @@ -186,7 +162,7 @@ def main(): 'ids': '' } - # 6 requests above, 54 requests below left + # 5 requests above, 55 requests below left albums_json = list() tracks_json = list() id_offset = 20 @@ -200,7 +176,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") if response.status_code != 200: print('Token expired!') @@ -211,7 +187,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") headers['Authorization'] = f"{response.json().get('token_type')} {response.json().get('access_token')}" @@ -222,7 +198,7 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f" [*] Request {request_count} - {response.status_code}]") + print(f" [*] [Request {request_count} - {response.status_code}]") album_data = response.json().get('albums') for album in album_data: @@ -413,9 +389,7 @@ def main(): artist_for_json.albums = albums_json artist_for_json.tracks = tracks_json - # print(artist_for_json) json_string = json.dumps(artist_for_json, indent=4, ensure_ascii=False, default=lambda x: x.__dict__) - # print(json_string) with open(f'resources/artists/artist-{artist_id}.json', 'w', encoding='utf-8') as file: file.write(json_string) diff --git a/src/aggregator/auth_credentials.template b/src/aggregator/auth_credentials.template index 9a81f6c..82dfaa9 100644 --- a/src/aggregator/auth_credentials.template +++ b/src/aggregator/auth_credentials.template @@ -9,4 +9,5 @@ client_headers = { 'your': 'client_headers' } -client_extensions = '{"your_client_extensions"}' +get_artist_stats_extensions = '{"your_client_extensions_for_artist_stats_request"}' +get_tracks_extensions = '{"your_client_extensions_for_get_album_request"}' diff --git a/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json b/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json index 7437290..b3b35e6 100644 --- a/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json +++ b/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json @@ -2,7 +2,7 @@ "artist_id": "00FQb4jTyendYWaN8pK0wa", "name": "Lana Del Rey", "popularity": 88, - "followers": 29880352, + "followers": 30537634, "genres": [ "art pop", "pop" @@ -582,7 +582,8 @@ "speechiness": 0.0361, "tempo": 121.218, "time_signature": 4, - "valence": 0.143 + "valence": 0.143, + "playcount": "28704146" }, { "track_name": "Did you know that there's a tunnel under Ocean Blvd", @@ -607,7 +608,8 @@ "speechiness": 0.0305, "tempo": 119.94, "time_signature": 4, - "valence": 0.0562 + "valence": 0.0562, + "playcount": "84701133" }, { "track_name": "Sweet", @@ -632,7 +634,8 @@ "speechiness": 0.0293, "tempo": 126.725, "time_signature": 4, - "valence": 0.0695 + "valence": 0.0695, + "playcount": "22012964" }, { "track_name": "A&W", @@ -657,7 +660,8 @@ "speechiness": 0.143, "tempo": 161.468, "time_signature": 4, - "valence": 0.139 + "valence": 0.139, + "playcount": "113238263" }, { "track_name": "Judah Smith Interlude", @@ -682,7 +686,8 @@ "speechiness": 0.102, "tempo": 77.111, "time_signature": 4, - "valence": 0.368 + "valence": 0.368, + "playcount": "10290621" }, { "track_name": "Candy Necklace (feat. Jon Batiste)", @@ -708,7 +713,8 @@ "speechiness": 0.0395, "tempo": 116.295, "time_signature": 4, - "valence": 0.0799 + "valence": 0.0799, + "playcount": "29311354" }, { "track_name": "Jon Batiste Interlude", @@ -733,7 +739,8 @@ "speechiness": 0.034, "tempo": 103.496, "time_signature": 4, - "valence": 0.0653 + "valence": 0.0653, + "playcount": "9573818" }, { "track_name": "Kintsugi", @@ -758,7 +765,8 @@ "speechiness": 0.042, "tempo": 116.091, "time_signature": 4, - "valence": 0.173 + "valence": 0.173, + "playcount": "14846921" }, { "track_name": "Fingertips", @@ -783,7 +791,8 @@ "speechiness": 0.0418, "tempo": 124.232, "time_signature": 3, - "valence": 0.0786 + "valence": 0.0786, + "playcount": "14513711" }, { "track_name": "Paris, Texas (feat. SYML)", @@ -809,7 +818,8 @@ "speechiness": 0.034, "tempo": 169.69, "time_signature": 3, - "valence": 0.185 + "valence": 0.185, + "playcount": "70200157" }, { "track_name": "Grandfather please stand on the shoulders of my father while he's deep-sea fishing (feat. RIOPY)", @@ -835,7 +845,8 @@ "speechiness": 0.0321, "tempo": 79.608, "time_signature": 4, - "valence": 0.0818 + "valence": 0.0818, + "playcount": "16430607" }, { "track_name": "Let The Light In (feat. Father John Misty)", @@ -861,7 +872,8 @@ "speechiness": 0.0277, "tempo": 132.427, "time_signature": 4, - "valence": 0.202 + "valence": 0.202, + "playcount": "119490108" }, { "track_name": "Margaret (feat. Bleachers)", @@ -887,7 +899,8 @@ "speechiness": 0.033, "tempo": 102.412, "time_signature": 4, - "valence": 0.216 + "valence": 0.216, + "playcount": "35280426" }, { "track_name": "Fishtail", @@ -912,7 +925,8 @@ "speechiness": 0.045, "tempo": 89.042, "time_signature": 4, - "valence": 0.0659 + "valence": 0.0659, + "playcount": "22378929" }, { "track_name": "Peppers (feat. Tommy Genesis)", @@ -938,7 +952,8 @@ "speechiness": 0.19, "tempo": 156.738, "time_signature": 4, - "valence": 0.35 + "valence": 0.35, + "playcount": "88764015" }, { "track_name": "Taco Truck x VB", @@ -963,7 +978,8 @@ "speechiness": 0.0591, "tempo": 157.862, "time_signature": 4, - "valence": 0.0395 + "valence": 0.0395, + "playcount": "31345066" }, { "track_name": "Text Book", @@ -988,7 +1004,8 @@ "speechiness": 0.0427, "tempo": 119.396, "time_signature": 3, - "valence": 0.102 + "valence": 0.102, + "playcount": "38629265" }, { "track_name": "Blue Banisters", @@ -1013,7 +1030,8 @@ "speechiness": 0.041, "tempo": 90.945, "time_signature": 1, - "valence": 0.172 + "valence": 0.172, + "playcount": "45370561" }, { "track_name": "Arcadia", @@ -1038,7 +1056,8 @@ "speechiness": 0.0323, "tempo": 91.455, "time_signature": 4, - "valence": 0.158 + "valence": 0.158, + "playcount": "49959271" }, { "track_name": "Interlude - The Trio", @@ -1063,7 +1082,8 @@ "speechiness": 0.0372, "tempo": 102.845, "time_signature": 4, - "valence": 0.119 + "valence": 0.119, + "playcount": "18355580" }, { "track_name": "Black Bathing Suit", @@ -1088,7 +1108,8 @@ "speechiness": 0.0738, "tempo": 113.936, "time_signature": 4, - "valence": 0.283 + "valence": 0.283, + "playcount": "25952984" }, { "track_name": "If You Lie Down With Me", @@ -1113,7 +1134,8 @@ "speechiness": 0.036, "tempo": 122.101, "time_signature": 4, - "valence": 0.187 + "valence": 0.187, + "playcount": "56618929" }, { "track_name": "Beautiful", @@ -1138,7 +1160,8 @@ "speechiness": 0.043, "tempo": 78.021, "time_signature": 4, - "valence": 0.237 + "valence": 0.237, + "playcount": "17648027" }, { "track_name": "Violets for Roses", @@ -1163,7 +1186,8 @@ "speechiness": 0.0301, "tempo": 88.021, "time_signature": 4, - "valence": 0.14 + "valence": 0.14, + "playcount": "29908542" }, { "track_name": "Dealer", @@ -1188,7 +1212,8 @@ "speechiness": 0.0279, "tempo": 130.08, "time_signature": 4, - "valence": 0.381 + "valence": 0.381, + "playcount": "161227016" }, { "track_name": "Thunder", @@ -1213,7 +1238,8 @@ "speechiness": 0.0291, "tempo": 73.862, "time_signature": 4, - "valence": 0.237 + "valence": 0.237, + "playcount": "40179415" }, { "track_name": "Wildflower Wildfire", @@ -1238,7 +1264,8 @@ "speechiness": 0.0277, "tempo": 105.745, "time_signature": 3, - "valence": 0.222 + "valence": 0.222, + "playcount": "35171628" }, { "track_name": "Nectar Of The Gods", @@ -1263,7 +1290,8 @@ "speechiness": 0.0342, "tempo": 101.758, "time_signature": 4, - "valence": 0.122 + "valence": 0.122, + "playcount": "17314956" }, { "track_name": "Living Legend", @@ -1288,7 +1316,8 @@ "speechiness": 0.0318, "tempo": 126.595, "time_signature": 4, - "valence": 0.166 + "valence": 0.166, + "playcount": "24808043" }, { "track_name": "Cherry Blossom", @@ -1313,7 +1342,8 @@ "speechiness": 0.0348, "tempo": 111.11, "time_signature": 4, - "valence": 0.216 + "valence": 0.216, + "playcount": "19178648" }, { "track_name": "Sweet Carolina", @@ -1338,7 +1368,8 @@ "speechiness": 0.0569, "tempo": 79.727, "time_signature": 5, - "valence": 0.0758 + "valence": 0.0758, + "playcount": "25574572" }, { "track_name": "White Dress", @@ -1363,7 +1394,8 @@ "speechiness": 0.0351, "tempo": 122.792, "time_signature": 4, - "valence": 0.158 + "valence": 0.158, + "playcount": "52051927" }, { "track_name": "Chemtrails Over The Country Club", @@ -1388,7 +1420,8 @@ "speechiness": 0.0643, "tempo": 201.025, "time_signature": 3, - "valence": 0.429 + "valence": 0.429, + "playcount": "189842834" }, { "track_name": "Tulsa Jesus Freak", @@ -1413,7 +1446,8 @@ "speechiness": 0.0489, "tempo": 137.199, "time_signature": 4, - "valence": 0.273 + "valence": 0.273, + "playcount": "44370761" }, { "track_name": "Let Me Love You Like A Woman", @@ -1438,7 +1472,8 @@ "speechiness": 0.111, "tempo": 66.932, "time_signature": 4, - "valence": 0.131 + "valence": 0.131, + "playcount": "81093876" }, { "track_name": "Wild At Heart", @@ -1463,7 +1498,8 @@ "speechiness": 0.0389, "tempo": 120.702, "time_signature": 1, - "valence": 0.27 + "valence": 0.27, + "playcount": "27388106" }, { "track_name": "Dark But Just A Game", @@ -1488,7 +1524,8 @@ "speechiness": 0.0916, "tempo": 80.434, "time_signature": 4, - "valence": 0.124 + "valence": 0.124, + "playcount": "31599127" }, { "track_name": "Not All Who Wander Are Lost", @@ -1513,7 +1550,8 @@ "speechiness": 0.0368, "tempo": 167.992, "time_signature": 4, - "valence": 0.139 + "valence": 0.139, + "playcount": "21690504" }, { "track_name": "Yosemite", @@ -1538,7 +1576,8 @@ "speechiness": 0.0309, "tempo": 106.068, "time_signature": 4, - "valence": 0.278 + "valence": 0.278, + "playcount": "23906915" }, { "track_name": "Breaking Up Slowly", @@ -1564,7 +1603,8 @@ "speechiness": 0.0445, "tempo": 97.4, "time_signature": 5, - "valence": 0.221 + "valence": 0.221, + "playcount": "23479383" }, { "track_name": "Dance Till We Die", @@ -1589,7 +1629,8 @@ "speechiness": 0.0432, "tempo": 126.227, "time_signature": 4, - "valence": 0.244 + "valence": 0.244, + "playcount": "18128608" }, { "track_name": "For Free", @@ -1616,7 +1657,8 @@ "speechiness": 0.0331, "tempo": 114.043, "time_signature": 3, - "valence": 0.203 + "valence": 0.203, + "playcount": "15280898" }, { "track_name": "Norman fucking Rockwell", @@ -1641,7 +1683,8 @@ "speechiness": 0.0346, "tempo": 78.287, "time_signature": 1, - "valence": 0.143 + "valence": 0.143, + "playcount": "255383066" }, { "track_name": "Mariners Apartment Complex", @@ -1666,7 +1709,8 @@ "speechiness": 0.028, "tempo": 76.054, "time_signature": 4, - "valence": 0.159 + "valence": 0.159, + "playcount": "200967258" }, { "track_name": "Venice Bitch", @@ -1691,7 +1735,8 @@ "speechiness": 0.0294, "tempo": 77.826, "time_signature": 4, - "valence": 0.312 + "valence": 0.312, + "playcount": "152439661" }, { "track_name": "Fuck it I love you", @@ -1716,7 +1761,8 @@ "speechiness": 0.0359, "tempo": 129.974, "time_signature": 4, - "valence": 0.175 + "valence": 0.175, + "playcount": "196738210" }, { "track_name": "Doin' Time", @@ -1741,7 +1787,8 @@ "speechiness": 0.0355, "tempo": 144.982, "time_signature": 4, - "valence": 0.523 + "valence": 0.523, + "playcount": "583678806" }, { "track_name": "Love song", @@ -1766,7 +1813,8 @@ "speechiness": 0.0367, "tempo": 63.425, "time_signature": 4, - "valence": 0.288 + "valence": 0.288, + "playcount": "135918453" }, { "track_name": "Cinnamon Girl", @@ -1791,7 +1839,8 @@ "speechiness": 0.036, "tempo": 91.781, "time_signature": 5, - "valence": 0.135 + "valence": 0.135, + "playcount": "386617267" }, { "track_name": "How to disappear", @@ -1816,7 +1865,8 @@ "speechiness": 0.0352, "tempo": 78.997, "time_signature": 3, - "valence": 0.065 + "valence": 0.065, + "playcount": "146839434" }, { "track_name": "California", @@ -1841,7 +1891,8 @@ "speechiness": 0.0317, "tempo": 123.758, "time_signature": 4, - "valence": 0.195 + "valence": 0.195, + "playcount": "101781839" }, { "track_name": "The Next Best American Record", @@ -1866,7 +1917,8 @@ "speechiness": 0.0315, "tempo": 108.083, "time_signature": 4, - "valence": 0.118 + "valence": 0.118, + "playcount": "59871596" }, { "track_name": "The greatest", @@ -1891,7 +1943,8 @@ "speechiness": 0.0359, "tempo": 79.142, "time_signature": 3, - "valence": 0.196 + "valence": 0.196, + "playcount": "108758854" }, { "track_name": "Bartender", @@ -1916,7 +1969,8 @@ "speechiness": 0.0391, "tempo": 131.773, "time_signature": 3, - "valence": 0.494 + "valence": 0.494, + "playcount": "58263253" }, { "track_name": "Happiness is a butterfly", @@ -1941,7 +1995,8 @@ "speechiness": 0.0401, "tempo": 70.499, "time_signature": 4, - "valence": 0.156 + "valence": 0.156, + "playcount": "276595695" }, { "track_name": "hope is a dangerous thing for a woman like me to have - but I have it", @@ -1966,7 +2021,8 @@ "speechiness": 0.0635, "tempo": 86.675, "time_signature": 4, - "valence": 0.278 + "valence": 0.278, + "playcount": "167943737" }, { "track_name": "Love", @@ -1991,7 +2047,8 @@ "speechiness": 0.0277, "tempo": 98.994, "time_signature": 4, - "valence": 0.234 + "valence": 0.234, + "playcount": "305107588" }, { "track_name": "Lust For Life (with The Weeknd)", @@ -2017,7 +2074,8 @@ "speechiness": 0.0542, "tempo": 99.982, "time_signature": 4, - "valence": 0.262 + "valence": 0.262, + "playcount": "318087450" }, { "track_name": "13 Beaches", @@ -2042,7 +2100,8 @@ "speechiness": 0.0364, "tempo": 144.204, "time_signature": 4, - "valence": 0.25 + "valence": 0.25, + "playcount": "114731354" }, { "track_name": "Cherry", @@ -2067,7 +2126,8 @@ "speechiness": 0.0494, "tempo": 94.261, "time_signature": 3, - "valence": 0.342 + "valence": 0.342, + "playcount": "250589680" }, { "track_name": "White Mustang", @@ -2092,7 +2152,8 @@ "speechiness": 0.0444, "tempo": 114.801, "time_signature": 4, - "valence": 0.223 + "valence": 0.223, + "playcount": "132061544" }, { "track_name": "Summer Bummer (feat. A$AP Rocky & Playboi Carti)", @@ -2119,7 +2180,8 @@ "speechiness": 0.126, "tempo": 134.981, "time_signature": 4, - "valence": 0.137 + "valence": 0.137, + "playcount": "148499050" }, { "track_name": "Groupie Love (feat. A$AP Rocky)", @@ -2145,7 +2207,8 @@ "speechiness": 0.0398, "tempo": 175.894, "time_signature": 4, - "valence": 0.195 + "valence": 0.195, + "playcount": "99238655" }, { "track_name": "In My Feelings", @@ -2170,7 +2233,8 @@ "speechiness": 0.0802, "tempo": 89.933, "time_signature": 4, - "valence": 0.309 + "valence": 0.309, + "playcount": "125597652" }, { "track_name": "Coachella - Woodstock In My Mind", @@ -2195,7 +2259,8 @@ "speechiness": 0.0998, "tempo": 129.835, "time_signature": 4, - "valence": 0.413 + "valence": 0.413, + "playcount": "56723245" }, { "track_name": "God Bless America - And All The Beautiful Women In It", @@ -2220,7 +2285,8 @@ "speechiness": 0.0637, "tempo": 87.96, "time_signature": 4, - "valence": 0.244 + "valence": 0.244, + "playcount": "41115040" }, { "track_name": "When The World Was At War We Kept Dancing", @@ -2245,7 +2311,8 @@ "speechiness": 0.0343, "tempo": 116.031, "time_signature": 4, - "valence": 0.185 + "valence": 0.185, + "playcount": "49296584" }, { "track_name": "Beautiful People Beautiful Problems (feat. Stevie Nicks)", @@ -2271,7 +2338,8 @@ "speechiness": 0.0325, "tempo": 122.919, "time_signature": 4, - "valence": 0.128 + "valence": 0.128, + "playcount": "71619238" }, { "track_name": "Tomorrow Never Came (feat. Sean Ono Lennon)", @@ -2297,7 +2365,8 @@ "speechiness": 0.0346, "tempo": 138.019, "time_signature": 4, - "valence": 0.177 + "valence": 0.177, + "playcount": "70661736" }, { "track_name": "Heroin", @@ -2322,7 +2391,8 @@ "speechiness": 0.0388, "tempo": 118.721, "time_signature": 4, - "valence": 0.0952 + "valence": 0.0952, + "playcount": "77551169" }, { "track_name": "Change", @@ -2347,7 +2417,8 @@ "speechiness": 0.0409, "tempo": 85.672, "time_signature": 4, - "valence": 0.303 + "valence": 0.303, + "playcount": "44661145" }, { "track_name": "Get Free", @@ -2372,7 +2443,8 @@ "speechiness": 0.0718, "tempo": 203.944, "time_signature": 4, - "valence": 0.0392 + "valence": 0.0392, + "playcount": "103907771" }, { "track_name": "Honeymoon", @@ -2397,7 +2469,8 @@ "speechiness": 0.036, "tempo": 74.847, "time_signature": 3, - "valence": 0.173 + "valence": 0.173, + "playcount": "67496921" }, { "track_name": "Music To Watch Boys To", @@ -2422,7 +2495,8 @@ "speechiness": 0.0367, "tempo": 132.016, "time_signature": 4, - "valence": 0.134 + "valence": 0.134, + "playcount": "119143895" }, { "track_name": "Terrence Loves You", @@ -2447,7 +2521,8 @@ "speechiness": 0.0314, "tempo": 102.031, "time_signature": 1, - "valence": 0.0898 + "valence": 0.0898, + "playcount": "47801220" }, { "track_name": "God Knows I Tried", @@ -2472,7 +2547,8 @@ "speechiness": 0.0275, "tempo": 81.017, "time_signature": 3, - "valence": 0.111 + "valence": 0.111, + "playcount": "49904787" }, { "track_name": "High By The Beach", @@ -2497,7 +2573,8 @@ "speechiness": 0.0346, "tempo": 131.988, "time_signature": 4, - "valence": 0.0968 + "valence": 0.0968, + "playcount": "249274807" }, { "track_name": "Freak", @@ -2522,7 +2599,8 @@ "speechiness": 0.033, "tempo": 93.984, "time_signature": 4, - "valence": 0.109 + "valence": 0.109, + "playcount": "122583834" }, { "track_name": "Art Deco", @@ -2547,7 +2625,8 @@ "speechiness": 0.0533, "tempo": 148.345, "time_signature": 5, - "valence": 0.0596 + "valence": 0.0596, + "playcount": "197488357" }, { "track_name": "Burnt Norton - Interlude", @@ -2572,7 +2651,8 @@ "speechiness": 0.0359, "tempo": 85.765, "time_signature": 3, - "valence": 0.523 + "valence": 0.523, + "playcount": "24858946" }, { "track_name": "Religion", @@ -2597,7 +2677,8 @@ "speechiness": 0.0366, "tempo": 135.689, "time_signature": 4, - "valence": 0.175 + "valence": 0.175, + "playcount": "61394064" }, { "track_name": "Salvatore", @@ -2622,7 +2703,8 @@ "speechiness": 0.0344, "tempo": 117.68, "time_signature": 4, - "valence": 0.115 + "valence": 0.115, + "playcount": "143925815" }, { "track_name": "The Blackest Day", @@ -2647,7 +2729,8 @@ "speechiness": 0.0331, "tempo": 107.752, "time_signature": 4, - "valence": 0.162 + "valence": 0.162, + "playcount": "79923266" }, { "track_name": "24", @@ -2672,7 +2755,8 @@ "speechiness": 0.0356, "tempo": 98.181, "time_signature": 4, - "valence": 0.0853 + "valence": 0.0853, + "playcount": "34099017" }, { "track_name": "Swan Song", @@ -2697,7 +2781,8 @@ "speechiness": 0.0294, "tempo": 81.765, "time_signature": 4, - "valence": 0.0392 + "valence": 0.0392, + "playcount": "37593301" }, { "track_name": "Don't Let Me Be Misunderstood", @@ -2722,7 +2807,8 @@ "speechiness": 0.0327, "tempo": 80.386, "time_signature": 4, - "valence": 0.063 + "valence": 0.063, + "playcount": "30931447" }, { "track_name": "Cruel World", @@ -2747,7 +2833,8 @@ "speechiness": 0.0339, "tempo": 122.164, "time_signature": 4, - "valence": 0.177 + "valence": 0.177, + "playcount": "88936747" }, { "track_name": "Ultraviolence", @@ -2772,7 +2859,8 @@ "speechiness": 0.038, "tempo": 79.262, "time_signature": 3, - "valence": 0.0899 + "valence": 0.0899, + "playcount": "232989819" }, { "track_name": "Shades Of Cool", @@ -2797,7 +2885,8 @@ "speechiness": 0.0302, "tempo": 137.918, "time_signature": 3, - "valence": 0.0878 + "valence": 0.0878, + "playcount": "161335436" }, { "track_name": "Brooklyn Baby", @@ -2822,7 +2911,8 @@ "speechiness": 0.0407, "tempo": 107.747, "time_signature": 4, - "valence": 0.0949 + "valence": 0.0949, + "playcount": "552732411" }, { "track_name": "West Coast", @@ -2847,7 +2937,8 @@ "speechiness": 0.0396, "tempo": 123.167, "time_signature": 4, - "valence": 0.461 + "valence": 0.461, + "playcount": "566352709" }, { "track_name": "Sad Girl", @@ -2872,7 +2963,8 @@ "speechiness": 0.0364, "tempo": 119.479, "time_signature": 4, - "valence": 0.258 + "valence": 0.258, + "playcount": "206408947" }, { "track_name": "Pretty When You Cry", @@ -2897,7 +2989,8 @@ "speechiness": 0.0417, "tempo": 109.436, "time_signature": 4, - "valence": 0.197 + "valence": 0.197, + "playcount": "216316441" }, { "track_name": "Money Power Glory", @@ -2922,7 +3015,8 @@ "speechiness": 0.0451, "tempo": 136.762, "time_signature": 5, - "valence": 0.288 + "valence": 0.288, + "playcount": "125643359" }, { "track_name": "Fucked My Way Up To The Top", @@ -2947,7 +3041,8 @@ "speechiness": 0.0554, "tempo": 129.839, "time_signature": 4, - "valence": 0.182 + "valence": 0.182, + "playcount": "94805344" }, { "track_name": "Old Money", @@ -2972,7 +3067,8 @@ "speechiness": 0.0332, "tempo": 108.115, "time_signature": 1, - "valence": 0.154 + "valence": 0.154, + "playcount": "142853369" }, { "track_name": "The Other Woman", @@ -2997,7 +3093,8 @@ "speechiness": 0.0317, "tempo": 111.67, "time_signature": 4, - "valence": 0.175 + "valence": 0.175, + "playcount": "191997565" }, { "track_name": "Black Beauty", @@ -3022,7 +3119,8 @@ "speechiness": 0.0436, "tempo": 119.898, "time_signature": 4, - "valence": 0.103 + "valence": 0.103, + "playcount": "90807190" }, { "track_name": "Guns And Roses", @@ -3047,7 +3145,8 @@ "speechiness": 0.0448, "tempo": 108.928, "time_signature": 4, - "valence": 0.343 + "valence": 0.343, + "playcount": "40904686" }, { "track_name": "Florida Kilos", @@ -3072,7 +3171,8 @@ "speechiness": 0.0388, "tempo": 200.781, "time_signature": 4, - "valence": 0.579 + "valence": 0.579, + "playcount": "105131950" }, { "track_name": "Ride", @@ -3097,7 +3197,8 @@ "speechiness": 0.034, "tempo": 93.763, "time_signature": 4, - "valence": 0.189 + "valence": 0.189, + "playcount": "323367799" }, { "track_name": "American", @@ -3122,7 +3223,8 @@ "speechiness": 0.0359, "tempo": 143.983, "time_signature": 4, - "valence": 0.18 + "valence": 0.18, + "playcount": "89810762" }, { "track_name": "Cola", @@ -3147,7 +3249,8 @@ "speechiness": 0.0478, "tempo": 110.063, "time_signature": 4, - "valence": 0.121 + "valence": 0.121, + "playcount": "143944124" }, { "track_name": "Body Electric", @@ -3172,7 +3275,8 @@ "speechiness": 0.0593, "tempo": 167.7, "time_signature": 3, - "valence": 0.104 + "valence": 0.104, + "playcount": "77666202" }, { "track_name": "Blue Velvet", @@ -3197,7 +3301,8 @@ "speechiness": 0.028, "tempo": 84.809, "time_signature": 4, - "valence": 0.251 + "valence": 0.251, + "playcount": "71851783" }, { "track_name": "Gods & Monsters", @@ -3222,7 +3327,8 @@ "speechiness": 0.0656, "tempo": 189.767, "time_signature": 4, - "valence": 0.339 + "valence": 0.339, + "playcount": "131888775" }, { "track_name": "Yayo", @@ -3247,7 +3353,8 @@ "speechiness": 0.0294, "tempo": 71.925, "time_signature": 4, - "valence": 0.145 + "valence": 0.145, + "playcount": "63724054" }, { "track_name": "Bel Air", @@ -3272,7 +3379,8 @@ "speechiness": 0.0298, "tempo": 83.56, "time_signature": 4, - "valence": 0.303 + "valence": 0.303, + "playcount": "60997367" }, { "track_name": "Born To Die", @@ -3297,7 +3405,8 @@ "speechiness": 0.0424, "tempo": 171.564, "time_signature": 4, - "valence": 0.4 + "valence": 0.4, + "playcount": "589542211" }, { "track_name": "Off To The Races", @@ -3322,7 +3431,8 @@ "speechiness": 0.0594, "tempo": 160.09, "time_signature": 4, - "valence": 0.129 + "valence": 0.129, + "playcount": "209876779" }, { "track_name": "Blue Jeans - Remastered 2011", @@ -3347,7 +3457,8 @@ "speechiness": 0.0629, "tempo": 117.956, "time_signature": 4, - "valence": 0.493 + "valence": 0.493, + "playcount": "415287880" }, { "track_name": "Video Games", @@ -3372,7 +3483,8 @@ "speechiness": 0.0311, "tempo": 82.29, "time_signature": 5, - "valence": 0.168 + "valence": 0.168, + "playcount": "798410614" }, { "track_name": "Diet Mountain Dew", @@ -3397,7 +3509,8 @@ "speechiness": 0.0881, "tempo": 175.728, "time_signature": 4, - "valence": 0.605 + "valence": 0.605, + "playcount": "416454529" }, { "track_name": "National Anthem", @@ -3422,7 +3535,8 @@ "speechiness": 0.215, "tempo": 84.951, "time_signature": 4, - "valence": 0.423 + "valence": 0.423, + "playcount": "383023318" }, { "track_name": "Dark Paradise", @@ -3447,7 +3561,8 @@ "speechiness": 0.0649, "tempo": 120.041, "time_signature": 4, - "valence": 0.403 + "valence": 0.403, + "playcount": "375565257" }, { "track_name": "Radio", @@ -3472,7 +3587,8 @@ "speechiness": 0.0893, "tempo": 75.139, "time_signature": 4, - "valence": 0.167 + "valence": 0.167, + "playcount": "440141121" }, { "track_name": "Carmen", @@ -3497,7 +3613,8 @@ "speechiness": 0.0317, "tempo": 100.017, "time_signature": 4, - "valence": 0.038 + "valence": 0.038, + "playcount": "163233899" }, { "track_name": "Million Dollar Man", @@ -3522,7 +3639,8 @@ "speechiness": 0.0566, "tempo": 195.767, "time_signature": 3, - "valence": 0.532 + "valence": 0.532, + "playcount": "143440140" }, { "track_name": "Summertime Sadness", @@ -3547,7 +3665,8 @@ "speechiness": 0.0333, "tempo": 111.949, "time_signature": 4, - "valence": 0.201 + "valence": 0.201, + "playcount": "1186074220" }, { "track_name": "This Is What Makes Us Girls", @@ -3572,7 +3691,8 @@ "speechiness": 0.104, "tempo": 138.04, "time_signature": 4, - "valence": 0.423 + "valence": 0.423, + "playcount": "137905577" }, { "track_name": "Born To Die", @@ -3597,7 +3717,8 @@ "speechiness": 0.0378, "tempo": 85.767, "time_signature": 4, - "valence": 0.395 + "valence": 0.395, + "playcount": "589542211" }, { "track_name": "Off To The Races", @@ -3622,7 +3743,8 @@ "speechiness": 0.0604, "tempo": 160.068, "time_signature": 4, - "valence": 0.126 + "valence": 0.126, + "playcount": "209876779" }, { "track_name": "Blue Jeans - Remastered 2011", @@ -3647,7 +3769,8 @@ "speechiness": 0.0635, "tempo": 117.948, "time_signature": 4, - "valence": 0.504 + "valence": 0.504, + "playcount": "415287880" }, { "track_name": "Video Games", @@ -3672,7 +3795,8 @@ "speechiness": 0.0298, "tempo": 122.053, "time_signature": 4, - "valence": 0.181 + "valence": 0.181, + "playcount": "798410614" }, { "track_name": "Diet Mountain Dew", @@ -3697,7 +3821,8 @@ "speechiness": 0.0858, "tempo": 176.09, "time_signature": 4, - "valence": 0.601 + "valence": 0.601, + "playcount": "416454529" }, { "track_name": "National Anthem", @@ -3722,7 +3847,8 @@ "speechiness": 0.24, "tempo": 84.959, "time_signature": 4, - "valence": 0.432 + "valence": 0.432, + "playcount": "383023318" }, { "track_name": "Dark Paradise", @@ -3747,7 +3873,8 @@ "speechiness": 0.0621, "tempo": 119.996, "time_signature": 4, - "valence": 0.411 + "valence": 0.411, + "playcount": "375565257" }, { "track_name": "Radio", @@ -3772,7 +3899,8 @@ "speechiness": 0.061, "tempo": 75.043, "time_signature": 4, - "valence": 0.196 + "valence": 0.196, + "playcount": "440141121" }, { "track_name": "Carmen", @@ -3797,7 +3925,8 @@ "speechiness": 0.0303, "tempo": 100.029, "time_signature": 4, - "valence": 0.0377 + "valence": 0.0377, + "playcount": "163233899" }, { "track_name": "Million Dollar Man", @@ -3822,7 +3951,8 @@ "speechiness": 0.0458, "tempo": 197.847, "time_signature": 3, - "valence": 0.55 + "valence": 0.55, + "playcount": "143440140" }, { "track_name": "Summertime Sadness", @@ -3847,7 +3977,8 @@ "speechiness": 0.0335, "tempo": 111.96, "time_signature": 4, - "valence": 0.22 + "valence": 0.22, + "playcount": "1186074220" }, { "track_name": "This Is What Makes Us Girls", @@ -3872,7 +4003,8 @@ "speechiness": 0.101, "tempo": 138.023, "time_signature": 4, - "valence": 0.438 + "valence": 0.438, + "playcount": "137905577" }, { "track_name": "Without You", @@ -3897,7 +4029,8 @@ "speechiness": 0.0372, "tempo": 111.948, "time_signature": 4, - "valence": 0.595 + "valence": 0.595, + "playcount": "106564963" }, { "track_name": "Lolita", @@ -3922,7 +4055,8 @@ "speechiness": 0.107, "tempo": 136.001, "time_signature": 4, - "valence": 0.151 + "valence": 0.151, + "playcount": "115959955" }, { "track_name": "Lucky Ones", @@ -3947,7 +4081,8 @@ "speechiness": 0.0286, "tempo": 134.436, "time_signature": 4, - "valence": 0.319 + "valence": 0.319, + "playcount": "82682956" }, { "track_name": "Ride", @@ -3972,7 +4107,8 @@ "speechiness": 0.034, "tempo": 93.763, "time_signature": 4, - "valence": 0.189 + "valence": 0.189, + "playcount": "323367799" }, { "track_name": "American", @@ -3997,7 +4133,8 @@ "speechiness": 0.0359, "tempo": 143.983, "time_signature": 4, - "valence": 0.18 + "valence": 0.18, + "playcount": "89810762" }, { "track_name": "Cola", @@ -4022,7 +4159,8 @@ "speechiness": 0.0478, "tempo": 110.063, "time_signature": 4, - "valence": 0.121 + "valence": 0.121, + "playcount": "143944124" }, { "track_name": "Body Electric", @@ -4047,7 +4185,8 @@ "speechiness": 0.0593, "tempo": 167.7, "time_signature": 3, - "valence": 0.104 + "valence": 0.104, + "playcount": "77666202" }, { "track_name": "Blue Velvet", @@ -4072,7 +4211,8 @@ "speechiness": 0.028, "tempo": 84.808, "time_signature": 4, - "valence": 0.251 + "valence": 0.251, + "playcount": "71851783" }, { "track_name": "Gods & Monsters", @@ -4097,7 +4237,8 @@ "speechiness": 0.0656, "tempo": 189.767, "time_signature": 4, - "valence": 0.339 + "valence": 0.339, + "playcount": "131888775" }, { "track_name": "Yayo", @@ -4122,7 +4263,8 @@ "speechiness": 0.0294, "tempo": 71.925, "time_signature": 4, - "valence": 0.145 + "valence": 0.145, + "playcount": "63724054" }, { "track_name": "Bel Air", @@ -4147,7 +4289,8 @@ "speechiness": 0.0298, "tempo": 83.56, "time_signature": 4, - "valence": 0.303 + "valence": 0.303, + "playcount": "60997367" }, { "track_name": "Burning Desire", @@ -4172,7 +4315,8 @@ "speechiness": 0.132, "tempo": 131.812, "time_signature": 4, - "valence": 0.161 + "valence": 0.161, + "playcount": "52074846" }, { "track_name": "Born To Die", @@ -4197,7 +4341,8 @@ "speechiness": 0.0339, "tempo": 86.02, "time_signature": 4, - "valence": 0.379 + "valence": 0.379, + "playcount": "589542211" }, { "track_name": "Off To The Races", @@ -4222,7 +4367,8 @@ "speechiness": 0.0523, "tempo": 160.125, "time_signature": 4, - "valence": 0.113 + "valence": 0.113, + "playcount": "209876779" }, { "track_name": "Blue Jeans", @@ -4247,7 +4393,8 @@ "speechiness": 0.0633, "tempo": 117.963, "time_signature": 4, - "valence": 0.488 + "valence": 0.488, + "playcount": "415287880" }, { "track_name": "Video Games", @@ -4272,7 +4419,8 @@ "speechiness": 0.0348, "tempo": 72.847, "time_signature": 5, - "valence": 0.181 + "valence": 0.181, + "playcount": "798410614" }, { "track_name": "Diet Mountain Dew", @@ -4297,7 +4445,8 @@ "speechiness": 0.0417, "tempo": 88.013, "time_signature": 4, - "valence": 0.533 + "valence": 0.533, + "playcount": "416454529" }, { "track_name": "National Anthem", @@ -4322,7 +4471,8 @@ "speechiness": 0.244, "tempo": 85.0, "time_signature": 4, - "valence": 0.436 + "valence": 0.436, + "playcount": "383023318" }, { "track_name": "Dark Paradise", @@ -4347,7 +4497,8 @@ "speechiness": 0.0594, "tempo": 119.994, "time_signature": 4, - "valence": 0.43 + "valence": 0.43, + "playcount": "375565257" }, { "track_name": "Radio", @@ -4372,7 +4523,8 @@ "speechiness": 0.0687, "tempo": 75.024, "time_signature": 4, - "valence": 0.196 + "valence": 0.196, + "playcount": "440141121" }, { "track_name": "Carmen", @@ -4397,7 +4549,8 @@ "speechiness": 0.0297, "tempo": 100.024, "time_signature": 4, - "valence": 0.0379 + "valence": 0.0379, + "playcount": "163233899" }, { "track_name": "Million Dollar Man", @@ -4422,7 +4575,8 @@ "speechiness": 0.0359, "tempo": 65.627, "time_signature": 4, - "valence": 0.511 + "valence": 0.511, + "playcount": "143440140" }, { "track_name": "Summertime Sadness", @@ -4447,7 +4601,8 @@ "speechiness": 0.0335, "tempo": 111.968, "time_signature": 4, - "valence": 0.235 + "valence": 0.235, + "playcount": "1186074220" }, { "track_name": "This Is What Makes Us Girls", @@ -4472,7 +4627,8 @@ "speechiness": 0.0925, "tempo": 138.004, "time_signature": 4, - "valence": 0.441 + "valence": 0.441, + "playcount": "137905577" }, { "track_name": "Without You", @@ -4497,7 +4653,8 @@ "speechiness": 0.0329, "tempo": 111.942, "time_signature": 4, - "valence": 0.668 + "valence": 0.668, + "playcount": "106564963" }, { "track_name": "Lolita", @@ -4522,7 +4679,8 @@ "speechiness": 0.124, "tempo": 135.955, "time_signature": 4, - "valence": 0.134 + "valence": 0.134, + "playcount": "115959955" }, { "track_name": "Lucky Ones", @@ -4547,7 +4705,8 @@ "speechiness": 0.0283, "tempo": 134.923, "time_signature": 4, - "valence": 0.271 + "valence": 0.271, + "playcount": "82682956" }, { "track_name": "Ride", @@ -4572,7 +4731,8 @@ "speechiness": 0.034, "tempo": 93.763, "time_signature": 4, - "valence": 0.189 + "valence": 0.189, + "playcount": "323367799" }, { "track_name": "American", @@ -4597,7 +4757,8 @@ "speechiness": 0.0359, "tempo": 143.983, "time_signature": 4, - "valence": 0.18 + "valence": 0.18, + "playcount": "89810762" }, { "track_name": "Cola", @@ -4622,7 +4783,8 @@ "speechiness": 0.0478, "tempo": 110.063, "time_signature": 4, - "valence": 0.121 + "valence": 0.121, + "playcount": "143944124" }, { "track_name": "Body Electric", @@ -4647,7 +4809,8 @@ "speechiness": 0.0593, "tempo": 167.7, "time_signature": 3, - "valence": 0.104 + "valence": 0.104, + "playcount": "77666202" }, { "track_name": "Blue Velvet", @@ -4672,7 +4835,8 @@ "speechiness": 0.028, "tempo": 84.809, "time_signature": 4, - "valence": 0.251 + "valence": 0.251, + "playcount": "71851783" }, { "track_name": "Gods & Monsters", @@ -4697,7 +4861,8 @@ "speechiness": 0.0656, "tempo": 189.767, "time_signature": 4, - "valence": 0.339 + "valence": 0.339, + "playcount": "131888775" }, { "track_name": "Yayo", @@ -4722,7 +4887,8 @@ "speechiness": 0.0294, "tempo": 71.925, "time_signature": 4, - "valence": 0.145 + "valence": 0.145, + "playcount": "63724054" }, { "track_name": "Bel Air", @@ -4747,7 +4913,8 @@ "speechiness": 0.0298, "tempo": 83.56, "time_signature": 4, - "valence": 0.303 + "valence": 0.303, + "playcount": "60997367" }, { "track_name": "Born To Die", @@ -4772,7 +4939,8 @@ "speechiness": 0.0439, "tempo": 75.223, "time_signature": 3, - "valence": 0.39 + "valence": 0.39, + "playcount": "589542211" }, { "track_name": "Off To The Races", @@ -4797,7 +4965,8 @@ "speechiness": 0.062, "tempo": 160.065, "time_signature": 4, - "valence": 0.136 + "valence": 0.136, + "playcount": "209876779" }, { "track_name": "Blue Jeans - Remastered 2011", @@ -4822,7 +4991,8 @@ "speechiness": 0.0589, "tempo": 117.956, "time_signature": 4, - "valence": 0.528 + "valence": 0.528, + "playcount": "415287880" }, { "track_name": "Video Games", @@ -4847,7 +5017,8 @@ "speechiness": 0.0299, "tempo": 122.056, "time_signature": 4, - "valence": 0.179 + "valence": 0.179, + "playcount": "798410614" }, { "track_name": "Diet Mountain Dew", @@ -4872,7 +5043,8 @@ "speechiness": 0.0891, "tempo": 175.743, "time_signature": 4, - "valence": 0.592 + "valence": 0.592, + "playcount": "416454529" }, { "track_name": "National Anthem", @@ -4897,7 +5069,8 @@ "speechiness": 0.234, "tempo": 84.929, "time_signature": 4, - "valence": 0.415 + "valence": 0.415, + "playcount": "383023318" }, { "track_name": "Dark Paradise", @@ -4922,7 +5095,8 @@ "speechiness": 0.0634, "tempo": 120.015, "time_signature": 4, - "valence": 0.402 + "valence": 0.402, + "playcount": "375565257" }, { "track_name": "Radio", @@ -4947,7 +5121,8 @@ "speechiness": 0.0846, "tempo": 75.112, "time_signature": 4, - "valence": 0.185 + "valence": 0.185, + "playcount": "440141121" }, { "track_name": "Carmen", @@ -4972,7 +5147,8 @@ "speechiness": 0.0317, "tempo": 100.056, "time_signature": 4, - "valence": 0.0376 + "valence": 0.0376, + "playcount": "163233899" }, { "track_name": "Million Dollar Man", @@ -4997,7 +5173,8 @@ "speechiness": 0.0462, "tempo": 197.098, "time_signature": 3, - "valence": 0.53 + "valence": 0.53, + "playcount": "143440140" }, { "track_name": "Summertime Sadness", @@ -5022,7 +5199,8 @@ "speechiness": 0.0334, "tempo": 111.931, "time_signature": 4, - "valence": 0.216 + "valence": 0.216, + "playcount": "1186074220" }, { "track_name": "This Is What Makes Us Girls", @@ -5047,7 +5225,8 @@ "speechiness": 0.108, "tempo": 137.965, "time_signature": 4, - "valence": 0.417 + "valence": 0.417, + "playcount": "137905577" }, { "track_name": "Without You", @@ -5072,7 +5251,8 @@ "speechiness": 0.0368, "tempo": 111.939, "time_signature": 4, - "valence": 0.593 + "valence": 0.593, + "playcount": "106564963" }, { "track_name": "Lolita", @@ -5097,7 +5277,8 @@ "speechiness": 0.102, "tempo": 135.992, "time_signature": 4, - "valence": 0.148 + "valence": 0.148, + "playcount": "115959955" }, { "track_name": "Lucky Ones", @@ -5122,7 +5303,8 @@ "speechiness": 0.0358, "tempo": 74.221, "time_signature": 1, - "valence": 0.308 + "valence": 0.308, + "playcount": "82682956" }, { "track_name": "Suburban House", @@ -5148,7 +5330,8 @@ "speechiness": 0.0308, "tempo": 130.941, "time_signature": 3, - "valence": 0.189 + "valence": 0.189, + "playcount": "6162484" }, { "track_name": "Hollywood Bowl", @@ -5174,7 +5357,8 @@ "speechiness": 0.0318, "tempo": 174.645, "time_signature": 3, - "valence": 0.398 + "valence": 0.398, + "playcount": "7006778" }, { "track_name": "Lost at Sea", @@ -5200,7 +5384,8 @@ "speechiness": 0.0344, "tempo": 167.87, "time_signature": 4, - "valence": 0.114 + "valence": 0.114, + "playcount": "10539421" }, { "track_name": "Say Yes To Heaven - Dot Major Remix", @@ -5227,7 +5412,8 @@ "speechiness": 0.0423, "tempo": 127.016, "time_signature": 4, - "valence": 0.319 + "valence": 0.319, + "playcount": "188425" }, { "track_name": "Say Yes To Heaven - Anyma Remix", @@ -5253,7 +5439,8 @@ "speechiness": 0.0444, "tempo": 127.003, "time_signature": 4, - "valence": 0.347 + "valence": 0.347, + "playcount": "4822866" }, { "track_name": "Say Yes To Heaven - AMANDUS 99 +++ DANZINGER 99 Remix", @@ -5280,7 +5467,8 @@ "speechiness": 0.0343, "tempo": 132.877, "time_signature": 4, - "valence": 0.625 + "valence": 0.625, + "playcount": "159370" }, { "track_name": "Say Yes To Heaven - sim0ne & Melo Nada Remix", @@ -5307,7 +5495,8 @@ "speechiness": 0.06, "tempo": 150.999, "time_signature": 4, - "valence": 0.738 + "valence": 0.738, + "playcount": "6121668" }, { "track_name": "Say Yes To Heaven", @@ -5332,7 +5521,8 @@ "speechiness": 0.0259, "tempo": 99.922, "time_signature": 4, - "valence": 0.179 + "valence": 0.179, + "playcount": "302407529" }, { "track_name": "Say Yes To Heaven", @@ -5357,7 +5547,8 @@ "speechiness": 0.0254, "tempo": 99.992, "time_signature": 4, - "valence": 0.166 + "valence": 0.166, + "playcount": "302407529" }, { "track_name": "Say Yes To Heaven - Sped Up", @@ -5382,7 +5573,8 @@ "speechiness": 0.0287, "tempo": 133.891, "time_signature": 4, - "valence": 0.183 + "valence": 0.183, + "playcount": "31865731" }, { "track_name": "Summertime Sadness - Sped Up", @@ -5408,7 +5600,8 @@ "speechiness": 0.0441, "tempo": 149.907, "time_signature": 4, - "valence": 0.336 + "valence": 0.336, + "playcount": "55089039" }, { "track_name": "Summertime Sadness", @@ -5433,7 +5626,8 @@ "speechiness": 0.032, "tempo": 111.975, "time_signature": 4, - "valence": 0.245 + "valence": 0.245, + "playcount": "1186074220" }, { "track_name": "Buddy's Rendezvous", @@ -5459,7 +5653,8 @@ "speechiness": 0.03, "tempo": 77.657, "time_signature": 4, - "valence": 0.245 + "valence": 0.245, + "playcount": "13556058" }, { "track_name": "Goodbye Mr Blue", @@ -5484,7 +5679,8 @@ "speechiness": 0.0288, "tempo": 104.958, "time_signature": 4, - "valence": 0.476 + "valence": 0.476, + "playcount": "14524393" }, { "track_name": "Kiss Me (I Loved You)", @@ -5509,7 +5705,8 @@ "speechiness": 0.0332, "tempo": 76.937, "time_signature": 4, - "valence": 0.412 + "valence": 0.412, + "playcount": "2877237" }, { "track_name": "(Everything But) Her Love", @@ -5534,7 +5731,8 @@ "speechiness": 0.025, "tempo": 111.947, "time_signature": 3, - "valence": 0.396 + "valence": 0.396, + "playcount": "1584479" }, { "track_name": "Chloë", @@ -5559,7 +5757,8 @@ "speechiness": 0.0239, "tempo": 77.988, "time_signature": 4, - "valence": 0.541 + "valence": 0.541, + "playcount": "2761946" }, { "track_name": "Buddy's Rendezvous", @@ -5584,7 +5783,8 @@ "speechiness": 0.0273, "tempo": 77.022, "time_signature": 4, - "valence": 0.272 + "valence": 0.272, + "playcount": "3431344" }, { "track_name": "Dayglo Reflection - Orchestral Version", @@ -5610,7 +5810,8 @@ "speechiness": 0.0406, "tempo": 89.126, "time_signature": 4, - "valence": 0.251 + "valence": 0.251, + "playcount": "2691704" }, { "track_name": "Watercolor Eyes - From “Euphoria” An HBO Original Series", @@ -5635,7 +5836,8 @@ "speechiness": 0.0316, "tempo": 120.443, "time_signature": 4, - "valence": 0.121 + "valence": 0.121, + "playcount": "111713859" }, { "track_name": "Arcadia", @@ -5660,7 +5862,8 @@ "speechiness": 0.0335, "tempo": 81.826, "time_signature": 4, - "valence": 0.191 + "valence": 0.191, + "playcount": "49959271" }, { "track_name": "Wildflower Wildfire", @@ -5685,7 +5888,8 @@ "speechiness": 0.0323, "tempo": 79.592, "time_signature": 5, - "valence": 0.211 + "valence": 0.211, + "playcount": "35171628" }, { "track_name": "Text Book", @@ -5710,7 +5914,8 @@ "speechiness": 0.0427, "tempo": 119.433, "time_signature": 3, - "valence": 0.102 + "valence": 0.102, + "playcount": "38629265" }, { "track_name": "Blue Banisters", @@ -5735,7 +5940,8 @@ "speechiness": 0.0415, "tempo": 85.986, "time_signature": 3, - "valence": 0.177 + "valence": 0.177, + "playcount": "45370561" }, { "track_name": "Summertime The Gershwin Version", @@ -5760,7 +5966,8 @@ "speechiness": 0.0366, "tempo": 189.986, "time_signature": 3, - "valence": 0.21 + "valence": 0.21, + "playcount": "18608272" }, { "track_name": "Hallucinogenics (feat. Lana Del Rey)", @@ -5786,7 +5993,8 @@ "speechiness": 0.0527, "tempo": 121.843, "time_signature": 4, - "valence": 0.313 + "valence": 0.313, + "playcount": "50081707" }, { "track_name": "Season Of The Witch", @@ -5811,7 +6019,8 @@ "speechiness": 0.0399, "tempo": 95.984, "time_signature": 4, - "valence": 0.355 + "valence": 0.355, + "playcount": "61276169" }, { "track_name": "Looking For America", @@ -5836,7 +6045,8 @@ "speechiness": 0.0373, "tempo": 90.075, "time_signature": 3, - "valence": 0.101 + "valence": 0.101, + "playcount": "19417238" }, { "track_name": "Doin' Time", @@ -5861,7 +6071,8 @@ "speechiness": 0.0434, "tempo": 144.936, "time_signature": 4, - "valence": 0.446 + "valence": 0.446, + "playcount": "583678806" }, { "track_name": "God Save Our Young Blood (with Lana Del Rey)", @@ -5887,7 +6098,8 @@ "speechiness": 0.0527, "tempo": 130.973, "time_signature": 4, - "valence": 0.396 + "valence": 0.396, + "playcount": "38013012" }, { "track_name": "Summer Bummer - Snakehips Remix", @@ -5915,7 +6127,8 @@ "speechiness": 0.223, "tempo": 135.026, "time_signature": 4, - "valence": 0.335 + "valence": 0.335, + "playcount": "4219332" }, { "track_name": "Summer Bummer - Clams Casino Remix", @@ -5943,7 +6156,8 @@ "speechiness": 0.109, "tempo": 34.562, "time_signature": 4, - "valence": 0.0947 + "valence": 0.0947, + "playcount": "1357225" }, { "track_name": "Lust For Life - The Avener Rework", @@ -5970,7 +6184,8 @@ "speechiness": 0.0398, "tempo": 102.007, "time_signature": 4, - "valence": 0.455 + "valence": 0.455, + "playcount": "5713257" }, { "track_name": "Lust For Life - BloodPop® Remix", @@ -5997,7 +6212,8 @@ "speechiness": 0.0319, "tempo": 99.991, "time_signature": 4, - "valence": 0.498 + "valence": 0.498, + "playcount": "9061705" }, { "track_name": "Lust for Life (with The Weeknd)", @@ -6023,7 +6239,8 @@ "speechiness": 0.0554, "tempo": 99.919, "time_signature": 4, - "valence": 0.267 + "valence": 0.267, + "playcount": "318087450" }, { "track_name": "Ultraviolence - Hook N Sling Remix", @@ -6049,7 +6266,8 @@ "speechiness": 0.0442, "tempo": 128.01, "time_signature": 4, - "valence": 0.461 + "valence": 0.461, + "playcount": "10311097" }, { "track_name": "West Coast", @@ -6074,7 +6292,8 @@ "speechiness": 0.039, "tempo": 93.05, "time_signature": 4, - "valence": 0.428 + "valence": 0.428, + "playcount": "566352709" }, { "track_name": "West Coast - ZHU Remix", @@ -6100,7 +6319,8 @@ "speechiness": 0.0613, "tempo": 116.009, "time_signature": 4, - "valence": 0.368 + "valence": 0.368, + "playcount": "11156126" }, { "track_name": "West Coast - Ten Ven Remix", @@ -6126,7 +6346,8 @@ "speechiness": 0.0417, "tempo": 123.304, "time_signature": 4, - "valence": 0.487 + "valence": 0.487, + "playcount": "1031283" }, { "track_name": "West Coast - The GRADES Icon Mix", @@ -6152,7 +6373,8 @@ "speechiness": 0.175, "tempo": 110.021, "time_signature": 4, - "valence": 0.475 + "valence": 0.475, + "playcount": "4412999" }, { "track_name": "West Coast - MK Remix", @@ -6178,7 +6400,8 @@ "speechiness": 0.0606, "tempo": 123.007, "time_signature": 4, - "valence": 0.405 + "valence": 0.405, + "playcount": "1485054" }, { "track_name": "Ultraviolence", @@ -6203,7 +6426,8 @@ "speechiness": 0.0324, "tempo": 83.994, "time_signature": 3, - "valence": 0.103 + "valence": 0.103, + "playcount": "232989819" }, { "track_name": "Summertime Sadness - Monsieur Adi Remix", @@ -6229,7 +6453,8 @@ "speechiness": 0.237, "tempo": 122.972, "time_signature": 4, - "valence": 0.485 + "valence": 0.485, + "playcount": "1469431" }, { "track_name": "Shades Of Cool", @@ -6254,7 +6479,8 @@ "speechiness": 0.0302, "tempo": 137.918, "time_signature": 3, - "valence": 0.0878 + "valence": 0.0878, + "playcount": "161335436" }, { "track_name": "Once Upon a Dream - From \"Maleficent\" / Pop Version", @@ -6279,7 +6505,8 @@ "speechiness": 0.0353, "tempo": 119.997, "time_signature": 3, - "valence": 0.167 + "valence": 0.167, + "playcount": "136884234" }, { "track_name": "Once Upon a Dream - From “Maleficent”/Young Ruffian Remix", @@ -6304,7 +6531,8 @@ "speechiness": 0.0805, "tempo": 119.895, "time_signature": 3, - "valence": 0.229 + "valence": 0.229, + "playcount": "6494844" }, { "track_name": "Brooklyn Baby", @@ -6329,7 +6557,8 @@ "speechiness": 0.0407, "tempo": 107.747, "time_signature": 4, - "valence": 0.0949 + "valence": 0.0949, + "playcount": "552732411" }, { "track_name": "Summertime Sadness - Asadinho Vocal Mix", @@ -6354,7 +6583,8 @@ "speechiness": 0.0557, "tempo": 118.01, "time_signature": 4, - "valence": 0.413 + "valence": 0.413, + "playcount": "5465494" }, { "track_name": "Summertime Sadness - Asadinho Dub", @@ -6379,7 +6609,8 @@ "speechiness": 0.0565, "tempo": 118.024, "time_signature": 4, - "valence": 0.281 + "valence": 0.281, + "playcount": "2350763" }, { "track_name": "Summertime Sadness - Asadinho Instrumental", @@ -6404,7 +6635,8 @@ "speechiness": 0.0539, "tempo": 118.018, "time_signature": 4, - "valence": 0.293 + "valence": 0.293, + "playcount": "861501" }, { "track_name": "Summertime Sadness - Ryan Hemsworth Remix", @@ -6430,7 +6662,8 @@ "speechiness": 0.0335, "tempo": 123.996, "time_signature": 4, - "valence": 0.126 + "valence": 0.126, + "playcount": "616026" }, { "track_name": "Summertime - Imanbek Remix", @@ -6456,7 +6689,8 @@ "speechiness": 0.17, "tempo": 121.995, "time_signature": 4, - "valence": 0.827 + "valence": 0.827, + "playcount": "12878293" }, { "track_name": "Dark Paradise - Parov Stelar Remix", @@ -6482,7 +6716,8 @@ "speechiness": 0.0391, "tempo": 119.992, "time_signature": 4, - "valence": 0.486 + "valence": 0.486, + "playcount": "13762720" }, { "track_name": "Summertime Sadness (Lana Del Rey Vs. Cedric Gervais) - Cedric Gervais Remix", @@ -6508,7 +6743,8 @@ "speechiness": 0.0558, "tempo": 126.052, "time_signature": 4, - "valence": 0.11 + "valence": 0.11, + "playcount": "631346028" }, { "track_name": "Young And Beautiful", @@ -6533,7 +6769,8 @@ "speechiness": 0.0368, "tempo": 113.986, "time_signature": 4, - "valence": 0.151 + "valence": 0.151, + "playcount": "1061034874" }, { "track_name": "Ride", @@ -6558,7 +6795,8 @@ "speechiness": 0.034, "tempo": 93.763, "time_signature": 4, - "valence": 0.189 + "valence": 0.189, + "playcount": "323367799" }, { "track_name": "Ride - Active Child Remix", @@ -6584,7 +6822,8 @@ "speechiness": 0.0252, "tempo": 140.952, "time_signature": 3, - "valence": 0.373 + "valence": 0.373, + "playcount": "1009042" }, { "track_name": "Blue Velvet - Penguin Prison Remix", @@ -6610,7 +6849,8 @@ "speechiness": 0.0478, "tempo": 112.004, "time_signature": 4, - "valence": 0.515 + "valence": 0.515, + "playcount": "533220" }, { "track_name": "Blue Velvet - Lindstrom Remix", @@ -6636,7 +6876,8 @@ "speechiness": 0.0797, "tempo": 120.0, "time_signature": 4, - "valence": 0.318 + "valence": 0.318, + "playcount": "472973" }, { "track_name": "Blue Jeans - Kris Menace Remix", @@ -6662,7 +6903,8 @@ "speechiness": 0.0744, "tempo": 118.005, "time_signature": 4, - "valence": 0.569 + "valence": 0.569, + "playcount": "7287544" }, { "track_name": "Blue Jeans - Kris Menace Instrumental", @@ -6688,7 +6930,8 @@ "speechiness": 0.044, "tempo": 117.972, "time_signature": 4, - "valence": 0.559 + "valence": 0.559, + "playcount": "1549090" }, { "track_name": "Blue Jeans - Remastered 2011", @@ -6713,7 +6956,8 @@ "speechiness": 0.0615, "tempo": 117.973, "time_signature": 4, - "valence": 0.471 + "valence": 0.471, + "playcount": "415287880" }, { "track_name": "Blue Jeans - Gesaffelstein Remix", @@ -6739,7 +6983,8 @@ "speechiness": 0.0578, "tempo": 118.134, "time_signature": 4, - "valence": 0.412 + "valence": 0.412, + "playcount": "10904594" }, { "track_name": "Blue Jeans - Odd Future's The Internet Mix", @@ -6767,7 +7012,8 @@ "speechiness": 0.0352, "tempo": 117.971, "time_signature": 4, - "valence": 0.569 + "valence": 0.569, + "playcount": "602169" }, { "track_name": "Blue Jeans - Blood Orange Remix", @@ -6793,7 +7039,8 @@ "speechiness": 0.0477, "tempo": 117.931, "time_signature": 4, - "valence": 0.225 + "valence": 0.225, + "playcount": "774843" }, { "track_name": "Born To Die", @@ -6818,7 +7065,8 @@ "speechiness": 0.0362, "tempo": 85.487, "time_signature": 4, - "valence": 0.402 + "valence": 0.402, + "playcount": "589542211" }, { "track_name": "Born To Die - PDP / 13 Remix", @@ -6844,7 +7092,8 @@ "speechiness": 0.0827, "tempo": 149.999, "time_signature": 4, - "valence": 0.766 + "valence": 0.766, + "playcount": "957477" }, { "track_name": "Born To Die - Woodkid & The Shoes Remix", @@ -6871,7 +7120,8 @@ "speechiness": 0.0456, "tempo": 93.009, "time_signature": 4, - "valence": 0.192 + "valence": 0.192, + "playcount": "8236809" }, { "track_name": "Born To Die - Clams Casino Remix", @@ -6897,7 +7147,8 @@ "speechiness": 0.0621, "tempo": 86.007, "time_signature": 4, - "valence": 0.19 + "valence": 0.19, + "playcount": "673944" }, { "track_name": "Video Games - Club Clique For The Bad Girls Remix", @@ -6923,7 +7174,8 @@ "speechiness": 0.0413, "tempo": 122.478, "time_signature": 4, - "valence": 0.473 + "valence": 0.473, + "playcount": "3109960" }, { "track_name": "Video Games - Jakwob and Etherwood Remix", @@ -6950,7 +7202,8 @@ "speechiness": 0.0452, "tempo": 155.028, "time_signature": 4, - "valence": 0.39 + "valence": 0.39, + "playcount": "1714950" }, { "track_name": "Video Games - White Lies C-Mix", @@ -6976,7 +7229,8 @@ "speechiness": 0.0358, "tempo": 122.501, "time_signature": 4, - "valence": 0.364 + "valence": 0.364, + "playcount": "1274327" }, { "track_name": "Video Games - Jamie Woon Remix", @@ -7002,7 +7256,8 @@ "speechiness": 0.0867, "tempo": 139.959, "time_signature": 4, - "valence": 0.808 + "valence": 0.808, + "playcount": "1094550" }, { "track_name": "Video Games - We Don’t Belong In Pacha Remix", @@ -7028,7 +7283,8 @@ "speechiness": 0.0561, "tempo": 128.004, "time_signature": 4, - "valence": 0.615 + "valence": 0.615, + "playcount": "1394377" }, { "track_name": "Blue Jeans - Smims & Belle Remix", @@ -7055,7 +7311,8 @@ "speechiness": 0.134, "tempo": 117.948, "time_signature": 4, - "valence": 0.501 + "valence": 0.501, + "playcount": "4190832" }, { "track_name": "Blue Jeans - Gesaffelstein Remix", @@ -7081,7 +7338,8 @@ "speechiness": 0.0547, "tempo": 118.153, "time_signature": 4, - "valence": 0.407 + "valence": 0.407, + "playcount": "10904594" }, { "track_name": "Blue Jeans - RAC Mix", @@ -7107,7 +7365,8 @@ "speechiness": 0.0524, "tempo": 117.968, "time_signature": 4, - "valence": 0.416 + "valence": 0.416, + "playcount": "20557089" }, { "track_name": "Blue Jeans - Club Clique Nothing Is Real Remix", @@ -7133,7 +7392,8 @@ "speechiness": 0.0537, "tempo": 121.98, "time_signature": 4, - "valence": 0.832 + "valence": 0.832, + "playcount": "2042593" }, { "track_name": "Blue Jeans - Kris Menace Remix", @@ -7159,7 +7419,8 @@ "speechiness": 0.104, "tempo": 118.007, "time_signature": 4, - "valence": 0.553 + "valence": 0.553, + "playcount": "7287544" }, { "track_name": "Blue Jeans - Penguin Prison Remix", @@ -7185,7 +7446,8 @@ "speechiness": 0.0341, "tempo": 120.017, "time_signature": 4, - "valence": 0.744 + "valence": 0.744, + "playcount": "2649276" }, { "track_name": "Video Games", @@ -7210,7 +7472,42 @@ "speechiness": 0.0324, "tempo": 123.856, "time_signature": 4, - "valence": 0.203 + "valence": 0.203, + "playcount": "798410614" + } + ], + "monthly_listeners": 57028358, + "world_rank": 30, + "top_cities": [ + { + "numberOfListeners": 821630, + "city": "Jakarta", + "country": "ID", + "region": "JK" + }, + { + "numberOfListeners": 801482, + "city": "London", + "country": "GB", + "region": "ENG" + }, + { + "numberOfListeners": 696893, + "city": "Mexico City", + "country": "MX", + "region": "CMX" + }, + { + "numberOfListeners": 649193, + "city": "Istanbul", + "country": "TR", + "region": "34" + }, + { + "numberOfListeners": 625295, + "city": "Sydney", + "country": "AU", + "region": "NSW" } ] } \ No newline at end of file diff --git a/src/aggregator/resources/artists/artist-0M2HHtY3OOQzIZxrHkbJLT.json b/src/aggregator/resources/artists/artist-0M2HHtY3OOQzIZxrHkbJLT.json index e10bc7b..9a62775 100644 --- a/src/aggregator/resources/artists/artist-0M2HHtY3OOQzIZxrHkbJLT.json +++ b/src/aggregator/resources/artists/artist-0M2HHtY3OOQzIZxrHkbJLT.json @@ -2,7 +2,7 @@ "artist_id": "0M2HHtY3OOQzIZxrHkbJLT", "name": "M|O|O|N", "popularity": 44, - "followers": 129280, + "followers": 129917, "genres": [ "synthwave" ], @@ -167,7 +167,8 @@ "speechiness": 0.0385, "tempo": 99.992, "time_signature": 4, - "valence": 0.376 + "valence": 0.376, + "playcount": "127912" }, { "track_name": "Grift", @@ -192,7 +193,8 @@ "speechiness": 0.0708, "tempo": 122.006, "time_signature": 4, - "valence": 0.621 + "valence": 0.621, + "playcount": "353146" }, { "track_name": "Carin's Locked Groove", @@ -217,7 +219,8 @@ "speechiness": 0.154, "tempo": 130.109, "time_signature": 4, - "valence": 0.108 + "valence": 0.108, + "playcount": "53625" }, { "track_name": "To Have Trust In You", @@ -242,7 +245,8 @@ "speechiness": 0.1, "tempo": 74.636, "time_signature": 4, - "valence": 0.422 + "valence": 0.422, + "playcount": "65825" }, { "track_name": "Come Alone", @@ -267,7 +271,8 @@ "speechiness": 0.083, "tempo": 118.045, "time_signature": 4, - "valence": 0.77 + "valence": 0.77, + "playcount": "186048" }, { "track_name": "Mains Hum", @@ -292,7 +297,8 @@ "speechiness": 0.0573, "tempo": 122.924, "time_signature": 4, - "valence": 0.583 + "valence": 0.583, + "playcount": "57632" }, { "track_name": "LS7 Swap", @@ -317,7 +323,8 @@ "speechiness": 0.0545, "tempo": 132.013, "time_signature": 4, - "valence": 0.411 + "valence": 0.411, + "playcount": "39111" }, { "track_name": "Sometimes Love", @@ -342,7 +349,8 @@ "speechiness": 0.0564, "tempo": 170.043, "time_signature": 4, - "valence": 0.795 + "valence": 0.795, + "playcount": "40353" }, { "track_name": "Patapon", @@ -367,7 +375,8 @@ "speechiness": 0.0544, "tempo": 129.003, "time_signature": 4, - "valence": 0.18 + "valence": 0.18, + "playcount": "34205" }, { "track_name": "Would U?", @@ -392,7 +401,8 @@ "speechiness": 0.0646, "tempo": 131.981, "time_signature": 4, - "valence": 0.777 + "valence": 0.777, + "playcount": "46683" }, { "track_name": "Locked", @@ -417,7 +427,8 @@ "speechiness": 0.0645, "tempo": 127.008, "time_signature": 4, - "valence": 0.327 + "valence": 0.327, + "playcount": "30188" }, { "track_name": "justavoice8_21_17.wav", @@ -442,7 +453,8 @@ "speechiness": 0.0411, "tempo": 124.996, "time_signature": 4, - "valence": 0.107 + "valence": 0.107, + "playcount": "96326" }, { "track_name": "savemesomeofdat7_14_17v2.wav", @@ -467,7 +479,8 @@ "speechiness": 0.0479, "tempo": 124.024, "time_signature": 4, - "valence": 0.132 + "valence": 0.132, + "playcount": "57170" }, { "track_name": "a lil surfer baby6_30_17-1.wav", @@ -492,7 +505,8 @@ "speechiness": 0.0595, "tempo": 132.128, "time_signature": 4, - "valence": 0.265 + "valence": 0.265, + "playcount": "53785" }, { "track_name": "NEWIDEA6_1_17.wav", @@ -517,7 +531,8 @@ "speechiness": 0.0609, "tempo": 130.017, "time_signature": 4, - "valence": 0.565 + "valence": 0.565, + "playcount": "32837" }, { "track_name": "90guy5_31_17v2.wav", @@ -542,7 +557,8 @@ "speechiness": 0.0635, "tempo": 89.975, "time_signature": 4, - "valence": 0.391 + "valence": 0.391, + "playcount": "38839" }, { "track_name": "bells5_31_17.wav", @@ -567,7 +583,8 @@ "speechiness": 0.0363, "tempo": 108.978, "time_signature": 4, - "valence": 0.111 + "valence": 0.111, + "playcount": "24941" }, { "track_name": "takeitdownWITHOUT3_23_17.wav", @@ -592,7 +609,8 @@ "speechiness": 0.0567, "tempo": 129.999, "time_signature": 4, - "valence": 0.345 + "valence": 0.345, + "playcount": "38493" }, { "track_name": "baleric nonsensenew2_15_17-1.wav", @@ -617,7 +635,8 @@ "speechiness": 0.0615, "tempo": 126.01, "time_signature": 3, - "valence": 0.111 + "valence": 0.111, + "playcount": "22030" }, { "track_name": "fleur2_2_17.wav", @@ -642,7 +661,8 @@ "speechiness": 0.0411, "tempo": 129.995, "time_signature": 4, - "valence": 0.771 + "valence": 0.771, + "playcount": "24682" }, { "track_name": "3amideasnew1_16_17.wav", @@ -667,7 +687,8 @@ "speechiness": 0.0845, "tempo": 122.006, "time_signature": 4, - "valence": 0.373 + "valence": 0.373, + "playcount": "32941" }, { "track_name": "another1new12_30_16.wav", @@ -692,7 +713,8 @@ "speechiness": 0.0332, "tempo": 130.016, "time_signature": 4, - "valence": 0.653 + "valence": 0.653, + "playcount": "66720" }, { "track_name": "ucant4_6_16.wav", @@ -717,7 +739,8 @@ "speechiness": 0.0621, "tempo": 121.972, "time_signature": 4, - "valence": 0.0397 + "valence": 0.0397, + "playcount": "26994" }, { "track_name": "OTHERweirdchordshit4_5_16.wav", @@ -742,7 +765,8 @@ "speechiness": 0.033, "tempo": 135.004, "time_signature": 4, - "valence": 0.163 + "valence": 0.163, + "playcount": "21165" }, { "track_name": "arp2600jam.wav", @@ -767,7 +791,8 @@ "speechiness": 0.13, "tempo": 126.038, "time_signature": 4, - "valence": 0.0355 + "valence": 0.0355, + "playcount": "28838" }, { "track_name": "crystalsreprise2_2_15.wav", @@ -792,7 +817,8 @@ "speechiness": 0.895, "tempo": 191.225, "time_signature": 4, - "valence": 0.318 + "valence": 0.318, + "playcount": "42454" }, { "track_name": "acidsketch2.wav", @@ -817,7 +843,8 @@ "speechiness": 0.065, "tempo": 125.994, "time_signature": 4, - "valence": 0.372 + "valence": 0.372, + "playcount": "15518" }, { "track_name": "acidsketch1.wav", @@ -842,7 +869,8 @@ "speechiness": 0.0786, "tempo": 126.051, "time_signature": 4, - "valence": 0.333 + "valence": 0.333, + "playcount": "17501" }, { "track_name": "interlude11_14_14.wav", @@ -867,7 +895,8 @@ "speechiness": 0.121, "tempo": 138.835, "time_signature": 4, - "valence": 0.0686 + "valence": 0.0686, + "playcount": "13316" }, { "track_name": "chvmpisadumbname10_26_14.wav", @@ -892,7 +921,8 @@ "speechiness": 0.114, "tempo": 129.945, "time_signature": 4, - "valence": 0.215 + "valence": 0.215, + "playcount": "13496" }, { "track_name": "bigthing6_22_14.wav", @@ -917,7 +947,8 @@ "speechiness": 0.0618, "tempo": 170.98, "time_signature": 5, - "valence": 0.0314 + "valence": 0.0314, + "playcount": "14864" }, { "track_name": "thing4omar6_2_14.wav", @@ -942,7 +973,8 @@ "speechiness": 0.0821, "tempo": 118.029, "time_signature": 4, - "valence": 0.0395 + "valence": 0.0395, + "playcount": "19277" }, { "track_name": "Pilot", @@ -967,7 +999,8 @@ "speechiness": 0.0345, "tempo": 110.113, "time_signature": 4, - "valence": 0.416 + "valence": 0.416, + "playcount": "327480" }, { "track_name": "Time", @@ -992,7 +1025,8 @@ "speechiness": 0.0294, "tempo": 103.874, "time_signature": 4, - "valence": 0.0842 + "valence": 0.0842, + "playcount": "1245870" }, { "track_name": "Jon F", @@ -1017,7 +1051,8 @@ "speechiness": 0.0361, "tempo": 130.002, "time_signature": 4, - "valence": 0.648 + "valence": 0.648, + "playcount": "242250" }, { "track_name": "Episode One", @@ -1042,7 +1077,8 @@ "speechiness": 0.0513, "tempo": 121.255, "time_signature": 4, - "valence": 0.0866 + "valence": 0.0866, + "playcount": "145273" }, { "track_name": "Medium Cool", @@ -1067,7 +1103,8 @@ "speechiness": 0.0441, "tempo": 116.031, "time_signature": 4, - "valence": 0.0378 + "valence": 0.0378, + "playcount": "333000" }, { "track_name": "Alicia", @@ -1092,7 +1129,8 @@ "speechiness": 0.0326, "tempo": 115.013, "time_signature": 4, - "valence": 0.63 + "valence": 0.63, + "playcount": "309590" }, { "track_name": "The Fens", @@ -1117,7 +1155,8 @@ "speechiness": 0.0685, "tempo": 117.998, "time_signature": 4, - "valence": 0.138 + "valence": 0.138, + "playcount": "194019" }, { "track_name": "Episode Two", @@ -1142,7 +1181,8 @@ "speechiness": 0.148, "tempo": 78.67, "time_signature": 4, - "valence": 0.425 + "valence": 0.425, + "playcount": "123862" }, { "track_name": "Leaning In", @@ -1167,7 +1207,8 @@ "speechiness": 0.0315, "tempo": 121.994, "time_signature": 4, - "valence": 0.175 + "valence": 0.175, + "playcount": "696193" }, { "track_name": "Finale", @@ -1192,7 +1233,8 @@ "speechiness": 0.0307, "tempo": 96.658, "time_signature": 4, - "valence": 0.156 + "valence": 0.156, + "playcount": "141058" }, { "track_name": "To Live and Lie in LA", @@ -1217,7 +1259,8 @@ "speechiness": 0.0656, "tempo": 117.006, "time_signature": 4, - "valence": 0.605 + "valence": 0.605, + "playcount": "17812" }, { "track_name": "Smoke Machine", @@ -1242,7 +1285,8 @@ "speechiness": 0.0363, "tempo": 129.05, "time_signature": 4, - "valence": 0.53 + "valence": 0.53, + "playcount": "3252" }, { "track_name": "Happiness is for Beautiful People", @@ -1267,7 +1311,8 @@ "speechiness": 0.36, "tempo": 121.009, "time_signature": 4, - "valence": 0.0672 + "valence": 0.0672, + "playcount": "5142" }, { "track_name": "A Song for Fred", @@ -1292,7 +1337,8 @@ "speechiness": 0.0648, "tempo": 122.998, "time_signature": 4, - "valence": 0.36 + "valence": 0.36, + "playcount": "3192" }, { "track_name": "Broker Fee", @@ -1317,7 +1363,8 @@ "speechiness": 0.0596, "tempo": 155.029, "time_signature": 4, - "valence": 0.554 + "valence": 0.554, + "playcount": "188890" }, { "track_name": "Attachment", @@ -1342,7 +1389,8 @@ "speechiness": 0.0456, "tempo": 150.01, "time_signature": 4, - "valence": 0.664 + "valence": 0.664, + "playcount": "34275" }, { "track_name": "Bleach", @@ -1367,7 +1415,8 @@ "speechiness": 0.0403, "tempo": 142.015, "time_signature": 4, - "valence": 0.877 + "valence": 0.877, + "playcount": "58962" }, { "track_name": "Never Work", @@ -1392,7 +1441,8 @@ "speechiness": 0.101, "tempo": 142.959, "time_signature": 4, - "valence": 0.304 + "valence": 0.304, + "playcount": "31185" }, { "track_name": "Come Alone", @@ -1417,7 +1467,8 @@ "speechiness": 0.0819, "tempo": 118.05, "time_signature": 4, - "valence": 0.764 + "valence": 0.764, + "playcount": "186048" }, { "track_name": "Grift", @@ -1442,7 +1493,8 @@ "speechiness": 0.0708, "tempo": 122.006, "time_signature": 4, - "valence": 0.621 + "valence": 0.621, + "playcount": "353146" }, { "track_name": "Alicia - Single Version", @@ -1467,7 +1519,8 @@ "speechiness": 0.0338, "tempo": 115.017, "time_signature": 4, - "valence": 0.496 + "valence": 0.496, + "playcount": "1224997" }, { "track_name": "Alicia - Juan Maclean Remix", @@ -1492,7 +1545,8 @@ "speechiness": 0.0432, "tempo": 115.0, "time_signature": 4, - "valence": 0.558 + "valence": 0.558, + "playcount": "114821" }, { "track_name": "Alicia - Sage Caswell Rezone", @@ -1517,7 +1571,8 @@ "speechiness": 0.0536, "tempo": 127.006, "time_signature": 4, - "valence": 0.266 + "valence": 0.266, + "playcount": "58125" }, { "track_name": "Alicia - David Scott Stone Remix", @@ -1542,7 +1597,8 @@ "speechiness": 0.0554, "tempo": 111.993, "time_signature": 4, - "valence": 0.433 + "valence": 0.433, + "playcount": "100257" }, { "track_name": "Timestamp", @@ -1568,7 +1624,8 @@ "speechiness": 0.0969, "tempo": 179.437, "time_signature": 4, - "valence": 0.145 + "valence": 0.145, + "playcount": "1226724" }, { "track_name": "Chlorophyll", @@ -1593,7 +1650,8 @@ "speechiness": 0.0401, "tempo": 109.788, "time_signature": 4, - "valence": 0.0556 + "valence": 0.0556, + "playcount": "31853" }, { "track_name": "Rubber", @@ -1618,7 +1676,8 @@ "speechiness": 0.0556, "tempo": 99.975, "time_signature": 4, - "valence": 0.148 + "valence": 0.148, + "playcount": "23724" }, { "track_name": "Quixotic", @@ -1643,7 +1702,8 @@ "speechiness": 0.052, "tempo": 118.012, "time_signature": 4, - "valence": 0.34 + "valence": 0.34, + "playcount": "7321032" }, { "track_name": "Follow Me", @@ -1668,7 +1728,8 @@ "speechiness": 0.101, "tempo": 110.004, "time_signature": 4, - "valence": 0.0758 + "valence": 0.0758, + "playcount": "809138" }, { "track_name": "Certainty", @@ -1693,7 +1754,8 @@ "speechiness": 0.141, "tempo": 110.0, "time_signature": 4, - "valence": 0.0719 + "valence": 0.0719, + "playcount": "930052" }, { "track_name": "Case Logic", @@ -1718,7 +1780,8 @@ "speechiness": 0.146, "tempo": 120.022, "time_signature": 3, - "valence": 0.2 + "valence": 0.2, + "playcount": "692911" }, { "track_name": "Dust", @@ -1743,7 +1806,8 @@ "speechiness": 0.0449, "tempo": 100.007, "time_signature": 4, - "valence": 0.241 + "valence": 0.241, + "playcount": "27635381" }, { "track_name": "Plus Four", @@ -1768,7 +1832,8 @@ "speechiness": 0.0367, "tempo": 117.993, "time_signature": 4, - "valence": 0.036 + "valence": 0.036, + "playcount": "1438401" }, { "track_name": "Warehouse (feat. Glass Teeth)", @@ -1794,7 +1859,8 @@ "speechiness": 0.0368, "tempo": 123.005, "time_signature": 4, - "valence": 0.269 + "valence": 0.269, + "playcount": "1366045" }, { "track_name": "Delay", @@ -1819,7 +1885,8 @@ "speechiness": 0.039, "tempo": 127.993, "time_signature": 4, - "valence": 0.353 + "valence": 0.353, + "playcount": "3154029" }, { "track_name": "Paris", @@ -1844,7 +1911,8 @@ "speechiness": 0.0463, "tempo": 99.992, "time_signature": 4, - "valence": 0.161 + "valence": 0.161, + "playcount": "13992117" }, { "track_name": "Crystals", @@ -1869,7 +1937,8 @@ "speechiness": 0.191, "tempo": 104.998, "time_signature": 4, - "valence": 0.0373 + "valence": 0.0373, + "playcount": "15444222" }, { "track_name": "Hydrogen", @@ -1894,7 +1963,8 @@ "speechiness": 0.0524, "tempo": 125.936, "time_signature": 4, - "valence": 0.0447 + "valence": 0.0447, + "playcount": "27351699" }, { "track_name": "Release", @@ -1919,7 +1989,42 @@ "speechiness": 0.0608, "tempo": 108.006, "time_signature": 4, - "valence": 0.0735 + "valence": 0.0735, + "playcount": "5882347" + } + ], + "monthly_listeners": 382907, + "world_rank": 0, + "top_cities": [ + { + "numberOfListeners": 5681, + "city": "Warsaw", + "country": "PL", + "region": "14" + }, + { + "numberOfListeners": 4342, + "city": "Santiago", + "country": "CL", + "region": "RM" + }, + { + "numberOfListeners": 4274, + "city": "Paris", + "country": "FR", + "region": "IDF" + }, + { + "numberOfListeners": 4031, + "city": "Kyiv", + "country": "UA", + "region": "30" + }, + { + "numberOfListeners": 3660, + "city": "London", + "country": "GB", + "region": "ENG" } ] } \ No newline at end of file diff --git a/src/aggregator/resources/artists/artist-1.json b/src/aggregator/resources/artists/artist-1.json deleted file mode 100644 index 170ae48..0000000 --- a/src/aggregator/resources/artists/artist-1.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "artist_id": "0M2HHtY3OOQzIZxrHkbJLT", - "name": "M|O|O|N", - "popularity": 44, - "followers": 129088, - "genres": [ - "genre1", - "genre2" - ], - "albums": [ - { - "album_name": "Particles E.P.", - "album_id": "1kvyU0WQNcenwnLRBwyWhB", - "album_type": "album", - "release_date": "2022-10-21", - "genres": [ - "genre3", - "genre4" - ], - "label": "Pilot.", - "popularity": 40 - }, - { - "album_name": "MOON E.P.", - "album_id": "1e0tqn3caRoNqZU6YosOLa", - "album_type": "single", - "release_date": "2022-10-22", - "genres": [ - "genre5", - "genre6" - ], - "label": "Pilot2.", - "popularity": 45 - } - ], - "tracks": [ - { - "track_name": "Dust", - "track_id": "2BZYVqGyL1L1adBbq2ClVv", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT", - "AM2HHtY3OOQzIZxrHkbJLA" - ], - "albums": [ - "1kvyU0WQNcenwnLRBwyWhB" - ], - "duration_ms": 320000, - "explicit": false, - "popularity": 49, - "acousticness": 0.000163, - "danceability": 0.579, - "energy": 0.969, - "instrumentalness": 0.116, - "key": 9, - "liveness": 0.0994, - "loudness": -1.925, - "mode": 1, - "speechiness": 0.115, - "tempo": 173.979, - "time_signature": 4, - "valence": 0.387 - }, - { - "track_name": "Dust2", - "track_id": "3BZYVqGyL1L1adBbq2ClVv", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT", - "AM2HHtY3OOQzIZxrHkbJLA" - ], - "albums": [ - "1e0tqn3caRoNqZU6YosOLa" - ], - "duration_ms": 320001, - "explicit": false, - "popularity": 59, - "acousticness": 0.001163, - "danceability": 0.589, - "energy": 0.979, - "instrumentalness": 0.126, - "key": 10, - "liveness": 0.0997, - "loudness": -1.924, - "mode": 1, - "speechiness": 0.125, - "tempo": 173.976, - "time_signature": 4, - "valence": 0.367 - } - ] -} \ No newline at end of file diff --git a/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json b/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json index 3612556..28905e2 100644 --- a/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json +++ b/src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json @@ -2,7 +2,7 @@ "artist_id": "4tZwfgrHOc3mvqYlEYSvVi", "name": "Daft Punk", "popularity": 78, - "followers": 9715449, + "followers": 9760273, "genres": [ "electro", "filter house", @@ -349,7 +349,8 @@ "speechiness": 0.0595, "tempo": 118.954, "time_signature": 4, - "valence": 0.802 + "valence": 0.802, + "playcount": "344957" }, { "track_name": "The Game of Love (Drumless Edition)", @@ -374,7 +375,8 @@ "speechiness": 0.0548, "tempo": 179.903, "time_signature": 4, - "valence": 0.378 + "valence": 0.378, + "playcount": "236774" }, { "track_name": "Giorgio by Moroder (Drumless Edition)", @@ -399,7 +401,8 @@ "speechiness": 0.0519, "tempo": 113.075, "time_signature": 4, - "valence": 0.552 + "valence": 0.552, + "playcount": "245906" }, { "track_name": "Within (Drumless Edition)", @@ -424,7 +427,8 @@ "speechiness": 0.0355, "tempo": 110.11, "time_signature": 4, - "valence": 0.049 + "valence": 0.049, + "playcount": "2217757" }, { "track_name": "Instant Crush (Drumless Edition) (feat. Julian Casablancas)", @@ -450,7 +454,8 @@ "speechiness": 0.0305, "tempo": 137.191, "time_signature": 5, - "valence": 0.202 + "valence": 0.202, + "playcount": "401450" }, { "track_name": "Lose Yourself to Dance (Drumless Edition) (feat. Pharrell Williams)", @@ -476,7 +481,8 @@ "speechiness": 0.0621, "tempo": 199.844, "time_signature": 4, - "valence": 0.912 + "valence": 0.912, + "playcount": "297522" }, { "track_name": "Touch (Drumless Edition) (feat. Paul Williams)", @@ -502,7 +508,8 @@ "speechiness": 0.0571, "tempo": 69.515, "time_signature": 3, - "valence": 0.159 + "valence": 0.159, + "playcount": "194666" }, { "track_name": "Get Lucky (Drumless Edition) (feat. Pharrell Williams and Nile Rodgers)", @@ -529,7 +536,8 @@ "speechiness": 0.0452, "tempo": 116.052, "time_signature": 4, - "valence": 0.845 + "valence": 0.845, + "playcount": "309078" }, { "track_name": "Beyond (Drumless Edition)", @@ -554,7 +562,8 @@ "speechiness": 0.0351, "tempo": 103.998, "time_signature": 4, - "valence": 0.716 + "valence": 0.716, + "playcount": "675188" }, { "track_name": "Motherboard (Drumless Edition)", @@ -579,7 +588,8 @@ "speechiness": 0.0371, "tempo": 102.902, "time_signature": 4, - "valence": 0.13 + "valence": 0.13, + "playcount": "1184272" }, { "track_name": "Fragments of Time (Drumless Edition) (feat. Todd Edwards)", @@ -605,7 +615,8 @@ "speechiness": 0.037, "tempo": 129.984, "time_signature": 4, - "valence": 0.733 + "valence": 0.733, + "playcount": "148457" }, { "track_name": "Doin' it Right (Drumless Edition) (feat. Panda Bear)", @@ -631,7 +642,8 @@ "speechiness": 0.0979, "tempo": 89.019, "time_signature": 4, - "valence": 0.361 + "valence": 0.361, + "playcount": "160845" }, { "track_name": "Contact (Drumless Edition)", @@ -656,7 +668,8 @@ "speechiness": 0.0464, "tempo": 124.159, "time_signature": 4, - "valence": 0.132 + "valence": 0.132, + "playcount": "124372" }, { "track_name": "Give Life Back to Music", @@ -681,7 +694,8 @@ "speechiness": 0.0337, "tempo": 119.038, "time_signature": 4, - "valence": 0.696 + "valence": 0.696, + "playcount": "119801504" }, { "track_name": "The Game of Love", @@ -706,7 +720,8 @@ "speechiness": 0.0338, "tempo": 90.038, "time_signature": 4, - "valence": 0.68 + "valence": 0.68, + "playcount": "68604075" }, { "track_name": "Giorgio by Moroder", @@ -731,7 +746,8 @@ "speechiness": 0.0502, "tempo": 113.203, "time_signature": 4, - "valence": 0.408 + "valence": 0.408, + "playcount": "124687088" }, { "track_name": "Within", @@ -756,7 +772,8 @@ "speechiness": 0.0315, "tempo": 110.116, "time_signature": 4, - "valence": 0.0634 + "valence": 0.0634, + "playcount": "69447024" }, { "track_name": "Instant Crush (feat. Julian Casablancas)", @@ -782,7 +799,8 @@ "speechiness": 0.027, "tempo": 109.942, "time_signature": 4, - "valence": 0.526 + "valence": 0.526, + "playcount": "536787332" }, { "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", @@ -808,7 +826,8 @@ "speechiness": 0.0568, "tempo": 100.163, "time_signature": 4, - "valence": 0.675 + "valence": 0.675, + "playcount": "303911918" }, { "track_name": "Touch (feat. Paul Williams)", @@ -834,7 +853,8 @@ "speechiness": 0.0457, "tempo": 90.526, "time_signature": 4, - "valence": 0.119 + "valence": 0.119, + "playcount": "73669252" }, { "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", @@ -861,7 +881,8 @@ "speechiness": 0.0403, "tempo": 116.05, "time_signature": 4, - "valence": 0.863 + "valence": 0.863, + "playcount": "460603896" }, { "track_name": "Beyond", @@ -886,7 +907,8 @@ "speechiness": 0.0343, "tempo": 104.025, "time_signature": 4, - "valence": 0.785 + "valence": 0.785, + "playcount": "53433869" }, { "track_name": "Motherboard", @@ -911,7 +933,8 @@ "speechiness": 0.0352, "tempo": 103.012, "time_signature": 4, - "valence": 0.283 + "valence": 0.283, + "playcount": "39897005" }, { "track_name": "Fragments of Time (feat. Todd Edwards)", @@ -937,7 +960,8 @@ "speechiness": 0.0433, "tempo": 130.118, "time_signature": 4, - "valence": 0.961 + "valence": 0.961, + "playcount": "69895393" }, { "track_name": "Doin' it Right (feat. Panda Bear)", @@ -963,7 +987,8 @@ "speechiness": 0.0948, "tempo": 178.05, "time_signature": 4, - "valence": 0.19 + "valence": 0.19, + "playcount": "133505635" }, { "track_name": "Contact", @@ -988,7 +1013,8 @@ "speechiness": 0.0496, "tempo": 123.933, "time_signature": 4, - "valence": 0.086 + "valence": 0.086, + "playcount": "46113609" }, { "track_name": "Horizon Ouverture", @@ -1013,7 +1039,8 @@ "speechiness": 0.0367, "tempo": 84.855, "time_signature": 3, - "valence": 0.0392 + "valence": 0.0392, + "playcount": "1401461" }, { "track_name": "Horizon (Japan CD)", @@ -1038,7 +1065,8 @@ "speechiness": 0.0282, "tempo": 110.181, "time_signature": 4, - "valence": 0.129 + "valence": 0.129, + "playcount": "2645881" }, { "track_name": "GLBTM (Studio Outtakes)", @@ -1063,7 +1091,8 @@ "speechiness": 0.0342, "tempo": 119.004, "time_signature": 4, - "valence": 0.349 + "valence": 0.349, + "playcount": "2599563" }, { "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", @@ -1090,7 +1119,8 @@ "speechiness": 0.0534, "tempo": 110.031, "time_signature": 4, - "valence": 0.192 + "valence": 0.192, + "playcount": "18941503" }, { "track_name": "GL (Early Take) [feat. Pharrell Williams and Nile Rodgers]", @@ -1117,7 +1147,8 @@ "speechiness": 0.0605, "tempo": 116.069, "time_signature": 4, - "valence": 0.371 + "valence": 0.371, + "playcount": "1683318" }, { "track_name": "Prime (2012 Unfinished)", @@ -1142,7 +1173,8 @@ "speechiness": 0.0348, "tempo": 117.013, "time_signature": 4, - "valence": 0.431 + "valence": 0.431, + "playcount": "2023168" }, { "track_name": "LYTD (Vocoder Tests) [feat. Pharrell Williams]", @@ -1168,7 +1200,8 @@ "speechiness": 0.0541, "tempo": 100.017, "time_signature": 4, - "valence": 0.719 + "valence": 0.719, + "playcount": "1862906" }, { "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", @@ -1194,7 +1227,8 @@ "speechiness": 0.227, "tempo": 130.026, "time_signature": 4, - "valence": 0.611 + "valence": 0.611, + "playcount": "1822691" }, { "track_name": "Touch (2021 Epilogue) [feat. Paul Williams]", @@ -1220,7 +1254,8 @@ "speechiness": 0.0296, "tempo": 90.229, "time_signature": 4, - "valence": 0.088 + "valence": 0.088, + "playcount": "1255306" }, { "track_name": "Give Life Back to Music", @@ -1245,7 +1280,8 @@ "speechiness": 0.0337, "tempo": 119.037, "time_signature": 4, - "valence": 0.696 + "valence": 0.696, + "playcount": "119801504" }, { "track_name": "The Game of Love", @@ -1270,7 +1306,8 @@ "speechiness": 0.0338, "tempo": 90.039, "time_signature": 4, - "valence": 0.682 + "valence": 0.682, + "playcount": "68604075" }, { "track_name": "Giorgio by Moroder", @@ -1295,7 +1332,8 @@ "speechiness": 0.0504, "tempo": 113.201, "time_signature": 4, - "valence": 0.41 + "valence": 0.41, + "playcount": "124687088" }, { "track_name": "Within", @@ -1320,7 +1358,8 @@ "speechiness": 0.0317, "tempo": 110.116, "time_signature": 4, - "valence": 0.0676 + "valence": 0.0676, + "playcount": "69447024" }, { "track_name": "Instant Crush (feat. Julian Casablancas)", @@ -1346,7 +1385,8 @@ "speechiness": 0.0271, "tempo": 109.942, "time_signature": 4, - "valence": 0.518 + "valence": 0.518, + "playcount": "536787332" }, { "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", @@ -1372,7 +1412,8 @@ "speechiness": 0.057, "tempo": 100.163, "time_signature": 4, - "valence": 0.674 + "valence": 0.674, + "playcount": "303911918" }, { "track_name": "Touch (feat. Paul Williams)", @@ -1398,7 +1439,8 @@ "speechiness": 0.0458, "tempo": 90.539, "time_signature": 4, - "valence": 0.12 + "valence": 0.12, + "playcount": "73669252" }, { "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", @@ -1425,7 +1467,8 @@ "speechiness": 0.0403, "tempo": 116.05, "time_signature": 4, - "valence": 0.863 + "valence": 0.863, + "playcount": "460603896" }, { "track_name": "Beyond", @@ -1450,7 +1493,8 @@ "speechiness": 0.0337, "tempo": 104.022, "time_signature": 4, - "valence": 0.789 + "valence": 0.789, + "playcount": "53433869" }, { "track_name": "Motherboard", @@ -1475,7 +1519,8 @@ "speechiness": 0.0352, "tempo": 103.009, "time_signature": 4, - "valence": 0.284 + "valence": 0.284, + "playcount": "39897005" }, { "track_name": "Fragments of Time (feat. Todd Edwards)", @@ -1501,7 +1546,8 @@ "speechiness": 0.0433, "tempo": 130.118, "time_signature": 4, - "valence": 0.961 + "valence": 0.961, + "playcount": "69895393" }, { "track_name": "Doin' it Right (feat. Panda Bear)", @@ -1527,7 +1573,8 @@ "speechiness": 0.0949, "tempo": 178.061, "time_signature": 4, - "valence": 0.19 + "valence": 0.19, + "playcount": "133505635" }, { "track_name": "Contact", @@ -1552,7 +1599,8 @@ "speechiness": 0.0492, "tempo": 123.828, "time_signature": 4, - "valence": 0.0924 + "valence": 0.0924, + "playcount": "46113609" }, { "track_name": "Episode 1, Giorgio Moroder", @@ -1577,7 +1625,8 @@ "speechiness": 0.64, "tempo": 116.632, "time_signature": 4, - "valence": 0.622 + "valence": 0.622, + "playcount": "3565426" }, { "track_name": "Episode 2, Todd Edwards", @@ -1602,7 +1651,8 @@ "speechiness": 0.8, "tempo": 118.413, "time_signature": 3, - "valence": 0.624 + "valence": 0.624, + "playcount": "1741274" }, { "track_name": "Episode 3, Nile Rodgers", @@ -1627,7 +1677,8 @@ "speechiness": 0.772, "tempo": 115.171, "time_signature": 4, - "valence": 0.654 + "valence": 0.654, + "playcount": "1450064" }, { "track_name": "Episode 4, Pharrell Williams", @@ -1652,7 +1703,8 @@ "speechiness": 0.446, "tempo": 116.154, "time_signature": 4, - "valence": 0.6 + "valence": 0.6, + "playcount": "1607257" }, { "track_name": "Episode 5, Panda Bear", @@ -1677,7 +1729,8 @@ "speechiness": 0.553, "tempo": 116.597, "time_signature": 4, - "valence": 0.586 + "valence": 0.586, + "playcount": "1188649" }, { "track_name": "Episode 6, Chilly Gonzales", @@ -1702,7 +1755,8 @@ "speechiness": 0.664, "tempo": 80.7, "time_signature": 3, - "valence": 0.55 + "valence": 0.55, + "playcount": "1134838" }, { "track_name": "Episode 7, DJ Falcon", @@ -1727,7 +1781,8 @@ "speechiness": 0.768, "tempo": 112.787, "time_signature": 4, - "valence": 0.666 + "valence": 0.666, + "playcount": "989937" }, { "track_name": "Episode 8, Paul Williams", @@ -1752,7 +1807,8 @@ "speechiness": 0.833, "tempo": 123.655, "time_signature": 4, - "valence": 0.661 + "valence": 0.661, + "playcount": "934291" }, { "track_name": "Derezzed - Remixed by The Glitch Mob", @@ -1778,7 +1834,8 @@ "speechiness": 0.0687, "tempo": 96.995, "time_signature": 4, - "valence": 0.213 + "valence": 0.213, + "playcount": "26174609" }, { "track_name": "Fall - Remixed by M83 VS Big Black Delta", @@ -1806,7 +1863,8 @@ "speechiness": 0.0614, "tempo": 89.926, "time_signature": 4, - "valence": 0.164 + "valence": 0.164, + "playcount": "12670059" }, { "track_name": "The Grid - Remixed by The Crystal Method", @@ -1832,7 +1890,8 @@ "speechiness": 0.0607, "tempo": 125.011, "time_signature": 4, - "valence": 0.494 + "valence": 0.494, + "playcount": "8940385" }, { "track_name": "Adagio for TRON - Remixed by Teddybears", @@ -1858,7 +1917,8 @@ "speechiness": 0.0371, "tempo": 126.967, "time_signature": 4, - "valence": 0.248 + "valence": 0.248, + "playcount": "8086750" }, { "track_name": "The Son of Flynn - Remixed by Ki:Theory", @@ -1884,7 +1944,8 @@ "speechiness": 0.0361, "tempo": 106.011, "time_signature": 4, - "valence": 0.282 + "valence": 0.282, + "playcount": "6533385" }, { "track_name": "C.L.U. - Remixed by Paul Oakenfold", @@ -1910,7 +1971,8 @@ "speechiness": 0.031, "tempo": 130.019, "time_signature": 4, - "valence": 0.163 + "valence": 0.163, + "playcount": "5646442" }, { "track_name": "The Son of Flynn - Remixed by Moby", @@ -1936,7 +1998,8 @@ "speechiness": 0.0311, "tempo": 105.997, "time_signature": 4, - "valence": 0.2 + "valence": 0.2, + "playcount": "7944382" }, { "track_name": "End of Line - Remixed by Boys Noize", @@ -1962,7 +2025,8 @@ "speechiness": 0.107, "tempo": 122.995, "time_signature": 4, - "valence": 0.354 + "valence": 0.354, + "playcount": "5762964" }, { "track_name": "Rinzler - Remixed by Kaskade", @@ -1988,7 +2052,8 @@ "speechiness": 0.0528, "tempo": 128.002, "time_signature": 4, - "valence": 0.396 + "valence": 0.396, + "playcount": "5768916" }, { "track_name": "Encom Part 2 - Remixed by Com Truise", @@ -2014,7 +2079,8 @@ "speechiness": 0.0535, "tempo": 165.98, "time_signature": 4, - "valence": 0.266 + "valence": 0.266, + "playcount": "5198147" }, { "track_name": "End of Line - Remixed by Photek", @@ -2040,7 +2106,8 @@ "speechiness": 0.0417, "tempo": 98.006, "time_signature": 4, - "valence": 0.528 + "valence": 0.528, + "playcount": "6962964" }, { "track_name": "Arena - Remixed by The Japanese Popstars", @@ -2066,7 +2133,8 @@ "speechiness": 0.0433, "tempo": 124.99, "time_signature": 4, - "valence": 0.292 + "valence": 0.292, + "playcount": "3631025" }, { "track_name": "Derezzed - Remixed by Avicii", @@ -2092,7 +2160,8 @@ "speechiness": 0.104, "tempo": 127.985, "time_signature": 4, - "valence": 0.156 + "valence": 0.156, + "playcount": "22397351" }, { "track_name": "Solar Sailer - Remixed by Pretty Lights", @@ -2118,7 +2187,8 @@ "speechiness": 0.208, "tempo": 95.803, "time_signature": 5, - "valence": 0.406 + "valence": 0.406, + "playcount": "6248762" }, { "track_name": "TRON Legacy (End Titles) - Remixed by Sander Kleinenberg", @@ -2144,7 +2214,8 @@ "speechiness": 0.0485, "tempo": 124.018, "time_signature": 4, - "valence": 0.601 + "valence": 0.601, + "playcount": "3864306" }, { "track_name": "Overture", @@ -2169,7 +2240,8 @@ "speechiness": 0.04, "tempo": 71.682, "time_signature": 3, - "valence": 0.0364 + "valence": 0.0364, + "playcount": "25789185" }, { "track_name": "The Grid", @@ -2194,7 +2266,8 @@ "speechiness": 0.0387, "tempo": 102.018, "time_signature": 4, - "valence": 0.0645 + "valence": 0.0645, + "playcount": "26878845" }, { "track_name": "The Son of Flynn", @@ -2219,7 +2292,8 @@ "speechiness": 0.0535, "tempo": 105.989, "time_signature": 4, - "valence": 0.022 + "valence": 0.022, + "playcount": "52252287" }, { "track_name": "Recognizer", @@ -2244,7 +2318,8 @@ "speechiness": 0.0391, "tempo": 104.011, "time_signature": 4, - "valence": 0.0768 + "valence": 0.0768, + "playcount": "25451725" }, { "track_name": "Armory", @@ -2269,7 +2344,8 @@ "speechiness": 0.038, "tempo": 96.013, "time_signature": 4, - "valence": 0.0327 + "valence": 0.0327, + "playcount": "19170376" }, { "track_name": "Arena", @@ -2294,7 +2370,8 @@ "speechiness": 0.037, "tempo": 99.991, "time_signature": 4, - "valence": 0.101 + "valence": 0.101, + "playcount": "20158735" }, { "track_name": "Rinzler", @@ -2319,7 +2396,8 @@ "speechiness": 0.0477, "tempo": 90.046, "time_signature": 4, - "valence": 0.0348 + "valence": 0.0348, + "playcount": "21971534" }, { "track_name": "The Game Has Changed", @@ -2344,7 +2422,8 @@ "speechiness": 0.0416, "tempo": 99.956, "time_signature": 4, - "valence": 0.0625 + "valence": 0.0625, + "playcount": "26681739" }, { "track_name": "Outlands", @@ -2369,7 +2448,8 @@ "speechiness": 0.0367, "tempo": 113.185, "time_signature": 4, - "valence": 0.151 + "valence": 0.151, + "playcount": "19301485" }, { "track_name": "Adagio For TRON", @@ -2394,7 +2474,8 @@ "speechiness": 0.0456, "tempo": 92.764, "time_signature": 3, - "valence": 0.0371 + "valence": 0.0371, + "playcount": "18861243" }, { "track_name": "Nocturne", @@ -2419,7 +2500,8 @@ "speechiness": 0.0369, "tempo": 68.469, "time_signature": 5, - "valence": 0.0348 + "valence": 0.0348, + "playcount": "10075992" }, { "track_name": "End of Line", @@ -2444,7 +2526,8 @@ "speechiness": 0.0305, "tempo": 195.86, "time_signature": 4, - "valence": 0.0396 + "valence": 0.0396, + "playcount": "48448877" }, { "track_name": "Derezzed", @@ -2469,7 +2552,8 @@ "speechiness": 0.046, "tempo": 119.993, "time_signature": 4, - "valence": 0.0772 + "valence": 0.0772, + "playcount": "62329640" }, { "track_name": "Fall", @@ -2494,7 +2578,8 @@ "speechiness": 0.0284, "tempo": 89.99, "time_signature": 4, - "valence": 0.274 + "valence": 0.274, + "playcount": "19614533" }, { "track_name": "Solar Sailer", @@ -2519,7 +2604,8 @@ "speechiness": 0.0382, "tempo": 124.141, "time_signature": 3, - "valence": 0.0385 + "valence": 0.0385, + "playcount": "31887034" }, { "track_name": "Rectifier", @@ -2544,7 +2630,8 @@ "speechiness": 0.0343, "tempo": 131.866, "time_signature": 4, - "valence": 0.0399 + "valence": 0.0399, + "playcount": "12586226" }, { "track_name": "Disc Wars", @@ -2569,7 +2656,8 @@ "speechiness": 0.0305, "tempo": 160.013, "time_signature": 4, - "valence": 0.352 + "valence": 0.352, + "playcount": "15665300" }, { "track_name": "C.L.U.", @@ -2594,7 +2682,8 @@ "speechiness": 0.0344, "tempo": 86.024, "time_signature": 4, - "valence": 0.0398 + "valence": 0.0398, + "playcount": "13399300" }, { "track_name": "Arrival", @@ -2619,7 +2708,8 @@ "speechiness": 0.0441, "tempo": 84.002, "time_signature": 5, - "valence": 0.0658 + "valence": 0.0658, + "playcount": "11861075" }, { "track_name": "Flynn Lives", @@ -2644,7 +2734,8 @@ "speechiness": 0.0335, "tempo": 107.988, "time_signature": 4, - "valence": 0.0527 + "valence": 0.0527, + "playcount": "17724448" }, { "track_name": "TRON Legacy (End Titles)", @@ -2669,7 +2760,8 @@ "speechiness": 0.0413, "tempo": 101.97, "time_signature": 4, - "valence": 0.0397 + "valence": 0.0397, + "playcount": "26584804" }, { "track_name": "Finale", @@ -2694,7 +2786,8 @@ "speechiness": 0.0466, "tempo": 71.202, "time_signature": 3, - "valence": 0.0295 + "valence": 0.0295, + "playcount": "10343140" }, { "track_name": "Sea of Simulation", @@ -2719,7 +2812,8 @@ "speechiness": 0.034, "tempo": 113.711, "time_signature": 4, - "valence": 0.0878 + "valence": 0.0878, + "playcount": "2810135" }, { "track_name": "Encom Part II", @@ -2744,7 +2838,8 @@ "speechiness": 0.0362, "tempo": 160.558, "time_signature": 4, - "valence": 0.446 + "valence": 0.446, + "playcount": "3129750" }, { "track_name": "Encom Part I", @@ -2769,7 +2864,8 @@ "speechiness": 0.0423, "tempo": 79.321, "time_signature": 4, - "valence": 0.0566 + "valence": 0.0566, + "playcount": "1992066" }, { "track_name": "Round One", @@ -2794,7 +2890,8 @@ "speechiness": 0.0371, "tempo": 108.033, "time_signature": 4, - "valence": 0.0213 + "valence": 0.0213, + "playcount": "1829614" }, { "track_name": "Castor", @@ -2819,7 +2916,8 @@ "speechiness": 0.0399, "tempo": 116.986, "time_signature": 4, - "valence": 0.325 + "valence": 0.325, + "playcount": "2562186" }, { "track_name": "Reflections", @@ -2844,7 +2942,8 @@ "speechiness": 0.0432, "tempo": 159.663, "time_signature": 3, - "valence": 0.0389 + "valence": 0.0389, + "playcount": "1775924" }, { "track_name": "Sunrise Prelude", @@ -2869,7 +2968,8 @@ "speechiness": 0.0368, "tempo": 115.768, "time_signature": 4, - "valence": 0.0394 + "valence": 0.0394, + "playcount": "1969467" }, { "track_name": "Father and Son", @@ -2894,7 +2994,8 @@ "speechiness": 0.0423, "tempo": 134.547, "time_signature": 3, - "valence": 0.0353 + "valence": 0.0353, + "playcount": "2178395" }, { "track_name": "Outlands, Part II", @@ -2919,7 +3020,8 @@ "speechiness": 0.0299, "tempo": 113.226, "time_signature": 4, - "valence": 0.0656 + "valence": 0.0656, + "playcount": "2592830" }, { "track_name": "Overture", @@ -2944,7 +3046,8 @@ "speechiness": 0.0459, "tempo": 115.697, "time_signature": 4, - "valence": 0.0361 + "valence": 0.0361, + "playcount": "25789185" }, { "track_name": "The Grid", @@ -2969,7 +3072,8 @@ "speechiness": 0.0369, "tempo": 102.019, "time_signature": 4, - "valence": 0.0652 + "valence": 0.0652, + "playcount": "26878845" }, { "track_name": "The Son of Flynn", @@ -2994,7 +3098,8 @@ "speechiness": 0.0463, "tempo": 106.005, "time_signature": 4, - "valence": 0.0229 + "valence": 0.0229, + "playcount": "52252287" }, { "track_name": "Recognizer", @@ -3019,7 +3124,8 @@ "speechiness": 0.0389, "tempo": 104.003, "time_signature": 4, - "valence": 0.0826 + "valence": 0.0826, + "playcount": "25451725" }, { "track_name": "Armory", @@ -3044,7 +3150,8 @@ "speechiness": 0.0371, "tempo": 96.018, "time_signature": 4, - "valence": 0.033 + "valence": 0.033, + "playcount": "19170376" }, { "track_name": "Arena", @@ -3069,7 +3176,8 @@ "speechiness": 0.0361, "tempo": 66.637, "time_signature": 5, - "valence": 0.0824 + "valence": 0.0824, + "playcount": "20158735" }, { "track_name": "Rinzler", @@ -3094,7 +3202,8 @@ "speechiness": 0.0451, "tempo": 90.021, "time_signature": 4, - "valence": 0.0359 + "valence": 0.0359, + "playcount": "21971534" }, { "track_name": "The Game Has Changed", @@ -3119,7 +3228,8 @@ "speechiness": 0.0413, "tempo": 99.989, "time_signature": 4, - "valence": 0.0566 + "valence": 0.0566, + "playcount": "26681739" }, { "track_name": "Outlands", @@ -3144,7 +3254,8 @@ "speechiness": 0.0378, "tempo": 113.175, "time_signature": 4, - "valence": 0.165 + "valence": 0.165, + "playcount": "19301485" }, { "track_name": "Adagio For TRON", @@ -3169,7 +3280,8 @@ "speechiness": 0.0528, "tempo": 59.122, "time_signature": 4, - "valence": 0.0369 + "valence": 0.0369, + "playcount": "18861243" }, { "track_name": "Nocturne", @@ -3194,7 +3306,8 @@ "speechiness": 0.0386, "tempo": 87.519, "time_signature": 1, - "valence": 0.0354 + "valence": 0.0354, + "playcount": "10075992" }, { "track_name": "End of Line", @@ -3219,7 +3332,8 @@ "speechiness": 0.0278, "tempo": 195.948, "time_signature": 4, - "valence": 0.0389 + "valence": 0.0389, + "playcount": "48448877" }, { "track_name": "Derezzed", @@ -3244,7 +3358,8 @@ "speechiness": 0.0488, "tempo": 119.988, "time_signature": 4, - "valence": 0.101 + "valence": 0.101, + "playcount": "62329640" }, { "track_name": "Fall", @@ -3269,7 +3384,8 @@ "speechiness": 0.0302, "tempo": 179.975, "time_signature": 4, - "valence": 0.237 + "valence": 0.237, + "playcount": "19614533" }, { "track_name": "Solar Sailer", @@ -3294,7 +3410,8 @@ "speechiness": 0.0402, "tempo": 124.278, "time_signature": 3, - "valence": 0.0382 + "valence": 0.0382, + "playcount": "31887034" }, { "track_name": "Rectifier", @@ -3319,7 +3436,8 @@ "speechiness": 0.0347, "tempo": 65.963, "time_signature": 4, - "valence": 0.0395 + "valence": 0.0395, + "playcount": "12586226" }, { "track_name": "Disc Wars", @@ -3344,7 +3462,8 @@ "speechiness": 0.0306, "tempo": 159.978, "time_signature": 4, - "valence": 0.352 + "valence": 0.352, + "playcount": "15665300" }, { "track_name": "C.L.U.", @@ -3369,7 +3488,8 @@ "speechiness": 0.0339, "tempo": 87.498, "time_signature": 4, - "valence": 0.0615 + "valence": 0.0615, + "playcount": "13399300" }, { "track_name": "Arrival", @@ -3394,7 +3514,8 @@ "speechiness": 0.0487, "tempo": 62.97, "time_signature": 4, - "valence": 0.0386 + "valence": 0.0386, + "playcount": "11861075" }, { "track_name": "Flynn Lives", @@ -3419,7 +3540,8 @@ "speechiness": 0.0353, "tempo": 108.007, "time_signature": 4, - "valence": 0.0441 + "valence": 0.0441, + "playcount": "17724448" }, { "track_name": "TRON Legacy (End Titles)", @@ -3444,7 +3566,8 @@ "speechiness": 0.0414, "tempo": 101.988, "time_signature": 4, - "valence": 0.0455 + "valence": 0.0455, + "playcount": "26584804" }, { "track_name": "Finale", @@ -3469,7 +3592,8 @@ "speechiness": 0.0488, "tempo": 62.105, "time_signature": 4, - "valence": 0.0289 + "valence": 0.0289, + "playcount": "10343140" }, { "track_name": "Robot Rock / Oh Yeah", @@ -3494,7 +3618,8 @@ "speechiness": 0.0758, "tempo": 116.033, "time_signature": 4, - "valence": 0.227 + "valence": 0.227, + "playcount": "21594128" }, { "track_name": "Touch It / Technologic", @@ -3519,7 +3644,8 @@ "speechiness": 0.158, "tempo": 121.78, "time_signature": 4, - "valence": 0.233 + "valence": 0.233, + "playcount": "25631078" }, { "track_name": "Television Rules the Nation / Crescendolls", @@ -3544,7 +3670,8 @@ "speechiness": 0.0675, "tempo": 126.004, "time_signature": 4, - "valence": 0.558 + "valence": 0.558, + "playcount": "24273969" }, { "track_name": "Too Long / Steam Machine", @@ -3569,7 +3696,8 @@ "speechiness": 0.0464, "tempo": 125.603, "time_signature": 4, - "valence": 0.225 + "valence": 0.225, + "playcount": "19163874" }, { "track_name": "Around the World / Harder, Better, Faster, Stronger", @@ -3594,7 +3722,8 @@ "speechiness": 0.0646, "tempo": 125.998, "time_signature": 4, - "valence": 0.581 + "valence": 0.581, + "playcount": "46531302" }, { "track_name": "Burnin' / Too Long", @@ -3619,7 +3748,8 @@ "speechiness": 0.0946, "tempo": 127.016, "time_signature": 4, - "valence": 0.35 + "valence": 0.35, + "playcount": "14164419" }, { "track_name": "Face to Face / Short Circuit", @@ -3644,7 +3774,8 @@ "speechiness": 0.0581, "tempo": 125.976, "time_signature": 4, - "valence": 0.188 + "valence": 0.188, + "playcount": "13048906" }, { "track_name": "One More Time / Aerodynamic", @@ -3669,7 +3800,8 @@ "speechiness": 0.102, "tempo": 124.239, "time_signature": 4, - "valence": 0.414 + "valence": 0.414, + "playcount": "23315867" }, { "track_name": "Aerodynamic Beats / Gabrielle , Forget About the World", @@ -3694,7 +3826,8 @@ "speechiness": 0.0707, "tempo": 127.028, "time_signature": 4, - "valence": 0.396 + "valence": 0.396, + "playcount": "11653425" }, { "track_name": "Prime Time of Your Life / Brainwasher / Rollin' & Scratchin' / Alive", @@ -3719,7 +3852,8 @@ "speechiness": 0.052, "tempo": 130.032, "time_signature": 4, - "valence": 0.055 + "valence": 0.055, + "playcount": "11844610" }, { "track_name": "Da Funk / Daftendirekt", @@ -3744,7 +3878,8 @@ "speechiness": 0.0412, "tempo": 111.991, "time_signature": 4, - "valence": 0.546 + "valence": 0.546, + "playcount": "11277499" }, { "track_name": "Superheroes / Human After All / Rock'n Roll", @@ -3769,7 +3904,8 @@ "speechiness": 0.143, "tempo": 138.007, "time_signature": 4, - "valence": 0.391 + "valence": 0.391, + "playcount": "10152438" }, { "track_name": "Human After All / Together / One More Time / Music Sounds Better with You", @@ -3794,7 +3930,8 @@ "speechiness": 0.0595, "tempo": 131.045, "time_signature": 4, - "valence": 0.117 + "valence": 0.117, + "playcount": "12565946" }, { "track_name": "Robot Rock - Soulwax Remix", @@ -3820,7 +3957,8 @@ "speechiness": 0.0375, "tempo": 123.014, "time_signature": 4, - "valence": 0.516 + "valence": 0.516, + "playcount": "1762648" }, { "track_name": "Human After All - SebastiAn Remix", @@ -3846,7 +3984,8 @@ "speechiness": 0.209, "tempo": 122.863, "time_signature": 4, - "valence": 0.516 + "valence": 0.516, + "playcount": "1477038" }, { "track_name": "Technologic - Peaches No Logic Remix", @@ -3872,7 +4011,8 @@ "speechiness": 0.0801, "tempo": 135.989, "time_signature": 4, - "valence": 0.762 + "valence": 0.762, + "playcount": "909682" }, { "track_name": "Brainwasher - Erol Alkan's Horrorhouse Dub", @@ -3898,7 +4038,8 @@ "speechiness": 0.0831, "tempo": 120.016, "time_signature": 4, - "valence": 0.386 + "valence": 0.386, + "playcount": "725339" }, { "track_name": "Prime Time of Your Life - Para One Remix", @@ -3924,7 +4065,8 @@ "speechiness": 0.155, "tempo": 128.004, "time_signature": 4, - "valence": 0.795 + "valence": 0.795, + "playcount": "1018682" }, { "track_name": "Human After All - \"Guy-Man After All\" Justice Remix", @@ -3950,7 +4092,8 @@ "speechiness": 0.0475, "tempo": 121.978, "time_signature": 4, - "valence": 0.13 + "valence": 0.13, + "playcount": "958672" }, { "track_name": "Technologic - Digitalism Remix", @@ -3976,7 +4119,8 @@ "speechiness": 0.0787, "tempo": 127.048, "time_signature": 4, - "valence": 0.504 + "valence": 0.504, + "playcount": "844259" }, { "track_name": "Human After All - Alter Ego Remix", @@ -4002,7 +4146,8 @@ "speechiness": 0.109, "tempo": 128.979, "time_signature": 4, - "valence": 0.537 + "valence": 0.537, + "playcount": "547701" }, { "track_name": "Technologic - Vitalic Remix", @@ -4028,7 +4173,8 @@ "speechiness": 0.165, "tempo": 129.177, "time_signature": 4, - "valence": 0.728 + "valence": 0.728, + "playcount": "612428" }, { "track_name": "Robot Rock - Maximum Overdrive Mix", @@ -4053,7 +4199,8 @@ "speechiness": 0.179, "tempo": 139.19, "time_signature": 4, - "valence": 0.161 + "valence": 0.161, + "playcount": "837778" }, { "track_name": "Technologic - Liquid Twins Remix", @@ -4079,7 +4226,8 @@ "speechiness": 0.183, "tempo": 125.99, "time_signature": 4, - "valence": 0.462 + "valence": 0.462, + "playcount": "644007" }, { "track_name": "Technologic - Basement Jaxx Kontrol Mixx", @@ -4105,7 +4253,8 @@ "speechiness": 0.0881, "tempo": 127.999, "time_signature": 4, - "valence": 0.49 + "valence": 0.49, + "playcount": "636174" }, { "track_name": "Human After All - The Juan Mclean Remix", @@ -4131,7 +4280,8 @@ "speechiness": 0.0715, "tempo": 130.007, "time_signature": 4, - "valence": 0.775 + "valence": 0.775, + "playcount": "649154" }, { "track_name": "Human After All - Emperor Machine Version", @@ -4157,7 +4307,8 @@ "speechiness": 0.0634, "tempo": 136.495, "time_signature": 4, - "valence": 0.438 + "valence": 0.438, + "playcount": "490216" }, { "track_name": "Technologic - Le Knight Club Remix", @@ -4183,7 +4334,8 @@ "speechiness": 0.123, "tempo": 127.508, "time_signature": 4, - "valence": 0.569 + "valence": 0.569, + "playcount": "695668" }, { "track_name": "Human After All", @@ -4208,7 +4360,8 @@ "speechiness": 0.342, "tempo": 136.251, "time_signature": 4, - "valence": 0.802 + "valence": 0.802, + "playcount": "29424514" }, { "track_name": "The Prime Time of Your Life", @@ -4233,7 +4386,8 @@ "speechiness": 0.181, "tempo": 128.606, "time_signature": 4, - "valence": 0.0987 + "valence": 0.0987, + "playcount": "9670474" }, { "track_name": "Robot Rock", @@ -4258,7 +4412,8 @@ "speechiness": 0.0512, "tempo": 111.926, "time_signature": 4, - "valence": 0.598 + "valence": 0.598, + "playcount": "75293638" }, { "track_name": "Steam Machine", @@ -4283,7 +4438,8 @@ "speechiness": 0.212, "tempo": 92.07, "time_signature": 4, - "valence": 0.549 + "valence": 0.549, + "playcount": "5054055" }, { "track_name": "Make Love", @@ -4308,7 +4464,8 @@ "speechiness": 0.0561, "tempo": 133.005, "time_signature": 4, - "valence": 0.977 + "valence": 0.977, + "playcount": "28886001" }, { "track_name": "The Brainwasher", @@ -4333,7 +4490,8 @@ "speechiness": 0.0466, "tempo": 119.708, "time_signature": 4, - "valence": 0.0382 + "valence": 0.0382, + "playcount": "4071295" }, { "track_name": "On / Off", @@ -4358,7 +4516,8 @@ "speechiness": 0.425, "tempo": 67.443, "time_signature": 1, - "valence": 0.93 + "valence": 0.93, + "playcount": "3628" }, { "track_name": "Television Rules the Nation", @@ -4383,7 +4542,8 @@ "speechiness": 0.0897, "tempo": 115.316, "time_signature": 4, - "valence": 0.705 + "valence": 0.705, + "playcount": "7661683" }, { "track_name": "Technologic", @@ -4408,7 +4568,8 @@ "speechiness": 0.224, "tempo": 127.498, "time_signature": 4, - "valence": 0.633 + "valence": 0.633, + "playcount": "62023899" }, { "track_name": "Emotion", @@ -4433,7 +4594,8 @@ "speechiness": 0.0369, "tempo": 98.305, "time_signature": 4, - "valence": 0.053 + "valence": 0.053, + "playcount": "5679178" }, { "track_name": "Ouverture", @@ -4458,7 +4620,8 @@ "speechiness": 0.0415, "tempo": 122.999, "time_signature": 4, - "valence": 0.0342 + "valence": 0.0342, + "playcount": "3307849" }, { "track_name": "Aerodynamic - Daft Punk Remix", @@ -4483,7 +4646,8 @@ "speechiness": 0.0733, "tempo": 122.892, "time_signature": 4, - "valence": 0.181 + "valence": 0.181, + "playcount": "23945324" }, { "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", @@ -4509,7 +4673,8 @@ "speechiness": 0.0552, "tempo": 123.451, "time_signature": 4, - "valence": 0.907 + "valence": 0.907, + "playcount": "3712835" }, { "track_name": "Face to Face - Cosmo Vitelli Remix", @@ -4535,7 +4700,8 @@ "speechiness": 0.0359, "tempo": 134.985, "time_signature": 4, - "valence": 0.853 + "valence": 0.853, + "playcount": "1406863" }, { "track_name": "Phoenix - Basement Jaxx Remix", @@ -4561,7 +4727,8 @@ "speechiness": 0.0763, "tempo": 124.856, "time_signature": 4, - "valence": 0.622 + "valence": 0.622, + "playcount": "1023717" }, { "track_name": "Digital Love - Boris Dlugosch Remix", @@ -4587,7 +4754,8 @@ "speechiness": 0.0588, "tempo": 124.674, "time_signature": 4, - "valence": 0.398 + "valence": 0.398, + "playcount": "1994169" }, { "track_name": "Harder, Better, Faster, Stronger - Jess & Crabbe Remix", @@ -4613,7 +4781,8 @@ "speechiness": 0.0632, "tempo": 129.218, "time_signature": 4, - "valence": 0.528 + "valence": 0.528, + "playcount": "1896683" }, { "track_name": "Face to Face - Demon Remix", @@ -4639,7 +4808,8 @@ "speechiness": 0.187, "tempo": 130.855, "time_signature": 4, - "valence": 0.47 + "valence": 0.47, + "playcount": "1020531" }, { "track_name": "Crescendolls - Laidback Luke Remix", @@ -4665,7 +4835,8 @@ "speechiness": 0.056, "tempo": 131.359, "time_signature": 4, - "valence": 0.501 + "valence": 0.501, + "playcount": "841134" }, { "track_name": "Aerodynamic - Slum Village Remix", @@ -4691,7 +4862,8 @@ "speechiness": 0.176, "tempo": 94.801, "time_signature": 4, - "valence": 0.768 + "valence": 0.768, + "playcount": "1106316" }, { "track_name": "Too Long - Gonzales Version", @@ -4717,7 +4889,8 @@ "speechiness": 0.029, "tempo": 140.693, "time_signature": 4, - "valence": 0.0686 + "valence": 0.0686, + "playcount": "916885" }, { "track_name": "Aerodynamite", @@ -4742,7 +4915,8 @@ "speechiness": 0.178, "tempo": 121.989, "time_signature": 4, - "valence": 0.106 + "valence": 0.106, + "playcount": "3030648" }, { "track_name": "One More Time - Romanthony's Unplugged", @@ -4768,7 +4942,8 @@ "speechiness": 0.0559, "tempo": 98.582, "time_signature": 4, - "valence": 0.257 + "valence": 0.257, + "playcount": "880026" }, { "track_name": "Something About Us (Love Theme from Interstella 5555)", @@ -4793,7 +4968,8 @@ "speechiness": 0.0456, "tempo": 99.935, "time_signature": 4, - "valence": 0.81 + "valence": 0.81, + "playcount": "9115686" }, { "track_name": "Alive 1997", @@ -4818,7 +4994,8 @@ "speechiness": 0.367, "tempo": 135.796, "time_signature": 4, - "valence": 0.105 + "valence": 0.105, + "playcount": "1330265" }, { "track_name": "One More Time", @@ -4843,7 +5020,8 @@ "speechiness": 0.133, "tempo": 122.746, "time_signature": 4, - "valence": 0.476 + "valence": 0.476, + "playcount": "555288009" }, { "track_name": "Aerodynamic", @@ -4868,7 +5046,8 @@ "speechiness": 0.0524, "tempo": 122.902, "time_signature": 4, - "valence": 0.135 + "valence": 0.135, + "playcount": "67658862" }, { "track_name": "Digital Love", @@ -4893,7 +5072,8 @@ "speechiness": 0.0332, "tempo": 124.726, "time_signature": 4, - "valence": 0.53 + "valence": 0.53, + "playcount": "133496275" }, { "track_name": "Harder, Better, Faster, Stronger", @@ -4918,7 +5098,8 @@ "speechiness": 0.144, "tempo": 123.474, "time_signature": 4, - "valence": 0.692 + "valence": 0.692, + "playcount": "336118200" }, { "track_name": "Crescendolls", @@ -4943,7 +5124,8 @@ "speechiness": 0.0721, "tempo": 124.048, "time_signature": 4, - "valence": 0.937 + "valence": 0.937, + "playcount": "34433281" }, { "track_name": "Nightvision", @@ -4968,7 +5150,8 @@ "speechiness": 0.0321, "tempo": 119.883, "time_signature": 4, - "valence": 0.457 + "valence": 0.457, + "playcount": "27595622" }, { "track_name": "Superheroes", @@ -4993,7 +5176,8 @@ "speechiness": 0.0789, "tempo": 140.874, "time_signature": 4, - "valence": 0.674 + "valence": 0.674, + "playcount": "31043239" }, { "track_name": "High Life", @@ -5018,7 +5202,8 @@ "speechiness": 0.217, "tempo": 125.207, "time_signature": 4, - "valence": 0.515 + "valence": 0.515, + "playcount": "30335469" }, { "track_name": "Something About Us", @@ -5043,7 +5228,8 @@ "speechiness": 0.0986, "tempo": 99.958, "time_signature": 4, - "valence": 0.384 + "valence": 0.384, + "playcount": "218266797" }, { "track_name": "Voyager", @@ -5068,7 +5254,8 @@ "speechiness": 0.0494, "tempo": 119.881, "time_signature": 4, - "valence": 0.28 + "valence": 0.28, + "playcount": "72028996" }, { "track_name": "Veridis Quo", @@ -5093,7 +5280,8 @@ "speechiness": 0.045, "tempo": 106.896, "time_signature": 4, - "valence": 0.12 + "valence": 0.12, + "playcount": "114458597" }, { "track_name": "Short Circuit", @@ -5118,7 +5306,8 @@ "speechiness": 0.0741, "tempo": 109.69, "time_signature": 4, - "valence": 0.215 + "valence": 0.215, + "playcount": "22365254" }, { "track_name": "Face to Face", @@ -5143,7 +5332,8 @@ "speechiness": 0.0708, "tempo": 117.791, "time_signature": 4, - "valence": 0.962 + "valence": 0.962, + "playcount": "71812114" }, { "track_name": "Too Long", @@ -5168,7 +5358,8 @@ "speechiness": 0.301, "tempo": 127.017, "time_signature": 4, - "valence": 0.513 + "valence": 0.513, + "playcount": "25421033" }, { "track_name": "Daftendirekt", @@ -5193,7 +5384,8 @@ "speechiness": 0.162, "tempo": 111.019, "time_signature": 4, - "valence": 0.337 + "valence": 0.337, + "playcount": "8727637" }, { "track_name": "WDPK 83.7 FM", @@ -5218,7 +5410,8 @@ "speechiness": 0.206, "tempo": 110.943, "time_signature": 4, - "valence": 0.919 + "valence": 0.919, + "playcount": "29495" }, { "track_name": "Revolution 909", @@ -5243,7 +5436,8 @@ "speechiness": 0.137, "tempo": 126.521, "time_signature": 4, - "valence": 0.828 + "valence": 0.828, + "playcount": "32409570" }, { "track_name": "Da Funk", @@ -5268,7 +5462,8 @@ "speechiness": 0.0753, "tempo": 111.215, "time_signature": 4, - "valence": 0.892 + "valence": 0.892, + "playcount": "85227073" }, { "track_name": "Phoenix", @@ -5293,7 +5488,8 @@ "speechiness": 0.0836, "tempo": 126.874, "time_signature": 4, - "valence": 0.567 + "valence": 0.567, + "playcount": "8302318" }, { "track_name": "Fresh", @@ -5318,7 +5514,8 @@ "speechiness": 0.645, "tempo": 126.621, "time_signature": 4, - "valence": 0.176 + "valence": 0.176, + "playcount": "9951085" }, { "track_name": "Around the World", @@ -5343,7 +5540,8 @@ "speechiness": 0.15, "tempo": 121.294, "time_signature": 4, - "valence": 0.839 + "valence": 0.839, + "playcount": "342250046" }, { "track_name": "Rollin' & Scratchin'", @@ -5368,7 +5566,8 @@ "speechiness": 0.0413, "tempo": 130.06, "time_signature": 4, - "valence": 0.21 + "valence": 0.21, + "playcount": "17518034" }, { "track_name": "Teachers", @@ -5393,7 +5592,8 @@ "speechiness": 0.25, "tempo": 123.193, "time_signature": 4, - "valence": 0.823 + "valence": 0.823, + "playcount": "8290843" }, { "track_name": "High Fidelity", @@ -5418,7 +5618,8 @@ "speechiness": 0.175, "tempo": 125.909, "time_signature": 4, - "valence": 0.391 + "valence": 0.391, + "playcount": "5216379" }, { "track_name": "Rock'n Roll", @@ -5443,7 +5644,8 @@ "speechiness": 0.273, "tempo": 134.937, "time_signature": 4, - "valence": 0.331 + "valence": 0.331, + "playcount": "4484550" }, { "track_name": "Oh Yeah", @@ -5468,7 +5670,8 @@ "speechiness": 0.352, "tempo": 176.704, "time_signature": 5, - "valence": 0.559 + "valence": 0.559, + "playcount": "3717350" }, { "track_name": "Burnin'", @@ -5493,7 +5696,8 @@ "speechiness": 0.205, "tempo": 124.298, "time_signature": 4, - "valence": 0.714 + "valence": 0.714, + "playcount": "7977351" }, { "track_name": "Indo Silver Club", @@ -5518,7 +5722,8 @@ "speechiness": 0.101, "tempo": 126.163, "time_signature": 4, - "valence": 0.439 + "valence": 0.439, + "playcount": "4699860" }, { "track_name": "Alive", @@ -5543,7 +5748,8 @@ "speechiness": 0.0436, "tempo": 128.701, "time_signature": 4, - "valence": 0.0751 + "valence": 0.0751, + "playcount": "15735756" }, { "track_name": "Funk Ad", @@ -5568,7 +5774,8 @@ "speechiness": 0.176, "tempo": 111.833, "time_signature": 4, - "valence": 0.3 + "valence": 0.3, + "playcount": "3279157" }, { "track_name": "Around the World - I:Cube Remix", @@ -5594,7 +5801,8 @@ "speechiness": 0.0436, "tempo": 129.028, "time_signature": 4, - "valence": 0.755 + "valence": 0.755, + "playcount": "170312" }, { "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", @@ -5621,7 +5829,8 @@ "speechiness": 0.0969, "tempo": 126.233, "time_signature": 4, - "valence": 0.802 + "valence": 0.802, + "playcount": "430258" }, { "track_name": "Around the World - Tee's Frozen Sun Mix", @@ -5647,7 +5856,8 @@ "speechiness": 0.0526, "tempo": 127.62, "time_signature": 4, - "valence": 0.497 + "valence": 0.497, + "playcount": "113958" }, { "track_name": "Around the World - Mellow Mix", @@ -5673,7 +5883,8 @@ "speechiness": 0.0573, "tempo": 124.986, "time_signature": 4, - "valence": 0.778 + "valence": 0.778, + "playcount": "1540399" }, { "track_name": "Burnin' - DJ Sneak Main Mix", @@ -5699,7 +5910,8 @@ "speechiness": 0.125, "tempo": 128.517, "time_signature": 4, - "valence": 0.296 + "valence": 0.296, + "playcount": "176979" }, { "track_name": "Around the World - Kenlou Mix", @@ -5725,7 +5937,8 @@ "speechiness": 0.0715, "tempo": 125.066, "time_signature": 4, - "valence": 0.671 + "valence": 0.671, + "playcount": "429803" }, { "track_name": "Burnin' - Ian Pooley Cut up Mix", @@ -5751,7 +5964,8 @@ "speechiness": 0.0893, "tempo": 127.404, "time_signature": 4, - "valence": 0.921 + "valence": 0.921, + "playcount": "426108" }, { "track_name": "Around the World - Motorbass Vice Mix", @@ -5777,7 +5991,8 @@ "speechiness": 0.233, "tempo": 129.888, "time_signature": 4, - "valence": 0.396 + "valence": 0.396, + "playcount": "311158" }, { "track_name": "Around the World - M.A.W Remix", @@ -5803,7 +6018,8 @@ "speechiness": 0.0486, "tempo": 127.22, "time_signature": 4, - "valence": 0.749 + "valence": 0.749, + "playcount": "51101" }, { "track_name": "Burnin' - Slam Mix", @@ -5829,7 +6045,8 @@ "speechiness": 0.0902, "tempo": 123.596, "time_signature": 4, - "valence": 0.0691 + "valence": 0.0691, + "playcount": "246947" }, { "track_name": "Around the World - Original Lead On Mix", @@ -5855,7 +6072,8 @@ "speechiness": 0.049, "tempo": 127.578, "time_signature": 4, - "valence": 0.589 + "valence": 0.589, + "playcount": "65900" }, { "track_name": "Burnin' - DJ Sneak Mongowarrier Mix", @@ -5881,7 +6099,8 @@ "speechiness": 0.0863, "tempo": 126.25, "time_signature": 4, - "valence": 0.263 + "valence": 0.263, + "playcount": "45115" }, { "track_name": "Around the World - RAW Dub", @@ -5907,7 +6126,8 @@ "speechiness": 0.105, "tempo": 126.973, "time_signature": 4, - "valence": 0.433 + "valence": 0.433, + "playcount": "47127" }, { "track_name": "Teachers - Extended Mix", @@ -5932,7 +6152,8 @@ "speechiness": 0.143, "tempo": 123.182, "time_signature": 4, - "valence": 0.789 + "valence": 0.789, + "playcount": "524004" }, { "track_name": "Revolution 909 - Revolution A Cappella", @@ -5957,7 +6178,8 @@ "speechiness": 0.0885, "tempo": 126.849, "time_signature": 4, - "valence": 0.153 + "valence": 0.153, + "playcount": "165202" }, { "track_name": "Daftendirekt", @@ -5982,7 +6204,8 @@ "speechiness": 0.162, "tempo": 111.019, "time_signature": 4, - "valence": 0.336 + "valence": 0.336, + "playcount": "8727637" }, { "track_name": "WDPK 83.7 FM", @@ -6007,7 +6230,8 @@ "speechiness": 0.206, "tempo": 110.943, "time_signature": 4, - "valence": 0.919 + "valence": 0.919, + "playcount": "29495" }, { "track_name": "Revolution 909", @@ -6032,7 +6256,8 @@ "speechiness": 0.136, "tempo": 126.527, "time_signature": 4, - "valence": 0.828 + "valence": 0.828, + "playcount": "32409570" }, { "track_name": "Da Funk", @@ -6057,7 +6282,8 @@ "speechiness": 0.0752, "tempo": 111.215, "time_signature": 4, - "valence": 0.892 + "valence": 0.892, + "playcount": "85227073" }, { "track_name": "Phoenix", @@ -6082,7 +6308,8 @@ "speechiness": 0.0835, "tempo": 126.874, "time_signature": 4, - "valence": 0.569 + "valence": 0.569, + "playcount": "8302318" }, { "track_name": "Fresh", @@ -6107,7 +6334,8 @@ "speechiness": 0.572, "tempo": 126.345, "time_signature": 4, - "valence": 0.174 + "valence": 0.174, + "playcount": "9951085" }, { "track_name": "Around the World", @@ -6132,7 +6360,8 @@ "speechiness": 0.15, "tempo": 121.294, "time_signature": 4, - "valence": 0.841 + "valence": 0.841, + "playcount": "342250046" }, { "track_name": "Rollin' & Scratchin'", @@ -6157,7 +6386,8 @@ "speechiness": 0.0414, "tempo": 130.059, "time_signature": 4, - "valence": 0.21 + "valence": 0.21, + "playcount": "17518034" }, { "track_name": "Teachers", @@ -6182,7 +6412,8 @@ "speechiness": 0.251, "tempo": 123.206, "time_signature": 4, - "valence": 0.823 + "valence": 0.823, + "playcount": "8290843" }, { "track_name": "High Fidelity", @@ -6207,7 +6438,8 @@ "speechiness": 0.175, "tempo": 125.909, "time_signature": 4, - "valence": 0.391 + "valence": 0.391, + "playcount": "5216379" }, { "track_name": "Rock'n Roll", @@ -6232,7 +6464,8 @@ "speechiness": 0.273, "tempo": 134.941, "time_signature": 4, - "valence": 0.331 + "valence": 0.331, + "playcount": "4484550" }, { "track_name": "Oh Yeah", @@ -6257,7 +6490,8 @@ "speechiness": 0.352, "tempo": 176.704, "time_signature": 5, - "valence": 0.559 + "valence": 0.559, + "playcount": "3717350" }, { "track_name": "Burnin'", @@ -6282,7 +6516,8 @@ "speechiness": 0.205, "tempo": 124.298, "time_signature": 4, - "valence": 0.715 + "valence": 0.715, + "playcount": "7977351" }, { "track_name": "Indo Silver Club", @@ -6307,7 +6542,8 @@ "speechiness": 0.1, "tempo": 126.163, "time_signature": 4, - "valence": 0.443 + "valence": 0.443, + "playcount": "4699860" }, { "track_name": "Alive", @@ -6332,7 +6568,8 @@ "speechiness": 0.0437, "tempo": 128.701, "time_signature": 4, - "valence": 0.0748 + "valence": 0.0748, + "playcount": "15735756" }, { "track_name": "Funk Ad", @@ -6357,7 +6594,8 @@ "speechiness": 0.176, "tempo": 111.833, "time_signature": 4, - "valence": 0.3 + "valence": 0.3, + "playcount": "3279157" }, { "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", @@ -6384,7 +6622,8 @@ "speechiness": 0.0534, "tempo": 110.031, "time_signature": 4, - "valence": 0.192 + "valence": 0.192, + "playcount": "18941503" }, { "track_name": "GLBTM (Studio Outtakes)", @@ -6409,7 +6648,8 @@ "speechiness": 0.0344, "tempo": 119.004, "time_signature": 4, - "valence": 0.346 + "valence": 0.346, + "playcount": "2599563" }, { "track_name": "GLBTM (Studio Outtakes) [Edit]", @@ -6434,7 +6674,8 @@ "speechiness": 0.0273, "tempo": 119.038, "time_signature": 4, - "valence": 0.334 + "valence": 0.334, + "playcount": "2219115" }, { "track_name": "Give Life Back to Music", @@ -6459,7 +6700,8 @@ "speechiness": 0.0337, "tempo": 119.038, "time_signature": 4, - "valence": 0.696 + "valence": 0.696, + "playcount": "119801504" }, { "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", @@ -6485,7 +6727,8 @@ "speechiness": 0.227, "tempo": 130.026, "time_signature": 4, - "valence": 0.611 + "valence": 0.611, + "playcount": "1822691" }, { "track_name": "Fragments of Time (feat. Todd Edwards)", @@ -6511,7 +6754,8 @@ "speechiness": 0.0433, "tempo": 130.118, "time_signature": 4, - "valence": 0.961 + "valence": 0.961, + "playcount": "69895393" }, { "track_name": "Derezzed - From TRON: Legacy/Avicii \"So Amazing Mix\"", @@ -6537,7 +6781,8 @@ "speechiness": 0.163, "tempo": 127.993, "time_signature": 4, - "valence": 0.158 + "valence": 0.158, + "playcount": "22397351" }, { "track_name": "Get Lucky - Daft Punk Remix", @@ -6565,7 +6810,8 @@ "speechiness": 0.0391, "tempo": 116.009, "time_signature": 4, - "valence": 0.912 + "valence": 0.912, + "playcount": "8599433" }, { "track_name": "Get Lucky (Radio Edit) [feat. Pharrell Williams and Nile Rodgers]", @@ -6592,7 +6838,8 @@ "speechiness": 0.038, "tempo": 116.047, "time_signature": 4, - "valence": 0.862 + "valence": 0.862, + "playcount": "996635757" }, { "track_name": "Technologic - Radio Edit [Radio Edit]", @@ -6617,7 +6864,8 @@ "speechiness": 0.236, "tempo": 127.458, "time_signature": 4, - "valence": 0.712 + "valence": 0.712, + "playcount": "12159310" }, { "track_name": "Robot Rock - Edit [Edit]", @@ -6642,7 +6890,8 @@ "speechiness": 0.0598, "tempo": 111.942, "time_signature": 4, - "valence": 0.514 + "valence": 0.514, + "playcount": "6194570" }, { "track_name": "Human After All - Medley", @@ -6667,7 +6916,8 @@ "speechiness": 0.175, "tempo": 131.437, "time_signature": 4, - "valence": 0.392 + "valence": 0.392, + "playcount": "419378" }, { "track_name": "Something About Us (Love Theme from Interstella 5555)", @@ -6692,7 +6942,8 @@ "speechiness": 0.0456, "tempo": 99.935, "time_signature": 4, - "valence": 0.81 + "valence": 0.81, + "playcount": "9115686" }, { "track_name": "Veridis Quo", @@ -6717,7 +6968,8 @@ "speechiness": 0.045, "tempo": 106.896, "time_signature": 4, - "valence": 0.12 + "valence": 0.12, + "playcount": "114458597" }, { "track_name": "Voyager - Dominique Torti's Wild Style Edit", @@ -6743,7 +6995,8 @@ "speechiness": 0.0552, "tempo": 119.896, "time_signature": 4, - "valence": 0.179 + "valence": 0.179, + "playcount": "839044" }, { "track_name": "Something About Us", @@ -6768,7 +7021,8 @@ "speechiness": 0.0986, "tempo": 99.958, "time_signature": 4, - "valence": 0.384 + "valence": 0.384, + "playcount": "218266797" }, { "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", @@ -6793,7 +7047,8 @@ "speechiness": 0.0921, "tempo": 126.078, "time_signature": 4, - "valence": 0.522 + "valence": 0.522, + "playcount": "9825028" }, { "track_name": "Harder, Better, Faster, Stronger - Alive Extended 2007", @@ -6818,7 +7073,8 @@ "speechiness": 0.0748, "tempo": 126.134, "time_signature": 4, - "valence": 0.459 + "valence": 0.459, + "playcount": "3241523" }, { "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", @@ -6843,7 +7099,8 @@ "speechiness": 0.097, "tempo": 126.095, "time_signature": 4, - "valence": 0.561 + "valence": 0.561, + "playcount": "9825028" }, { "track_name": "Harder, Better, Faster, Stronger", @@ -6868,7 +7125,8 @@ "speechiness": 0.149, "tempo": 123.494, "time_signature": 4, - "valence": 0.646 + "valence": 0.646, + "playcount": "336118200" }, { "track_name": "Harder, Better, Faster, Stronger - Breakers Break Remix", @@ -6894,7 +7152,8 @@ "speechiness": 0.0648, "tempo": 123.695, "time_signature": 4, - "valence": 0.805 + "valence": 0.805, + "playcount": "1221956" }, { "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", @@ -6920,7 +7179,8 @@ "speechiness": 0.0552, "tempo": 123.451, "time_signature": 4, - "valence": 0.907 + "valence": 0.907, + "playcount": "3712835" }, { "track_name": "Harder, Better, Faster, Stronger - Pete Heller's Stylus Mix", @@ -6946,7 +7206,8 @@ "speechiness": 0.0491, "tempo": 128.04, "time_signature": 4, - "valence": 0.702 + "valence": 0.702, + "playcount": "467534" }, { "track_name": "Digital Love - Radio Edit [Radio Edit]", @@ -6971,7 +7232,8 @@ "speechiness": 0.0325, "tempo": 124.716, "time_signature": 4, - "valence": 0.658 + "valence": 0.658, + "playcount": "2144906" }, { "track_name": "Digital Love", @@ -6996,7 +7258,8 @@ "speechiness": 0.0333, "tempo": 124.726, "time_signature": 4, - "valence": 0.53 + "valence": 0.53, + "playcount": "133496275" }, { "track_name": "Digital Dub", @@ -7021,7 +7284,8 @@ "speechiness": 0.0305, "tempo": 124.703, "time_signature": 4, - "valence": 0.521 + "valence": 0.521, + "playcount": "133496275" }, { "track_name": "Aerodynamic", @@ -7046,7 +7310,8 @@ "speechiness": 0.0524, "tempo": 122.902, "time_signature": 4, - "valence": 0.135 + "valence": 0.135, + "playcount": "67658862" }, { "track_name": "Aerodynamite", @@ -7071,7 +7336,8 @@ "speechiness": 0.178, "tempo": 121.989, "time_signature": 4, - "valence": 0.106 + "valence": 0.106, + "playcount": "3030648" }, { "track_name": "One More Time - Radio Edit [Short Radio Edit]", @@ -7096,7 +7362,8 @@ "speechiness": 0.104, "tempo": 122.891, "time_signature": 4, - "valence": 0.533 + "valence": 0.533, + "playcount": "99544046" }, { "track_name": "One More Time - Radio Edit", @@ -7121,7 +7388,8 @@ "speechiness": 0.134, "tempo": 122.824, "time_signature": 4, - "valence": 0.476 + "valence": 0.476, + "playcount": "555288009" }, { "track_name": "One More Time - 12 Mix", @@ -7146,7 +7414,8 @@ "speechiness": 0.129, "tempo": 122.904, "time_signature": 4, - "valence": 0.522 + "valence": 0.522, + "playcount": "2557643" }, { "track_name": "Revolution 909 - Radio Edit [Radio Edit]", @@ -7171,7 +7440,8 @@ "speechiness": 0.134, "tempo": 126.525, "time_signature": 4, - "valence": 0.849 + "valence": 0.849, + "playcount": "643744" }, { "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", @@ -7198,7 +7468,8 @@ "speechiness": 0.0969, "tempo": 126.233, "time_signature": 4, - "valence": 0.799 + "valence": 0.799, + "playcount": "430258" }, { "track_name": "Revolution 909 - Revolution A Cappella", @@ -7223,7 +7494,8 @@ "speechiness": 0.0885, "tempo": 126.849, "time_signature": 4, - "valence": 0.153 + "valence": 0.153, + "playcount": "165202" }, { "track_name": "Revolution 909", @@ -7248,7 +7520,8 @@ "speechiness": 0.136, "tempo": 126.527, "time_signature": 4, - "valence": 0.828 + "valence": 0.828, + "playcount": "32409570" }, { "track_name": "Burnin' - Edit Version [Edit Version]", @@ -7273,7 +7546,8 @@ "speechiness": 0.246, "tempo": 124.304, "time_signature": 4, - "valence": 0.735 + "valence": 0.735, + "playcount": "4633609" }, { "track_name": "Burnin' - Ian Pooley Cut up Mix", @@ -7299,7 +7573,8 @@ "speechiness": 0.0894, "tempo": 127.404, "time_signature": 4, - "valence": 0.92 + "valence": 0.92, + "playcount": "426108" }, { "track_name": "Burnin' - Slam Mix", @@ -7325,7 +7600,8 @@ "speechiness": 0.0898, "tempo": 123.597, "time_signature": 4, - "valence": 0.0692 + "valence": 0.0692, + "playcount": "246947" }, { "track_name": "Burnin'", @@ -7350,7 +7626,8 @@ "speechiness": 0.205, "tempo": 124.298, "time_signature": 4, - "valence": 0.715 + "valence": 0.715, + "playcount": "7977351" }, { "track_name": "Around the World - Radio Edit [Radio Edit]", @@ -7375,7 +7652,8 @@ "speechiness": 0.148, "tempo": 121.302, "time_signature": 4, - "valence": 0.864 + "valence": 0.864, + "playcount": "39345855" }, { "track_name": "Around the World", @@ -7400,7 +7678,8 @@ "speechiness": 0.15, "tempo": 121.294, "time_signature": 4, - "valence": 0.841 + "valence": 0.841, + "playcount": "342250046" }, { "track_name": "Teachers - Extended Mix", @@ -7425,7 +7704,8 @@ "speechiness": 0.143, "tempo": 123.182, "time_signature": 4, - "valence": 0.789 + "valence": 0.789, + "playcount": "524004" }, { "track_name": "Around the World - Motorbass Vice Mix", @@ -7451,7 +7731,8 @@ "speechiness": 0.234, "tempo": 129.887, "time_signature": 4, - "valence": 0.395 + "valence": 0.395, + "playcount": "311158" }, { "track_name": "Da Funk - Radio Edit", @@ -7476,7 +7757,8 @@ "speechiness": 0.0698, "tempo": 111.214, "time_signature": 4, - "valence": 0.928 + "valence": 0.928, + "playcount": "2344566" }, { "track_name": "Musique", @@ -7501,7 +7783,8 @@ "speechiness": 0.0811, "tempo": 117.206, "time_signature": 4, - "valence": 0.832 + "valence": 0.832, + "playcount": "14159810" }, { "track_name": "Da Funk", @@ -7526,7 +7809,42 @@ "speechiness": 0.0746, "tempo": 111.226, "time_signature": 4, - "valence": 0.896 + "valence": 0.896, + "playcount": "85227073" + } + ], + "monthly_listeners": 19230436, + "world_rank": 343, + "top_cities": [ + { + "numberOfListeners": 530461, + "city": "Mexico City", + "country": "MX", + "region": "CMX" + }, + { + "numberOfListeners": 328659, + "city": "Paris", + "country": "FR", + "region": "IDF" + }, + { + "numberOfListeners": 326685, + "city": "Santiago", + "country": "CL", + "region": "RM" + }, + { + "numberOfListeners": 238321, + "city": "Sydney", + "country": "AU", + "region": "NSW" + }, + { + "numberOfListeners": 229528, + "city": "Bogotá", + "country": "CO", + "region": "DC" } ] } \ No newline at end of file diff --git a/src/aggregator/stats_update.py b/src/aggregator/stats_update.py new file mode 100644 index 0000000..327c9e8 --- /dev/null +++ b/src/aggregator/stats_update.py @@ -0,0 +1,91 @@ +import json +import time +import requests +import datetime + +from collections import OrderedDict +from auth_credentials import ( + client_headers, get_tracks_extensions, get_artist_stats_extensions +) + + +def main(): + print(f' [T] Time: {datetime.datetime.now()}') + + timeout, request_count = 1, 0 + + artist_ids = ['00FQb4jTyendYWaN8pK0wa', '0M2HHtY3OOQzIZxrHkbJLT', '4tZwfgrHOc3mvqYlEYSvVi'] + + for artist_id in artist_ids: + get_artist_stats_params = { + 'operationName': 'queryArtistOverview', + 'variables': '{"uri":"spotify:artist:' + + artist_id + '","locale":"","includePrerelease":true,"enableAssociatedVideos":false}', + 'extensions': get_artist_stats_extensions, + } + + response = requests.get( + 'https://api-partner.spotify.com/pathfinder/v1/query', + params=get_artist_stats_params, + headers=client_headers + ) + time.sleep(timeout) + request_count += 1 + print(f"Artist Stats {artist_id} - [*] [Request {request_count} - {response.status_code}]") + + artist_stats = response.json().get('data').get('artistUnion').get('stats') + + with open(f'resources/artists/artist-{artist_id}.json', 'r+', encoding='utf-8') as artist_file: + data = json.load(artist_file, object_pairs_hook=OrderedDict) + data['followers'] = artist_stats.get('followers') + data['monthly_listeners'] = artist_stats.get('monthlyListeners') + data['world_rank'] = artist_stats.get('worldRank') + data['top_cities'] = artist_stats.get('topCities').get('items') + artist_file.seek(0) + json.dump(data, artist_file, indent=4, sort_keys=False, ensure_ascii=False) + artist_file.truncate() + + with open(f'resources/artists/artist-{artist_id}.json', 'r', encoding='utf-8') as artist_file: + data = json.load(artist_file) + + artist_albums = data.get('albums') + albums_ids = list() + for album in artist_albums: + albums_ids.append(album.get('album_id')) + + for album_id in albums_ids: + get_album_params = { + 'operationName': 'getAlbum', + 'variables': '{"uri":"spotify:album:' + + album_id + '","locale":"","offset":0,"limit":50,"enableAssociatedVideos":false}', + 'extensions': get_tracks_extensions, + } + + response = requests.get( + 'https://api-partner.spotify.com/pathfinder/v1/query', + params=get_album_params, + headers=client_headers + ) + time.sleep(timeout) + request_count += 1 + print(f"Get Album {album_id} - [*] [Request {request_count} - {response.status_code}]") + + tracks_data = response.json().get('data').get('albumUnion').get('tracks').get('items') + + for track in tracks_data: + track_data = track.get('track') + track_id = track_data.get('uri').split(':')[2] + track_playcount = track_data.get('playcount') + + with open(f'resources/artists/artist-{artist_id}.json', 'r+', encoding='utf-8') as artist_file: + data = json.load(artist_file, object_pairs_hook=OrderedDict) + for artist_track in data.get('tracks'): + if artist_track.get('track_id') == track_id: + artist_track['playcount'] = track_playcount + artist_file.seek(0) + json.dump(data, artist_file, indent=4, sort_keys=False, ensure_ascii=False) + artist_file.truncate() + + +if __name__ == '__main__': + main() diff --git a/src/aggregator/tracks_count.py b/src/aggregator/tracks_count.py new file mode 100644 index 0000000..139067f --- /dev/null +++ b/src/aggregator/tracks_count.py @@ -0,0 +1,25 @@ +import json +from os import listdir +from os.path import isfile, join + +artists_path = "resources/artists" + +artists_files = [file for file in listdir(artists_path) if isfile(join(artists_path, file))] + +artist_count, albums_count, tracks_count = 0, 0, 0 +for artist_file in artists_files: + with open(f'resources/artists/{artist_file}', 'r', encoding='utf-8') as artist: + artist_data = json.load(artist) + + artist_count += 1 + + artist_albums = artist_data.get('albums') + for album in artist_albums: + albums_count += 1 + + artist_tracks = artist_data.get('tracks') + for track in artist_tracks: + tracks_count += 1 + +# Artists: 2005, Albums: 50292, Tracks: 269736 +print(f'Artists: {artist_count}, Albums: {albums_count}, Tracks: {tracks_count}')