From a5d4ae57b6c2f2223632844b09882c29f3c8cbd7 Mon Sep 17 00:00:00 2001 From: Mephody Date: Wed, 22 Nov 2023 20:29:49 +0300 Subject: [PATCH 01/19] Add entity definition - on conflict update --- src/__init__.py | 0 src/api/config.py | 6 ++ src/api/detail/entity/album.py | 42 +++++++++ src/api/detail/entity/albumType.py | 55 ++++++++++++ src/api/detail/entity/artist.py | 116 +++++++++++++++++++++++++ src/api/detail/entity/city.py | 64 ++++++++++++++ src/api/detail/entity/genre.py | 55 ++++++++++++ src/api/detail/entity/track.py | 60 +++++++++++++ src/api/detail/init.py | 73 ++++++++++++++++ src/api/main.py | 131 +++++++++++++++++++++++++++++ src/db/Dockerfile | 5 ++ src/db/init.sql | 78 +++++++++++++++++ src/docker-compose.yml | 16 ++++ 13 files changed, 701 insertions(+) delete mode 100644 src/__init__.py create mode 100755 src/api/config.py create mode 100644 src/api/detail/entity/album.py create mode 100644 src/api/detail/entity/albumType.py create mode 100644 src/api/detail/entity/artist.py create mode 100644 src/api/detail/entity/city.py create mode 100644 src/api/detail/entity/genre.py create mode 100644 src/api/detail/entity/track.py create mode 100755 src/api/detail/init.py create mode 100755 src/api/main.py create mode 100644 src/db/Dockerfile create mode 100644 src/db/init.sql create mode 100644 src/docker-compose.yml diff --git a/src/__init__.py b/src/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/api/config.py b/src/api/config.py new file mode 100755 index 0000000..ba6fc24 --- /dev/null +++ b/src/api/config.py @@ -0,0 +1,6 @@ +DB_HOST = '0.0.0.0' +DB_PORT = '5432' +DB_NAME = 'spotistats' + +DB_LOGIN = 'user' +DB_PASSW = 'user' diff --git a/src/api/detail/entity/album.py b/src/api/detail/entity/album.py new file mode 100644 index 0000000..69bdfbe --- /dev/null +++ b/src/api/detail/entity/album.py @@ -0,0 +1,42 @@ +class Album: + + TABLE_NAME = 'album' + + def __init__(self, id, spotify_id, album_type_id, name, release_date, label, popularity): + self.id = id + self.spotify_id = spotify_id + self.album_type_id = album_type_id + self.name = name + self.release_date = release_date + self.label = label + self.popularity = popularity + + @staticmethod + def save(conn, spotify_id, album_type_id, name, release_date, label, popularity): + try: + with conn.cursor() as cur: + cur.execute(f''' + INSERT INTO {Album.TABLE_NAME} (spotify_id, album_type_id, name, release_date, label, popularity) + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE + SET (spotify_id, album_type_id, name, release_date, label, popularity) = + (EXCLUDED.spotify_id, EXCLUDED.album_type_id, EXCLUDED.name, EXCLUDED.release_date, EXCLUDED.label, EXCLUDED.popularity) + ''', spotify_id, album_type_id, name, release_date, label, popularity) + return True + except Exception as e: + print(e) + return False + + @staticmethod + def get_by_id(conn, id): + if not id: return None + + with conn.cursor() as cur: + cur.execute(f''' + SELECT spotify_id, album_type_id, name, release_date, label, popularity + FROM {Album.TABLE_NAME} WHERE id = %s + ''', id) + result = cur.fetchone() + + if not result: return None + + return Album(id, *result) \ No newline at end of file diff --git a/src/api/detail/entity/albumType.py b/src/api/detail/entity/albumType.py new file mode 100644 index 0000000..87ee250 --- /dev/null +++ b/src/api/detail/entity/albumType.py @@ -0,0 +1,55 @@ +class AlbumType: + + TABLE_NAME = 'album_type' + + cache_by_id = {} + cache_by_name = {} + + def __init__(self, id, name): + self.id = id + self.name = name + + AlbumType.cache_by_id.setdefault(id, name) + AlbumType.cache_by_name.setdefault(name, id) + + @staticmethod + def get_id(conn, name): + id = AlbumType.cache_by_name.get(name) + if id != None: + return id + + with conn.cursor() as cur: + cur.execute(f'SELECT id FROM {AlbumType.TABLE_NAME} WHERE name = %s', name) + id = cur.fetchone()[0] + + if id == None: + try: + with conn.cursor() as cur: + cur.execute(f'INSERT INTO {AlbumType.TABLE_NAME} (name) VALUES (%s) RETURNING id', name) + id = cur.fetchone()[0] + except Exception as e: + print(e) + return None + + AlbumType.cache_by_id[id] = name + AlbumType.cache_by_name[name] = id + + return id + + @staticmethod + def get_name(conn, id): + name = AlbumType.cache_by_id.get(id) + if name != None: + return name + + with conn.cursor() as cur: + cur.execute(f'SELECT name FROM {AlbumType.TABLE_NAME} WHERE id = %s', id) + name = cur.fetchone()[0] + + if name != None: + AlbumType.cache_by_id[id] = name + AlbumType.cache_by_name[name] = id + + return name + + diff --git a/src/api/detail/entity/artist.py b/src/api/detail/entity/artist.py new file mode 100644 index 0000000..b11ab99 --- /dev/null +++ b/src/api/detail/entity/artist.py @@ -0,0 +1,116 @@ +from detail.entity.city import City +from detail.entity.genre import Genre +from detail.entity.track import Track + +class Artist: + + TABLE_NAME = 'artist' + TABLE_NAME__CITY = 'artist__city' + TABLE_NAME__GENRE = 'artist__genre' + TABLE_NAME__TRACK = 'artist__track' + + def __init__(self, id, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None): + self.id = id + self.spotify_id = spotify_id + self.name = name + self.followers = followers + self.popularity = popularity + self.monthly_listeners = monthly_listeners + self.world_rank = world_rank + + self.genres = None + + @staticmethod + def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None): + try: + with conn.cursor() as cur: + cur.execute(f''' + INSERT INTO {Artist.TABLE_NAME} (spotify_id, name, followers, popularity, monthly_listeners, world_rank) + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE + SET (spotify_id, name, followers, popularity, monthly_listeners, world_rank) = + (EXCLUDED.spotify_id, EXCLUDED.name, EXCLUDED.followers, EXCLUDED.popularity, EXCLUDED.monthly_listeners, EXCLUDED.world_rank) + ''', spotify_id, name, followers, popularity, monthly_listeners, world_rank) + return True + except Exception as e: + print(e) + return False + + @staticmethod + def update(conn, spotify_id, followers = None, popularity = None, monthly_listeners = None, world_rank = None): + try: + with conn.cursor() as cur: + cur.execute(f''' + UPDATE {Artist.TABLE_NAME} SET + followers = COALESCE(%s, followers), + popularity = COALESCE(%s, popularity), + monthly_listeners = COALESCE(%s, monthly_listeners), + world_rank = COALESCE(%s, world_rank) + WHERE spotify_id = %s + ''', followers, popularity, monthly_listeners, world_rank, spotify_id) + return True + except Exception as e: + print(e) + return False + + @staticmethod + def get_by_id(conn, id): + if not id: return None + + with conn.cursor() as cur: + cur.execute(f''' + SELECT spotify_id, name, followers, popularity, monthly_listeners, world_rank + FROM {Artist.TABLE_NAME} WHERE id = %s + ''', id) + result = cur.fetchone() + + if not result: return None + + return Artist(id, *result) + + def get_cities(self, conn): + with conn.cursor() as cur: + cur.execute(f''' + SELECT + {City.TABLE_NAME}.id, + {City.TABLE_NAME}.name, + {City.TABLE_NAME}.country, + {City.TABLE_NAME}.region + FROM {Artist.TABLE_NAME__CITY} + JOIN {City.TABLE_NAME} ON {Artist.TABLE_NAME__CITY}.city_id = {City.TABLE_NAME}.id + WHERE {Artist.TABLE_NAME__CITY}.artist_id = %s + ''', self.id) + result = [City(*entry) for entry in cur.fetchall()] + + return result + + def get_genres(self, conn): + with conn.cursor() as cur: + cur.execute(f''' + SELECT {Genre.TABLE_NAME}.id, {Genre.TABLE_NAME}.name + FROM {Artist.TABLE_NAME__GENRE} + JOIN {Genre.TABLE_NAME} ON {Artist.TABLE_NAME__GENRE}.genre_id = {Genre.TABLE_NAME}.id + WHERE {Artist.TABLE_NAME__GENRE}.artist_id = %s + ''', self.id) + result = [Genre(*entry) for entry in cur.fetchall()] + + return result + + def get_tracks(self, conn): + with conn.cursor() as cur: + cur.execute(f''' + SELECT + {Track.TABLE_NAME}.id, + {Track.TABLE_NAME}.spotify_id, + {Track.TABLE_NAME}.name, + {Track.TABLE_NAME}.duration_ms, + {Track.TABLE_NAME}.explicit, + {Track.TABLE_NAME}.popularity, + {Track.TABLE_NAME}.features, + {Track.TABLE_NAME}.plays + FROM {Artist.TABLE_NAME__TRACK} + JOIN {Track.TABLE_NAME} ON {Artist.TABLE_NAME__TRACK}.track_id = {Track.TABLE_NAME}.id + WHERE {Artist.TABLE_NAME__TRACK}.artist_id = %s + ''', self.id) + result = [Track(*entry) for entry in cur.fetchall()] + + return result \ No newline at end of file diff --git a/src/api/detail/entity/city.py b/src/api/detail/entity/city.py new file mode 100644 index 0000000..22fc699 --- /dev/null +++ b/src/api/detail/entity/city.py @@ -0,0 +1,64 @@ +class City: + + TABLE_NAME = 'city' + + cache_by_id = {} + cache_by_name = {} + + def __init__(self, id, name, country, region): + self.id = id + self.name = name + self.country = country + self.region = region + + City.cache_by_id.setdefault(id, (name, country, region)) + City.cache_by_name.setdefault(City._get_name_key(name, country, region), id) + + @staticmethod + def _get_name_key(name, country, region): + return '\t'.join((name, country, region)) + + @staticmethod + def get_id(conn, name, country, region): + name_key = City._get_name_key(name, country, region) + id = City.cache_by_name.get(name_key) + if id != None: + return id + + with conn.cursor() as cur: + cur.execute(f'SELECT id FROM {City.TABLE_NAME} WHERE name = %s AND country = %s AND region = %s', + name, country, region) + id = cur.fetchone()[0] + + if id == None: + try: + with conn.cursor() as cur: + cur.execute(f'INSERT INTO {City.TABLE_NAME} (name, country, region) VALUES (%s, %s, %s) RETURNING id', + name, country, region) + id = cur.fetchone()[0] + except Exception as e: + print(e) + return None + + City.cache_by_id[id] = (name, country, region) + City.cache_by_name[name_key] = id + + return id + + @staticmethod + def get_name(conn, id): + name = City.cache_by_id.get(id) + if name != None: + return name + + with conn.cursor() as cur: + cur.execute(f'SELECT name, country, region FROM {City.TABLE_NAME} WHERE id = %s', id) + name = cur.fetchone() + + if name != None: + City.cache_by_id[id] = name + City.cache_by_name[City._get_name_key(*name)] = id + + return name + + diff --git a/src/api/detail/entity/genre.py b/src/api/detail/entity/genre.py new file mode 100644 index 0000000..e3f3fba --- /dev/null +++ b/src/api/detail/entity/genre.py @@ -0,0 +1,55 @@ +class Genre: + + TABLE_NAME = 'genre' + + cache_by_id = {} + cache_by_name = {} + + def __init__(self, id, name): + self.id = id + self.name = name + + Genre.cache_by_id.setdefault(id, name) + Genre.cache_by_name.setdefault(name, id) + + @staticmethod + def get_id(conn, name): + id = Genre.cache_by_name.get(name) + if id != None: + return id + + with conn.cursor() as cur: + cur.execute(f'SELECT id FROM {Genre.TABLE_NAME} WHERE name = %s', name) + id = cur.fetchone()[0] + + if id == None: + try: + with conn.cursor() as cur: + cur.execute(f'INSERT INTO {Genre.TABLE_NAME} (name) VALUES (%s) RETURNING id', name) + id = cur.fetchone()[0] + except Exception as e: + print(e) + return None + + Genre.cache_by_id[id] = name + Genre.cache_by_name[name] = id + + return id + + @staticmethod + def get_name(conn, id): + name = Genre.cache_by_id.get(id) + if name != None: + return name + + with conn.cursor() as cur: + cur.execute(f'SELECT name FROM {Genre.TABLE_NAME} WHERE id = %s', id) + name = cur.fetchone()[0] + + if name != None: + Genre.cache_by_id[id] = name + Genre.cache_by_name[name] = id + + return name + + diff --git a/src/api/detail/entity/track.py b/src/api/detail/entity/track.py new file mode 100644 index 0000000..049ff59 --- /dev/null +++ b/src/api/detail/entity/track.py @@ -0,0 +1,60 @@ +class Track: + + TABLE_NAME = 'track' + + def __init__(self, id, spotify_id, name, duration_ms, explicit, popularity, features = {}, plays = None): + self.id = id + self.spotify_id = spotify_id + self.name = name + self.duration_ms = duration_ms + self.explicit = explicit + self.popularity = popularity + self.features = features + self.plays = plays + + @staticmethod + def save(conn, spotify_id, name, duration_ms, explicit, popularity, features = {}, plays = None): + try: + with conn.cursor() as cur: + cur.execute(f''' + INSERT INTO {Track.TABLE_NAME} (spotify_id, name, duration_ms, explicit, popularity, features, plays) + VALUES (%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE + SET (spotify_id, name, duration_ms, explicit, popularity, features, plays) = + (EXCLUDED.spotify_id, EXCLUDED.name, EXCLUDED.duration_ms EXCLUDED.explicit, + EXCLUDED.popularity, EXCLUDED.features, EXCLUDED.plays) + ''', spotify_id, name, duration_ms, explicit, popularity, features, plays) + return True + except Exception as e: + print(e) + return False + + @staticmethod + def update(conn, spotify_id, popularity = None, features = None, plays = None): + try: + with conn.cursor() as cur: + cur.execute(f''' + UPDATE {Track.TABLE_NAME} SET + popularity = COALESCE(%s, popularity), + features = COALESCE(%s, features), + plays = COALESCE(%s, plays) + WHERE spotify_id = %s + ''', popularity, features, plays, spotify_id) + return True + except Exception as e: + print(e) + return False + + @staticmethod + def get_by_id(conn, id): + if not id: return None + + with conn.cursor() as cur: + cur.execute(f''' + SELECT spotify_id, name, duration_ms, explicit, popularity, features, plays + FROM {Track.TABLE_NAME} WHERE id = %s + ''', id) + result = cur.fetchone() + + if not result: return None + + return Track(id, *result) \ No newline at end of file diff --git a/src/api/detail/init.py b/src/api/detail/init.py new file mode 100755 index 0000000..f235f3d --- /dev/null +++ b/src/api/detail/init.py @@ -0,0 +1,73 @@ +import config +import detail.entity.userType +from detail.entity.user import User, hash_password + +import pyodbc +import os +import sys +import secrets +import string + +def init(): + + conn = pyodbc.connect('Driver={SQL Server};' + f'Server={config.DB_SERVER_NAME};' + 'Database=master;' + 'Trusted_Connection=yes;', + autocommit=True) + cur = conn.cursor() + + cur.execute(f"SELECT name FROM sys.databases WHERE name = '{config.DB_DATABASE_NAME}'") + db_exists = bool(cur.fetchall()) + + if not db_exists: + print('Initializing database...') + + db_file_path = os.path.join(os.path.dirname(sys.argv[0]), 'data'); + + with conn.cursor() as cur: + cur.execute( + 'CREATE DATABASE Library ON' + '(Name=Library,' + f"FileName='{db_file_path}\\library.mdf')" + 'LOG ON' + '(Name=Library_log,' + f"FileName='{db_file_path}\\library_log.mdf');" + ) + + conn.close() + conn = pyodbc.connect('Driver={SQL Server};' + f'Server={config.DB_SERVER_NAME};' + f'Database={config.DB_DATABASE_NAME};' + 'Trusted_Connection=yes;' + 'AutoTranslate=yes;', + autocommit=True, ansi=True) + + if not db_exists: + with open('data/init.sql', 'r', encoding='utf8') as f: + script = f.read() + for statement in script.split('\nGO'): + if statement.strip(): + # print(statement) + with conn.cursor() as cur: + cur.execute(statement) + + alphabet = string.ascii_letters + string.digits + password = ''.join(secrets.choice(alphabet) for i in range(20)) + User.register(conn, config.DIRECTOR_LOGIN, hash_password(password), config.ROLE_NAME_DIRECTOR, config.DIRECTOR_NAME, config.DIRECTOR_PHONE) + print('\nRegistered Director account:' + + '\n login: ' + config.DIRECTOR_LOGIN + + '\n password: ' + password + + '\n' + ) + + + with conn.cursor() as cur: + cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_VISITOR) + detail.entity.userType.visitor = cur.fetchall()[0][0] + cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_LIBRARIAN) + detail.entity.userType.librarian = cur.fetchall()[0][0] + cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_DIRECTOR) + detail.entity.userType.director = cur.fetchall()[0][0] + + return conn diff --git a/src/api/main.py b/src/api/main.py new file mode 100755 index 0000000..680c099 --- /dev/null +++ b/src/api/main.py @@ -0,0 +1,131 @@ +#!/bin/env python3 + +from flask import Flask, request, send_from_directory, render_template +import pyodbc +import traceback +import detail.init +import detail.page.catalogue +import detail.page.login +import detail.page.register +import detail.page.logout +import detail.page.settings +import detail.page.myborrows +import detail.page.users +import detail.page.overdue +import detail.page.author +import detail.page.publisher +import detail.page.book +import detail.api.search_users +import detail.page.addbook + +app = Flask(__name__) + +conn = detail.init.init() + +def error_handler(func): + def Inner_Function(*args, **kwargs): + try: + return func(*args, **kwargs) + except Exception as e: + # print(e) + traceback.print_exc() + return render_template('pages/error.html', code = 500) + Inner_Function.__name__ = func.__name__ + return Inner_Function + + +@app.route('/') +@error_handler +def page_index(): + return detail.page.catalogue.render(conn, request) + + +@app.route('/login', methods=['GET', 'POST']) +@error_handler +def page_login(): + return detail.page.login.render(conn, request) + + +@app.route('/register', methods=['GET', 'POST']) +@error_handler +def page_register(): + return detail.page.register.render(conn, request) + + +@app.route('/assets/') +@error_handler +def page_assets(path): + return send_from_directory('assets', path) + + +@app.route('/logout') +@error_handler +def page_logout(): + return detail.page.logout.render(conn, request) + + +@app.route('/settings', methods=['GET', 'POST']) +@error_handler +def page_settings(): + return detail.page.settings.render(conn, request) + + +@app.route('/myborrows') +@error_handler +def page_myborrows(): + return detail.page.myborrows.render(conn, request) + + +@app.route('/addlibr', methods=['GET', 'POST']) +@error_handler +def page_addlibr(): + return detail.page.register.render(conn, request, is_user = False) + + +@app.route('/users') +@error_handler +def page_users(): + return detail.page.users.render(conn, request) + + +@app.route('/overdue', methods=['GET', 'POST']) +@error_handler +def page_overdue(): + return detail.page.overdue.render(conn, request) + + +@app.route('/author/', methods=['GET', 'POST']) +@error_handler +def page_author(id): + return detail.page.author.render(conn, request, id) + + +@app.route('/publisher/', methods=['GET', 'POST']) +@error_handler +def page_publisher(id): + return detail.page.publisher.render(conn, request, id) + + +@app.route('/book/', methods=['GET', 'POST']) +@error_handler +def page_book(id): + return detail.page.book.render(conn, request, id) + + +@app.route('/api/search_users', methods=['POST']) +@error_handler +def api_search_users(): + return detail.api.search_users.render(conn, request) + + +@app.route('/addbook', methods=['GET', 'POST']) +@error_handler +def page_addbook(): + return detail.page.addbook.render(conn, request) + + +if __name__ == '__main__': + app.run(debug = True) + +# conn.close() +print('finished') \ No newline at end of file diff --git a/src/db/Dockerfile b/src/db/Dockerfile new file mode 100644 index 0000000..bebef76 --- /dev/null +++ b/src/db/Dockerfile @@ -0,0 +1,5 @@ +FROM postgres:16.1 + +EXPOSE 5432 +VOLUME /pgdata +ENV POSTGRES_PASSWORD pgpwd \ No newline at end of file diff --git a/src/db/init.sql b/src/db/init.sql new file mode 100644 index 0000000..f623874 --- /dev/null +++ b/src/db/init.sql @@ -0,0 +1,78 @@ +CREATE TABLE genre ( + id SERIAL PRIMARY KEY, + name VARCHAR(256) +); + +CREATE TABLE city ( + id SERIAL PRIMARY KEY, + name VARCHAR(256), + country VARCHAR(48), + region VARCHAR(48) +); + +CREATE TABLE album_type ( + id SERIAL PRIMARY KEY, + name VARCHAR(256) +); + +CREATE TABLE artist ( + id SERIAL PRIMARY KEY, + spotify_id VARCHAR(24), + name VARCHAR(256), + followers BIGINT, + popularity SMALLINT, + monthly_listeners BIGINT, + world_rank BIGINT +); + +CREATE TABLE album ( + id SERIAL PRIMARY KEY, + spotify_id VARCHAR(24), + name VARCHAR(256), + album_type_id SERIAL REFERENCES album_type(id), + release_date DATE, + label VARCHAR(256), + popularity SMALLINT +); + +CREATE TABLE track ( + id SERIAL PRIMARY KEY, + spotify_id VARCHAR(24), + name VARCHAR(256), + duration_ms INTEGER, + explicit BOOLEAN, + popularity SMALLINT, + features JSONB, + plays BIGINT +); + +CREATE TABLE album__artist ( + album_id SERIAL REFERENCES album(id), + artist_id SERIAL REFERENCES artist(id) +); + +CREATE TABLE album__track ( + album_id SERIAL REFERENCES album(id), + track_id SERIAL REFERENCES track(id) +); + +CREATE TABLE album__genre ( + album_id SERIAL REFERENCES album(id), + genre_id SERIAL REFERENCES genre(id) +); + +CREATE TABLE artist__city ( + artist_id SERIAL REFERENCES artist(id), + city_id SERIAL REFERENCES city(id), + monthly_plays BIGINT +); + +CREATE TABLE artist__genre ( + artist_id SERIAL REFERENCES artist(id), + genre_id SERIAL REFERENCES genre(id) +); + +CREATE TABLE artist__track ( + artist_id SERIAL REFERENCES artist(id), + track_id SERIAL REFERENCES track(id) +); \ No newline at end of file diff --git a/src/docker-compose.yml b/src/docker-compose.yml new file mode 100644 index 0000000..2e06a09 --- /dev/null +++ b/src/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.8' +services: + db: + image: postgres:16.1 + ports: + - "5432:5432" + volumes: + - pgdata:/var/lib/postgresql/data + - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql + environment: + - POSTGRES_USER=user + - POSTGRES_PASSWORD=user + - POSTGRES_DB=spotistats +volumes: + pgdata: + driver: local \ No newline at end of file From a7200669fe8b4c7963579c2d70068c038ff8c475 Mon Sep 17 00:00:00 2001 From: Mephody Date: Wed, 22 Nov 2023 20:30:42 +0300 Subject: [PATCH 02/19] Update entity definition - on conflict do nothing --- src/api/detail/entity/album.py | 4 +--- src/api/detail/entity/artist.py | 4 +--- src/api/detail/entity/track.py | 5 +---- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/src/api/detail/entity/album.py b/src/api/detail/entity/album.py index 69bdfbe..27afb6b 100644 --- a/src/api/detail/entity/album.py +++ b/src/api/detail/entity/album.py @@ -17,9 +17,7 @@ def save(conn, spotify_id, album_type_id, name, release_date, label, popularity) with conn.cursor() as cur: cur.execute(f''' INSERT INTO {Album.TABLE_NAME} (spotify_id, album_type_id, name, release_date, label, popularity) - VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE - SET (spotify_id, album_type_id, name, release_date, label, popularity) = - (EXCLUDED.spotify_id, EXCLUDED.album_type_id, EXCLUDED.name, EXCLUDED.release_date, EXCLUDED.label, EXCLUDED.popularity) + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING ''', spotify_id, album_type_id, name, release_date, label, popularity) return True except Exception as e: diff --git a/src/api/detail/entity/artist.py b/src/api/detail/entity/artist.py index b11ab99..7e6f087 100644 --- a/src/api/detail/entity/artist.py +++ b/src/api/detail/entity/artist.py @@ -26,9 +26,7 @@ def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None with conn.cursor() as cur: cur.execute(f''' INSERT INTO {Artist.TABLE_NAME} (spotify_id, name, followers, popularity, monthly_listeners, world_rank) - VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE - SET (spotify_id, name, followers, popularity, monthly_listeners, world_rank) = - (EXCLUDED.spotify_id, EXCLUDED.name, EXCLUDED.followers, EXCLUDED.popularity, EXCLUDED.monthly_listeners, EXCLUDED.world_rank) + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING ''', spotify_id, name, followers, popularity, monthly_listeners, world_rank) return True except Exception as e: diff --git a/src/api/detail/entity/track.py b/src/api/detail/entity/track.py index 049ff59..0c14663 100644 --- a/src/api/detail/entity/track.py +++ b/src/api/detail/entity/track.py @@ -18,10 +18,7 @@ def save(conn, spotify_id, name, duration_ms, explicit, popularity, features = { with conn.cursor() as cur: cur.execute(f''' INSERT INTO {Track.TABLE_NAME} (spotify_id, name, duration_ms, explicit, popularity, features, plays) - VALUES (%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO UPDATE - SET (spotify_id, name, duration_ms, explicit, popularity, features, plays) = - (EXCLUDED.spotify_id, EXCLUDED.name, EXCLUDED.duration_ms EXCLUDED.explicit, - EXCLUDED.popularity, EXCLUDED.features, EXCLUDED.plays) + VALUES (%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING ''', spotify_id, name, duration_ms, explicit, popularity, features, plays) return True except Exception as e: From 5ad8cfb5ec05cf382fbdb9fa068d17c1e39b0116 Mon Sep 17 00:00:00 2001 From: Mephody Date: Wed, 22 Nov 2023 22:44:52 +0300 Subject: [PATCH 03/19] Complete saveArtist action --- src/api/action/saveArtist.py | 65 ++++++++++++ src/api/config.py | 12 ++- src/api/detail/entity/album.py | 40 -------- src/api/detail/init.py | 73 ------------- src/api/entity/album.py | 70 +++++++++++++ src/api/{detail => }/entity/albumType.py | 12 ++- src/api/{detail => }/entity/artist.py | 43 +++++--- src/api/{detail => }/entity/city.py | 12 ++- src/api/{detail => }/entity/genre.py | 12 ++- src/api/{detail => }/entity/track.py | 41 ++++++-- src/api/main.py | 124 ++++------------------- src/db/init.sql | 28 +++-- 12 files changed, 261 insertions(+), 271 deletions(-) create mode 100644 src/api/action/saveArtist.py delete mode 100644 src/api/detail/entity/album.py delete mode 100755 src/api/detail/init.py create mode 100644 src/api/entity/album.py rename src/api/{detail => }/entity/albumType.py (86%) rename src/api/{detail => }/entity/artist.py (77%) rename src/api/{detail => }/entity/city.py (88%) rename src/api/{detail => }/entity/genre.py (87%) rename src/api/{detail => }/entity/track.py (55%) diff --git a/src/api/action/saveArtist.py b/src/api/action/saveArtist.py new file mode 100644 index 0000000..b3e2ce3 --- /dev/null +++ b/src/api/action/saveArtist.py @@ -0,0 +1,65 @@ +from entity.album import Album +from entity.artist import Artist +from entity.track import Track + +def execute(conn, data): + try: + artist_id = Artist.save(conn, + data['artist_id'], # spotify_id + data['name'], + data.get('followers'), + data.get('popularity'), + data.get('monthly_listeners'), + data.get('world_rank'), + data.get('genres', []) + ) + + if 'albums' in data: + for album in data['albums']: + Album.save(conn, + album['album_id'], # spotify_id + album['album_name'], + album.get('album_type'), + album.get('release_date'), + album.get('label'), + album.get('popularity'), + artist_id, + album.get('genres', []) + ) + + if 'tracks' in data: + for track in data['tracks']: + Track.save(conn, + track['track_id'], # spotify_id + track['track_name'], + track.get('duration_ms'), + track.get('explicit'), + track.get('popularity'), + { + k: track.get(k) for k in [ + "acousticness", + "danceability", + "energy", + "instrumentalness", + "key", + "liveness", + "loudness", + "mode", + "speechiness", + "tempo", + "time_signature", + "valence" + ] + }, + track.get('plays'), + track.get('artists', []), + track.get('albums', []), + ) + + conn.commit() + + + except KeyError as e: + return 'malformed json: no such key ' + str(e), 500 + + return 'ok', 200 \ No newline at end of file diff --git a/src/api/config.py b/src/api/config.py index ba6fc24..aaa89cc 100755 --- a/src/api/config.py +++ b/src/api/config.py @@ -1,6 +1,8 @@ -DB_HOST = '0.0.0.0' -DB_PORT = '5432' -DB_NAME = 'spotistats' +import os -DB_LOGIN = 'user' -DB_PASSW = 'user' +DB_HOST = os.environ.get('DB_HOST', '0.0.0.0') +DB_PORT = os.environ.get('DB_PORT', '5432') +DB_NAME = os.environ.get('DB_NAME', 'spotistats') + +DB_USER = os.environ.get('DB_USER', 'user') +DB_PASS = os.environ.get('DB_PASS', 'user') \ No newline at end of file diff --git a/src/api/detail/entity/album.py b/src/api/detail/entity/album.py deleted file mode 100644 index 27afb6b..0000000 --- a/src/api/detail/entity/album.py +++ /dev/null @@ -1,40 +0,0 @@ -class Album: - - TABLE_NAME = 'album' - - def __init__(self, id, spotify_id, album_type_id, name, release_date, label, popularity): - self.id = id - self.spotify_id = spotify_id - self.album_type_id = album_type_id - self.name = name - self.release_date = release_date - self.label = label - self.popularity = popularity - - @staticmethod - def save(conn, spotify_id, album_type_id, name, release_date, label, popularity): - try: - with conn.cursor() as cur: - cur.execute(f''' - INSERT INTO {Album.TABLE_NAME} (spotify_id, album_type_id, name, release_date, label, popularity) - VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING - ''', spotify_id, album_type_id, name, release_date, label, popularity) - return True - except Exception as e: - print(e) - return False - - @staticmethod - def get_by_id(conn, id): - if not id: return None - - with conn.cursor() as cur: - cur.execute(f''' - SELECT spotify_id, album_type_id, name, release_date, label, popularity - FROM {Album.TABLE_NAME} WHERE id = %s - ''', id) - result = cur.fetchone() - - if not result: return None - - return Album(id, *result) \ No newline at end of file diff --git a/src/api/detail/init.py b/src/api/detail/init.py deleted file mode 100755 index f235f3d..0000000 --- a/src/api/detail/init.py +++ /dev/null @@ -1,73 +0,0 @@ -import config -import detail.entity.userType -from detail.entity.user import User, hash_password - -import pyodbc -import os -import sys -import secrets -import string - -def init(): - - conn = pyodbc.connect('Driver={SQL Server};' - f'Server={config.DB_SERVER_NAME};' - 'Database=master;' - 'Trusted_Connection=yes;', - autocommit=True) - cur = conn.cursor() - - cur.execute(f"SELECT name FROM sys.databases WHERE name = '{config.DB_DATABASE_NAME}'") - db_exists = bool(cur.fetchall()) - - if not db_exists: - print('Initializing database...') - - db_file_path = os.path.join(os.path.dirname(sys.argv[0]), 'data'); - - with conn.cursor() as cur: - cur.execute( - 'CREATE DATABASE Library ON' - '(Name=Library,' - f"FileName='{db_file_path}\\library.mdf')" - 'LOG ON' - '(Name=Library_log,' - f"FileName='{db_file_path}\\library_log.mdf');" - ) - - conn.close() - conn = pyodbc.connect('Driver={SQL Server};' - f'Server={config.DB_SERVER_NAME};' - f'Database={config.DB_DATABASE_NAME};' - 'Trusted_Connection=yes;' - 'AutoTranslate=yes;', - autocommit=True, ansi=True) - - if not db_exists: - with open('data/init.sql', 'r', encoding='utf8') as f: - script = f.read() - for statement in script.split('\nGO'): - if statement.strip(): - # print(statement) - with conn.cursor() as cur: - cur.execute(statement) - - alphabet = string.ascii_letters + string.digits - password = ''.join(secrets.choice(alphabet) for i in range(20)) - User.register(conn, config.DIRECTOR_LOGIN, hash_password(password), config.ROLE_NAME_DIRECTOR, config.DIRECTOR_NAME, config.DIRECTOR_PHONE) - print('\nRegistered Director account:' + - '\n login: ' + config.DIRECTOR_LOGIN + - '\n password: ' + password + - '\n' - ) - - - with conn.cursor() as cur: - cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_VISITOR) - detail.entity.userType.visitor = cur.fetchall()[0][0] - cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_LIBRARIAN) - detail.entity.userType.librarian = cur.fetchall()[0][0] - cur.execute('SELECT userType FROM UserTypes WHERE name = ?', config.ROLE_NAME_DIRECTOR) - detail.entity.userType.director = cur.fetchall()[0][0] - - return conn diff --git a/src/api/entity/album.py b/src/api/entity/album.py new file mode 100644 index 0000000..56e43fb --- /dev/null +++ b/src/api/entity/album.py @@ -0,0 +1,70 @@ +from entity.genre import Genre +from entity.albumType import AlbumType + +class Album: + + TABLE_NAME = 'album' + TABLE_NAME__ARTIST = 'album__artist' + TABLE_NAME__GENRE = 'album__genre' + TABLE_NAME__TRACK = 'album__track' + + def __init__(self, id, spotify_id, album_type_id, name, release_date, label, popularity): + self.id = id + self.spotify_id = spotify_id + self.album_type_id = album_type_id + self.name = name + self.release_date = release_date + self.label = label + self.popularity = popularity + + @staticmethod + def save(conn, spotify_id, name, album_type, release_date, label, popularity, artist_id, genres = []): + try: + album_type_id = AlbumType.get_id(conn, album_type) + + with conn.cursor() as cur: + cur.execute(f''' + INSERT INTO {Album.TABLE_NAME} (spotify_id, album_type_id, name, release_date, label, popularity) + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING RETURNING id + ''', (spotify_id, album_type_id, name, release_date, label, popularity)) + + id = cur.fetchone() + + if id == None: + cur.execute(f'SELECT id FROM {Album.TABLE_NAME} WHERE spotify_id = %s', (spotify_id,)) + id = cur.fetchone() + + id = id[0] + + for genre in genres: + genre_id = Genre.get_id(conn, genre) + cur.execute(f''' + INSERT INTO {Album.TABLE_NAME__GENRE} (album_id, genre_id) + VALUES (%s, %s) ON CONFLICT (album_id, genre_id) DO NOTHING + ''', (id, genre_id)) + + cur.execute(f''' + INSERT INTO {Album.TABLE_NAME__ARTIST} (album_id, artist_id) + VALUES (%s, %s) ON CONFLICT (album_id, artist_id) DO NOTHING + ''', (id, artist_id)) + + return id + + except Exception as e: + print(e) + return None + + @staticmethod + def get_by_id(conn, id): + if not id: return None + + with conn.cursor() as cur: + cur.execute(f''' + SELECT spotify_id, album_type_id, name, release_date, label, popularity + FROM {Album.TABLE_NAME} WHERE id = %s + ''', (id,)) + result = cur.fetchone() + + if not result: return None + + return Album(id, *result) \ No newline at end of file diff --git a/src/api/detail/entity/albumType.py b/src/api/entity/albumType.py similarity index 86% rename from src/api/detail/entity/albumType.py rename to src/api/entity/albumType.py index 87ee250..dc87585 100644 --- a/src/api/detail/entity/albumType.py +++ b/src/api/entity/albumType.py @@ -19,18 +19,20 @@ def get_id(conn, name): return id with conn.cursor() as cur: - cur.execute(f'SELECT id FROM {AlbumType.TABLE_NAME} WHERE name = %s', name) - id = cur.fetchone()[0] + cur.execute(f'SELECT id FROM {AlbumType.TABLE_NAME} WHERE name = %s', (name,)) + id = cur.fetchone() if id == None: try: with conn.cursor() as cur: - cur.execute(f'INSERT INTO {AlbumType.TABLE_NAME} (name) VALUES (%s) RETURNING id', name) - id = cur.fetchone()[0] + cur.execute(f'INSERT INTO {AlbumType.TABLE_NAME} (name) VALUES (%s) RETURNING id', (name,)) + id = cur.fetchone() except Exception as e: print(e) return None + id = id[0] + AlbumType.cache_by_id[id] = name AlbumType.cache_by_name[name] = id @@ -43,7 +45,7 @@ def get_name(conn, id): return name with conn.cursor() as cur: - cur.execute(f'SELECT name FROM {AlbumType.TABLE_NAME} WHERE id = %s', id) + cur.execute(f'SELECT name FROM {AlbumType.TABLE_NAME} WHERE id = %s', (id,)) name = cur.fetchone()[0] if name != None: diff --git a/src/api/detail/entity/artist.py b/src/api/entity/artist.py similarity index 77% rename from src/api/detail/entity/artist.py rename to src/api/entity/artist.py index 7e6f087..b173137 100644 --- a/src/api/detail/entity/artist.py +++ b/src/api/entity/artist.py @@ -1,6 +1,6 @@ -from detail.entity.city import City -from detail.entity.genre import Genre -from detail.entity.track import Track +from entity.city import City +from entity.genre import Genre +from entity.track import Track class Artist: @@ -21,17 +21,34 @@ def __init__(self, id, spotify_id, name, followers, popularity, monthly_listener self.genres = None @staticmethod - def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None): + def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None, genres = []): try: with conn.cursor() as cur: cur.execute(f''' INSERT INTO {Artist.TABLE_NAME} (spotify_id, name, followers, popularity, monthly_listeners, world_rank) - VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING - ''', spotify_id, name, followers, popularity, monthly_listeners, world_rank) - return True + VALUES (%s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING RETURNING id + ''', (spotify_id, name, followers, popularity, monthly_listeners, world_rank)) + + id = cur.fetchone() + + if id == None: + cur.execute(f'SELECT id FROM {Artist.TABLE_NAME} WHERE spotify_id = %s', (spotify_id,)) + id = cur.fetchone() + + id = id[0] + + for genre in genres: + genre_id = Genre.get_id(conn, genre) + cur.execute(f''' + INSERT INTO {Artist.TABLE_NAME__GENRE} (artist_id, genre_id) + VALUES (%s, %s) ON CONFLICT (artist_id, genre_id) DO NOTHING + ''', (id, genre_id)) + + return id + except Exception as e: print(e) - return False + return None @staticmethod def update(conn, spotify_id, followers = None, popularity = None, monthly_listeners = None, world_rank = None): @@ -44,7 +61,7 @@ def update(conn, spotify_id, followers = None, popularity = None, monthly_listen monthly_listeners = COALESCE(%s, monthly_listeners), world_rank = COALESCE(%s, world_rank) WHERE spotify_id = %s - ''', followers, popularity, monthly_listeners, world_rank, spotify_id) + ''', (followers, popularity, monthly_listeners, world_rank, spotify_id)) return True except Exception as e: print(e) @@ -58,7 +75,7 @@ def get_by_id(conn, id): cur.execute(f''' SELECT spotify_id, name, followers, popularity, monthly_listeners, world_rank FROM {Artist.TABLE_NAME} WHERE id = %s - ''', id) + ''', (id,)) result = cur.fetchone() if not result: return None @@ -76,7 +93,7 @@ def get_cities(self, conn): FROM {Artist.TABLE_NAME__CITY} JOIN {City.TABLE_NAME} ON {Artist.TABLE_NAME__CITY}.city_id = {City.TABLE_NAME}.id WHERE {Artist.TABLE_NAME__CITY}.artist_id = %s - ''', self.id) + ''', (self.id,)) result = [City(*entry) for entry in cur.fetchall()] return result @@ -88,7 +105,7 @@ def get_genres(self, conn): FROM {Artist.TABLE_NAME__GENRE} JOIN {Genre.TABLE_NAME} ON {Artist.TABLE_NAME__GENRE}.genre_id = {Genre.TABLE_NAME}.id WHERE {Artist.TABLE_NAME__GENRE}.artist_id = %s - ''', self.id) + ''', (self.id,)) result = [Genre(*entry) for entry in cur.fetchall()] return result @@ -108,7 +125,7 @@ def get_tracks(self, conn): FROM {Artist.TABLE_NAME__TRACK} JOIN {Track.TABLE_NAME} ON {Artist.TABLE_NAME__TRACK}.track_id = {Track.TABLE_NAME}.id WHERE {Artist.TABLE_NAME__TRACK}.artist_id = %s - ''', self.id) + ''', (self.id,)) result = [Track(*entry) for entry in cur.fetchall()] return result \ No newline at end of file diff --git a/src/api/detail/entity/city.py b/src/api/entity/city.py similarity index 88% rename from src/api/detail/entity/city.py rename to src/api/entity/city.py index 22fc699..dce5e25 100644 --- a/src/api/detail/entity/city.py +++ b/src/api/entity/city.py @@ -27,19 +27,21 @@ def get_id(conn, name, country, region): with conn.cursor() as cur: cur.execute(f'SELECT id FROM {City.TABLE_NAME} WHERE name = %s AND country = %s AND region = %s', - name, country, region) - id = cur.fetchone()[0] + (name, country, region)) + id = cur.fetchone() if id == None: try: with conn.cursor() as cur: cur.execute(f'INSERT INTO {City.TABLE_NAME} (name, country, region) VALUES (%s, %s, %s) RETURNING id', - name, country, region) - id = cur.fetchone()[0] + (name, country, region)) + id = cur.fetchone() except Exception as e: print(e) return None + id = id[0] + City.cache_by_id[id] = (name, country, region) City.cache_by_name[name_key] = id @@ -52,7 +54,7 @@ def get_name(conn, id): return name with conn.cursor() as cur: - cur.execute(f'SELECT name, country, region FROM {City.TABLE_NAME} WHERE id = %s', id) + cur.execute(f'SELECT name, country, region FROM {City.TABLE_NAME} WHERE id = %s', (id,)) name = cur.fetchone() if name != None: diff --git a/src/api/detail/entity/genre.py b/src/api/entity/genre.py similarity index 87% rename from src/api/detail/entity/genre.py rename to src/api/entity/genre.py index e3f3fba..515c840 100644 --- a/src/api/detail/entity/genre.py +++ b/src/api/entity/genre.py @@ -19,18 +19,20 @@ def get_id(conn, name): return id with conn.cursor() as cur: - cur.execute(f'SELECT id FROM {Genre.TABLE_NAME} WHERE name = %s', name) - id = cur.fetchone()[0] + cur.execute(f'SELECT id FROM {Genre.TABLE_NAME} WHERE name = %s', (name,)) + id = cur.fetchone() if id == None: try: with conn.cursor() as cur: - cur.execute(f'INSERT INTO {Genre.TABLE_NAME} (name) VALUES (%s) RETURNING id', name) - id = cur.fetchone()[0] + cur.execute(f'INSERT INTO {Genre.TABLE_NAME} (name) VALUES (%s) RETURNING id', (name,)) + id = cur.fetchone() except Exception as e: print(e) return None + id = id[0] + Genre.cache_by_id[id] = name Genre.cache_by_name[name] = id @@ -43,7 +45,7 @@ def get_name(conn, id): return name with conn.cursor() as cur: - cur.execute(f'SELECT name FROM {Genre.TABLE_NAME} WHERE id = %s', id) + cur.execute(f'SELECT name FROM {Genre.TABLE_NAME} WHERE id = %s', (id,)) name = cur.fetchone()[0] if name != None: diff --git a/src/api/detail/entity/track.py b/src/api/entity/track.py similarity index 55% rename from src/api/detail/entity/track.py rename to src/api/entity/track.py index 0c14663..9422f37 100644 --- a/src/api/detail/entity/track.py +++ b/src/api/entity/track.py @@ -1,3 +1,7 @@ +import json +import entity.artist +from entity.album import Album + class Track: TABLE_NAME = 'track' @@ -13,17 +17,40 @@ def __init__(self, id, spotify_id, name, duration_ms, explicit, popularity, feat self.plays = plays @staticmethod - def save(conn, spotify_id, name, duration_ms, explicit, popularity, features = {}, plays = None): + def save(conn, spotify_id, name, duration_ms, explicit, popularity, features = {}, plays = None, artists = [], albums = []): try: with conn.cursor() as cur: cur.execute(f''' INSERT INTO {Track.TABLE_NAME} (spotify_id, name, duration_ms, explicit, popularity, features, plays) - VALUES (%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING - ''', spotify_id, name, duration_ms, explicit, popularity, features, plays) - return True + VALUES (%s, %s, %s, %s, %s, %s, %s) ON CONFLICT (spotify_id) DO NOTHING RETURNING id + ''', (spotify_id, name, duration_ms, explicit, popularity, json.dumps(features), plays)) + id = cur.fetchone() + + if id == None: + cur.execute(f'SELECT id FROM {Track.TABLE_NAME} WHERE spotify_id = %s', (spotify_id,)) + id = cur.fetchone() + + id = id[0] + + for artist in artists: + cur.execute(f''' + INSERT INTO {entity.artist.Artist.TABLE_NAME__TRACK} (artist_id, track_id) + SELECT id, %s FROM {entity.artist.Artist.TABLE_NAME} WHERE spotify_id = %s + ON CONFLICT (artist_id, track_id) DO NOTHING + ''', (id, artist)) + + for album in albums: + cur.execute(f''' + INSERT INTO {Album.TABLE_NAME__TRACK} (album_id, track_id) + SELECT id, %s FROM {Album.TABLE_NAME} WHERE spotify_id = %s + ON CONFLICT (album_id, track_id) DO NOTHING + ''', (id, album)) + + return id + except Exception as e: print(e) - return False + return None @staticmethod def update(conn, spotify_id, popularity = None, features = None, plays = None): @@ -35,7 +62,7 @@ def update(conn, spotify_id, popularity = None, features = None, plays = None): features = COALESCE(%s, features), plays = COALESCE(%s, plays) WHERE spotify_id = %s - ''', popularity, features, plays, spotify_id) + ''', (popularity, features, plays, spotify_id)) return True except Exception as e: print(e) @@ -49,7 +76,7 @@ def get_by_id(conn, id): cur.execute(f''' SELECT spotify_id, name, duration_ms, explicit, popularity, features, plays FROM {Track.TABLE_NAME} WHERE id = %s - ''', id) + ''', (id,)) result = cur.fetchone() if not result: return None diff --git a/src/api/main.py b/src/api/main.py index 680c099..4204c04 100755 --- a/src/api/main.py +++ b/src/api/main.py @@ -1,26 +1,20 @@ #!/bin/env python3 -from flask import Flask, request, send_from_directory, render_template -import pyodbc +from flask import Flask, request +import psycopg2 import traceback -import detail.init -import detail.page.catalogue -import detail.page.login -import detail.page.register -import detail.page.logout -import detail.page.settings -import detail.page.myborrows -import detail.page.users -import detail.page.overdue -import detail.page.author -import detail.page.publisher -import detail.page.book -import detail.api.search_users -import detail.page.addbook +import action.saveArtist +import config app = Flask(__name__) -conn = detail.init.init() +conn = psycopg2.connect( + host = config.DB_HOST, + port = config.DB_PORT, + dbname = config.DB_NAME, + user = config.DB_USER, + password = config.DB_PASS + ) def error_handler(func): def Inner_Function(*args, **kwargs): @@ -29,100 +23,16 @@ def Inner_Function(*args, **kwargs): except Exception as e: # print(e) traceback.print_exc() - return render_template('pages/error.html', code = 500) + return 'error', 500 Inner_Function.__name__ = func.__name__ return Inner_Function - -@app.route('/') -@error_handler -def page_index(): - return detail.page.catalogue.render(conn, request) - - -@app.route('/login', methods=['GET', 'POST']) -@error_handler -def page_login(): - return detail.page.login.render(conn, request) - - -@app.route('/register', methods=['GET', 'POST']) -@error_handler -def page_register(): - return detail.page.register.render(conn, request) - - -@app.route('/assets/') -@error_handler -def page_assets(path): - return send_from_directory('assets', path) - - -@app.route('/logout') -@error_handler -def page_logout(): - return detail.page.logout.render(conn, request) - - -@app.route('/settings', methods=['GET', 'POST']) -@error_handler -def page_settings(): - return detail.page.settings.render(conn, request) - - -@app.route('/myborrows') -@error_handler -def page_myborrows(): - return detail.page.myborrows.render(conn, request) - - -@app.route('/addlibr', methods=['GET', 'POST']) +@app.route('/saveArtist', methods=['POST']) @error_handler -def page_addlibr(): - return detail.page.register.render(conn, request, is_user = False) - - -@app.route('/users') -@error_handler -def page_users(): - return detail.page.users.render(conn, request) - - -@app.route('/overdue', methods=['GET', 'POST']) -@error_handler -def page_overdue(): - return detail.page.overdue.render(conn, request) - - -@app.route('/author/', methods=['GET', 'POST']) -@error_handler -def page_author(id): - return detail.page.author.render(conn, request, id) - - -@app.route('/publisher/', methods=['GET', 'POST']) -@error_handler -def page_publisher(id): - return detail.page.publisher.render(conn, request, id) - - -@app.route('/book/', methods=['GET', 'POST']) -@error_handler -def page_book(id): - return detail.page.book.render(conn, request, id) - - -@app.route('/api/search_users', methods=['POST']) -@error_handler -def api_search_users(): - return detail.api.search_users.render(conn, request) - - -@app.route('/addbook', methods=['GET', 'POST']) -@error_handler -def page_addbook(): - return detail.page.addbook.render(conn, request) - +def saveArtist(): + if request.method == 'POST': + data = request.get_json() + return action.saveArtist.execute(conn, data) if __name__ == '__main__': app.run(debug = True) diff --git a/src/db/init.sql b/src/db/init.sql index f623874..d46e1e3 100644 --- a/src/db/init.sql +++ b/src/db/init.sql @@ -17,7 +17,7 @@ CREATE TABLE album_type ( CREATE TABLE artist ( id SERIAL PRIMARY KEY, - spotify_id VARCHAR(24), + spotify_id VARCHAR(24) UNIQUE, name VARCHAR(256), followers BIGINT, popularity SMALLINT, @@ -27,7 +27,7 @@ CREATE TABLE artist ( CREATE TABLE album ( id SERIAL PRIMARY KEY, - spotify_id VARCHAR(24), + spotify_id VARCHAR(24) UNIQUE, name VARCHAR(256), album_type_id SERIAL REFERENCES album_type(id), release_date DATE, @@ -37,7 +37,7 @@ CREATE TABLE album ( CREATE TABLE track ( id SERIAL PRIMARY KEY, - spotify_id VARCHAR(24), + spotify_id VARCHAR(24) UNIQUE, name VARCHAR(256), duration_ms INTEGER, explicit BOOLEAN, @@ -48,31 +48,37 @@ CREATE TABLE track ( CREATE TABLE album__artist ( album_id SERIAL REFERENCES album(id), - artist_id SERIAL REFERENCES artist(id) + artist_id SERIAL REFERENCES artist(id), + PRIMARY KEY(album_id, artist_id) ); -CREATE TABLE album__track ( +CREATE TABLE album__genre ( album_id SERIAL REFERENCES album(id), - track_id SERIAL REFERENCES track(id) + genre_id SERIAL REFERENCES genre(id), + PRIMARY KEY(album_id, genre_id) ); -CREATE TABLE album__genre ( +CREATE TABLE album__track ( album_id SERIAL REFERENCES album(id), - genre_id SERIAL REFERENCES genre(id) + track_id SERIAL REFERENCES track(id), + PRIMARY KEY(album_id, track_id) ); CREATE TABLE artist__city ( artist_id SERIAL REFERENCES artist(id), city_id SERIAL REFERENCES city(id), - monthly_plays BIGINT + monthly_plays BIGINT, + PRIMARY KEY(artist_id, city_id) ); CREATE TABLE artist__genre ( artist_id SERIAL REFERENCES artist(id), - genre_id SERIAL REFERENCES genre(id) + genre_id SERIAL REFERENCES genre(id), + PRIMARY KEY(artist_id, genre_id) ); CREATE TABLE artist__track ( artist_id SERIAL REFERENCES artist(id), - track_id SERIAL REFERENCES track(id) + track_id SERIAL REFERENCES track(id), + PRIMARY KEY(artist_id, track_id) ); \ No newline at end of file From 011676037c2f4efc26e23f6f812ef630097cbb3b Mon Sep 17 00:00:00 2001 From: Mephody Date: Thu, 23 Nov 2023 22:30:36 +0300 Subject: [PATCH 04/19] Add api for retrieving stats; prepare docker for api --- src/api/Dockerfile | 11 +++++++ .../action/getAverageFollowersPerGenres.py | 30 +++++++++++++++++++ src/api/action/getTracksPerYearForGenre.py | 15 ++++++++++ src/api/main.py | 15 ++++++++++ src/api/requirements.txt | 3 ++ src/db/Dockerfile | 4 +-- src/docker-compose.yml | 13 ++++++-- 7 files changed, 86 insertions(+), 5 deletions(-) create mode 100644 src/api/Dockerfile create mode 100644 src/api/action/getAverageFollowersPerGenres.py create mode 100644 src/api/action/getTracksPerYearForGenre.py create mode 100644 src/api/requirements.txt diff --git a/src/api/Dockerfile b/src/api/Dockerfile new file mode 100644 index 0000000..ce6e548 --- /dev/null +++ b/src/api/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.12.0-bookworm + +COPY ./requirements.txt /app/requirements.txt + +WORKDIR /app + +RUN pip install -r /app/requirements.txt + +COPY . /app + +CMD ["flask", "--app", "main", "run", "--host", "0.0.0.0"] \ No newline at end of file diff --git a/src/api/action/getAverageFollowersPerGenres.py b/src/api/action/getAverageFollowersPerGenres.py new file mode 100644 index 0000000..32523f4 --- /dev/null +++ b/src/api/action/getAverageFollowersPerGenres.py @@ -0,0 +1,30 @@ +def execute(conn, data): + try: + + data = [ + {"genre": "pop", "followers": 575580}, + {"genre": "dance pop", "followers": 366189}, + {"genre": "house", "followers": 328939}, + {"genre": "teen pop", "followers": 328082}, + {"genre": "electro house", "followers": 327309}, + {"genre": "edm", "followers": 323467}, + {"genre": "pop rap", "followers": 323125}, + {"genre": "pop christmas", "followers": 303698}, + {"genre": "pop rock", "followers": 168562}, + {"genre": "r&b", "followers": 154259}, + {"genre": "big room", "followers": 151126}, + {"genre": "alternative hip hop", "followers": 150749}, + {"genre": "urban contemporary", "followers": 145312}, + {"genre": "progressive electro house", "followers": 143170}, + {"genre": "indie r&b", "followers": 140098}, + {"genre": "indietronica", "followers": 138943}, + {"genre": "permanent wave", "followers": 124323}, + {"genre": "synthpop", "followers": 121304}, + {"genre": "contemporary country", "followers": 120795}, + {"genre": "neo mellow", "followers": 119190} + ] + + except KeyError as e: + return 'malformed json: no such key ' + str(e), 500 + + return data, 200 \ No newline at end of file diff --git a/src/api/action/getTracksPerYearForGenre.py b/src/api/action/getTracksPerYearForGenre.py new file mode 100644 index 0000000..7c6d7ec --- /dev/null +++ b/src/api/action/getTracksPerYearForGenre.py @@ -0,0 +1,15 @@ +import random + +def execute(conn, data): + try: + + random.seed(data) + + data = [ + {'year': y, 'count': random.randint(10**3, 10**6)} for y in range(2010, 2024) + ] + + except KeyError as e: + return 'malformed json: no such key ' + str(e), 500 + + return data, 200 \ No newline at end of file diff --git a/src/api/main.py b/src/api/main.py index 4204c04..0f0b136 100755 --- a/src/api/main.py +++ b/src/api/main.py @@ -4,6 +4,8 @@ import psycopg2 import traceback import action.saveArtist +import action.getAverageFollowersPerGenres +import action.getTracksPerYearForGenre import config app = Flask(__name__) @@ -34,6 +36,19 @@ def saveArtist(): data = request.get_json() return action.saveArtist.execute(conn, data) +@app.route('/getAverageFollowersPerGenres', methods=['GET']) +@error_handler +def getAverageFollowersPerGenres(): + if request.method == 'GET': + return action.getAverageFollowersPerGenres.execute(conn, None) + +@app.route('/getTracksPerYearForGenre', methods=['GET']) +@error_handler +def getTracksPerYearForGenre(): + if request.method == 'GET': + genre = request.args.get('genre') + return action.getTracksPerYearForGenre.execute(conn, genre) + if __name__ == '__main__': app.run(debug = True) diff --git a/src/api/requirements.txt b/src/api/requirements.txt new file mode 100644 index 0000000..46a94f6 --- /dev/null +++ b/src/api/requirements.txt @@ -0,0 +1,3 @@ +Werkzeug==2.2.2 +Flask==2.2.2 +psycopg2==2.9.5 \ No newline at end of file diff --git a/src/db/Dockerfile b/src/db/Dockerfile index bebef76..cb1c048 100644 --- a/src/db/Dockerfile +++ b/src/db/Dockerfile @@ -1,5 +1,3 @@ FROM postgres:16.1 -EXPOSE 5432 -VOLUME /pgdata -ENV POSTGRES_PASSWORD pgpwd \ No newline at end of file +COPY ./init.sql /docker-entrypoint-initdb.d/init.sql diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 2e06a09..265f217 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -1,16 +1,25 @@ version: '3.8' services: db: - image: postgres:16.1 + build: db/ ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data - - ./db/init.sql:/docker-entrypoint-initdb.d/init.sql environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=user - POSTGRES_DB=spotistats + api: + build: api/ + ports: + - "5000:5000" + environment: + - DB_HOST=192.168.191.64 + - DB_PORT=5432 + - DB_NAME=spotistats + - DB_USER=user + - DB_PASS=user volumes: pgdata: driver: local \ No newline at end of file From 5dedaac9ced253205a88dd2c49d3f1ee649587a4 Mon Sep 17 00:00:00 2001 From: Mephody Date: Thu, 23 Nov 2023 22:34:45 +0300 Subject: [PATCH 05/19] Add flags for python optimization --- src/api/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/api/Dockerfile b/src/api/Dockerfile index ce6e548..57cb7e3 100644 --- a/src/api/Dockerfile +++ b/src/api/Dockerfile @@ -1,5 +1,8 @@ FROM python:3.12.0-bookworm +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + COPY ./requirements.txt /app/requirements.txt WORKDIR /app From 9e1f6b8e4383940a2b41978d9d0c24511636fd44 Mon Sep 17 00:00:00 2001 From: Mephody Date: Fri, 24 Nov 2023 01:34:42 +0300 Subject: [PATCH 06/19] Fix CORS --- src/api/main.py | 2 ++ src/api/requirements.txt | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/api/main.py b/src/api/main.py index 0f0b136..6401cad 100755 --- a/src/api/main.py +++ b/src/api/main.py @@ -1,6 +1,7 @@ #!/bin/env python3 from flask import Flask, request +from flask_cors import CORS import psycopg2 import traceback import action.saveArtist @@ -9,6 +10,7 @@ import config app = Flask(__name__) +cors = CORS(app) conn = psycopg2.connect( host = config.DB_HOST, diff --git a/src/api/requirements.txt b/src/api/requirements.txt index 46a94f6..ba46ecc 100644 --- a/src/api/requirements.txt +++ b/src/api/requirements.txt @@ -1,3 +1,4 @@ Werkzeug==2.2.2 Flask==2.2.2 -psycopg2==2.9.5 \ No newline at end of file +psycopg2==2.9.5 +flask_cors==3.0.10 \ No newline at end of file From dd7738b86b80c35c1c32d66a25a489a6ab1e2393 Mon Sep 17 00:00:00 2001 From: Neveles Date: Fri, 24 Nov 2023 03:47:53 +0300 Subject: [PATCH 07/19] Implement web side --- .gitignore | 145 +- package-lock.json | 3812 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 30 +- src/web/index.html | 20 + src/web/script.js | 61 + 5 files changed, 4052 insertions(+), 16 deletions(-) create mode 100644 package-lock.json create mode 100644 src/web/index.html create mode 100644 src/web/script.js diff --git a/.gitignore b/.gitignore index 43d7f6b..c917843 100644 --- a/.gitignore +++ b/.gitignore @@ -289,4 +289,147 @@ sketch ### VisualStudioCode Patch ### # Ignore all local history of files .history -.ionide \ No newline at end of file +.ionide + + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +variables.js \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f599ece --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3812 @@ +{ + "name": "spoti-stats", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "spoti-stats", + "version": "1.0.0", + "dependencies": { + "chart.js": "^4.0.0" + }, + "devDependencies": { + "express": "^4.17.1", + "parcel": "^2.6.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", + "license": "MIT" + }, + "node_modules/@lezer/common": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.1.1.tgz", + "integrity": "sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lezer/lr": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", + "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", + "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@mischnic/json-sourcemap": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", + "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0", + "@lezer/lr": "^1.0.0", + "json5": "^2.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz", + "integrity": "sha512-gsWNDCklNy7Ajk0vBBf9jEx04RUxuDQfBse918Ww+Qb9HCPoGzS+XJTLe96iN3BVK7grnLiYghP/M4L8VsaHeA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@parcel/bundler-default": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.10.3.tgz", + "integrity": "sha512-a+yq8zH8mrg6FBgUjrC+r3z6cfK7dQVMNzduEU/LF52Z4FVAmTR8gefl/YGmAbquJL3PFAHdhICrljYnQ1WQkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/graph": "3.0.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/cache": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.10.3.tgz", + "integrity": "sha512-fNNOFOl4dwOlzP8iAa+evZ+3BakX0sV+3+PiYA0zaps7EmPmkTSGDhCWzaYRSO8fhmNDlrUX9Xh7b/X738LFqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/fs": "2.10.3", + "@parcel/logger": "2.10.3", + "@parcel/utils": "2.10.3", + "lmdb": "2.8.5" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.10.3.tgz", + "integrity": "sha512-70ovUzeXBowDMjK+1xaLT4hm3jZUK7EbaCS6tN1cmmr0S1TDhU7g37jnpni+u9de9Lc/lErwTaDVXUf9WSQzQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.10.3.tgz", + "integrity": "sha512-5SUZ80uwu7o0D+0RjhjBnSUXJRgaayfqVQtBRP3U7/W/Bb1Ixm1yDGXtDlyCbzimWqWVMMJ4/eVCEW7I8Ln4Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.10.3.tgz", + "integrity": "sha512-gHVw5cKZVA9h/J4E33qQLg3QG3cYMyWVruyVzF8dFy/Rar5ebXMof1f38IhR2BIavpoThbnCnxgD4SVK8xOPag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/bundler-default": "2.10.3", + "@parcel/compressor-raw": "2.10.3", + "@parcel/namer-default": "2.10.3", + "@parcel/optimizer-css": "2.10.3", + "@parcel/optimizer-htmlnano": "2.10.3", + "@parcel/optimizer-image": "2.10.3", + "@parcel/optimizer-svgo": "2.10.3", + "@parcel/optimizer-swc": "2.10.3", + "@parcel/packager-css": "2.10.3", + "@parcel/packager-html": "2.10.3", + "@parcel/packager-js": "2.10.3", + "@parcel/packager-raw": "2.10.3", + "@parcel/packager-svg": "2.10.3", + "@parcel/packager-wasm": "2.10.3", + "@parcel/reporter-dev-server": "2.10.3", + "@parcel/resolver-default": "2.10.3", + "@parcel/runtime-browser-hmr": "2.10.3", + "@parcel/runtime-js": "2.10.3", + "@parcel/runtime-react-refresh": "2.10.3", + "@parcel/runtime-service-worker": "2.10.3", + "@parcel/transformer-babel": "2.10.3", + "@parcel/transformer-css": "2.10.3", + "@parcel/transformer-html": "2.10.3", + "@parcel/transformer-image": "2.10.3", + "@parcel/transformer-js": "2.10.3", + "@parcel/transformer-json": "2.10.3", + "@parcel/transformer-postcss": "2.10.3", + "@parcel/transformer-posthtml": "2.10.3", + "@parcel/transformer-raw": "2.10.3", + "@parcel/transformer-react-refresh-wrap": "2.10.3", + "@parcel/transformer-svg": "2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/core": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.10.3.tgz", + "integrity": "sha512-b64FdqJi4CX6iWeLZNfmwdTrC1VLPXHMuFusf1sTZTuRBFw2oRpgJvuiqsrInaZ82o3lbLMo4a9/5LtNaZKa+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.10.3", + "@parcel/diagnostic": "2.10.3", + "@parcel/events": "2.10.3", + "@parcel/fs": "2.10.3", + "@parcel/graph": "3.0.3", + "@parcel/logger": "2.10.3", + "@parcel/package-manager": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/profiler": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "@parcel/workers": "2.10.3", + "abortcontroller-polyfill": "^1.1.9", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "json5": "^2.2.0", + "msgpackr": "^1.9.9", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.10.3.tgz", + "integrity": "sha512-Hf3xG9UVkDABDXWi89TjEP5U1CLUUj81kx/QFeupBXnzt5GEQZBhkxdBq6+4w17Mmuvk7H5uumNsSptkWq9PCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.10.3.tgz", + "integrity": "sha512-I3FsZYmKzgvo1f6frUWdF7hWwpeWTshPrFqpn9ICDXs/1Hjlf32jNXLBqon9b9XUDfMw4nSRMFMzMLJpbdheGA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/fs": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.10.3.tgz", + "integrity": "sha512-0w4+Lc7B5VpwqX4GQfjnI5qN7tc9qbGPSPsf/6U2YPWU4dkGsMfPEmLBx7dZvJy3UiGxpsjMMuRHa14+jJ5QrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/rust": "2.10.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/graph": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.0.3.tgz", + "integrity": "sha512-zUA8KsjR2+v2Q2bFBF7zBk33ejriDiRA/+LK5QE8LrFpkaDa+gjkx76h2x7JqGXIDHNos446KX4nz2OUCVwrNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.10.3.tgz", + "integrity": "sha512-mAVTA0NgbbwEUzkzjBqjqyBBax+8bscRaZIAsEqMiSFWGcUmRgwVlH/jy3QDkFc7OHzwvdPK+XlMLV7s/3DJNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/events": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.10.3.tgz", + "integrity": "sha512-uzN1AJmp1oYh/ZLdD9WA7xP5u/L3Bs/6AFZz5s695zus74RCx9OtQcF0Yyl1hbKVJDfuw9WFuzMfPL/9p/C5DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.10.3.tgz", + "integrity": "sha512-s7kgB/x7TISIHhen9IK4+CBXgmRJYahVS+oiAbMm18vcUVuXeZDBeTedOco6zUQIKuB71vx/4DBIuiIp6Q9hpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/node-resolver-core": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.1.3.tgz", + "integrity": "sha512-o7XK1KiK3ymO39bhc5qfDQiZpKA1xQmKg0TEPDNiLIXHKLEBheqarhw3Nwwt9MOFibfwsisQtDTIS+2v9A640A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.10.3", + "@parcel/fs": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.10.3.tgz", + "integrity": "sha512-Pc8jwV3U9w5DJDNcRQML5FlKdpPGnuCTtk1P+9FfyEUjdxoVxC+YeMIQcE961clAgl47qh7eNObXtsX/lb04Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.10.3.tgz", + "integrity": "sha512-KTIZOy19tYeG0j3JRv435A6jnTh3O1LPhsUfo6Xlea7Cz1yUUxAANl9MG8lHZKYbZCFFKbfk2I9QBycmcYxAAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/@parcel/optimizer-htmlnano/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.10.3.tgz", + "integrity": "sha512-hbeI6+GoddJxib8MlK5iafbCm1oy3p0UL9bb8s5mjTZiHtj1PORlH8gP7mT1WlYOCgoy45QdHelcrmL9fJ8kBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/utils": "2.10.3", + "@parcel/workers": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/optimizer-svgo": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.10.3.tgz", + "integrity": "sha512-STN7sdjz6wGnQnvy22SkQaLi5C1E+j7J0xy96T0/mCP9KoIsBDE7panCtf53p4sWCNRsXNVrXt5KrpCC+u0LHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "svgo": "^2.4.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@parcel/optimizer-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/@parcel/optimizer-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.10.3.tgz", + "integrity": "sha512-Cxy05CysiKbv/PtX++ETje4cbhCJySmN6EmFyQBs0jvzsUdWwqnsttavYRoMviUUK9mjm/i5q+cyewBO/8Oc5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "@swc/core": "^1.3.36", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.10.3.tgz", + "integrity": "sha512-KqOW5oUmElrcb7d+hOC68ja1PI2qbPZTwdduduRvB90DAweMt7r1046+W2Df5bd+p9iv72DxGEn9xomX+qz9MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/fs": "2.10.3", + "@parcel/logger": "2.10.3", + "@parcel/node-resolver-core": "3.1.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "@parcel/workers": "2.10.3", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.10.3.tgz", + "integrity": "sha512-Jk165fFU2XyWjN7agKy+YvvRoOJbWIb57VlVDgBHanB5ptS7aCildambrljGNTivatr+zFrchE5ZDNUFXZhYnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.10.3.tgz", + "integrity": "sha512-bEI6FhBvERuoqyi/h681qGImTRBUnqNW4sKoFO67q/bxWLevXtEGMFOeqridiVOjYQH9s1kKwM/ln/UwKVazZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.10.3.tgz", + "integrity": "sha512-SjLSDw0juC7bEk/0geUtSVXaZqm2SgHL2IZaPnkoBQxVqzh2MdvAxJCrS2LxiR/cuQRfvQ5bnoJA7Kk1w2VNAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.10.3.tgz", + "integrity": "sha512-d236tnP2ViOnUJR0+qG6EHw7MUWSA14fLKnYYzL5SRQ4BVo5XC+CM9HKN5O4YCCVu3+9Su2X1+RESo5sxbFq7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.10.3.tgz", + "integrity": "sha512-Rk/GokkNs9uLwiy6Ux/xXpD8nMVhA9LN9eIbVqi8+eR42xUmICmEoUoSm+CnekkXxY2a5e3mKpL7JZbT9vOEhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "posthtml": "^0.16.4" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.10.3.tgz", + "integrity": "sha512-j6VmU84LKy+XRHgZQFoASG98P50a9tkeT3LYRrol3RGGQrvx7PT3/D6rOqbnQjR2iGnaHzYoAlgg9jIMmWXYiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3" + }, + "engines": { + "node": ">=12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.10.3.tgz", + "integrity": "sha512-FgsfGKSdtSV1EcO2NWFCZaY14W0PnEEF8vZaRCTML3vKfUbilYs/biaqf5geFOu4DwRuCC8unOTqFy7dLwcK/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/types": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/profiler": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.10.3.tgz", + "integrity": "sha512-yikaM6/vsvjDCcBHAXTKmDsWUF3UvC0lMG8RpnuVSN+R40MGH1vyrR4vNnqhkiCcs0RkVXm7bpuz3cDJLNLYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/events": "2.10.3", + "chrome-trace-event": "^1.0.2" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.10.3.tgz", + "integrity": "sha512-p5xQTPRuB1K3eI3Ro90vcdxpdt0VqIgrUP/VJKtSI8I3fLLGgPBNmSZejqqLup3jFRzUttQPHYkWl/R14LHjAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "chalk": "^4.1.0", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.10.3.tgz", + "integrity": "sha512-1Kzb2TrlnOYhGwFXZYCeoO18hpVhI3pRXnN22li9ZmdpeugZ0zZJamfPV8Duj4sBvBoSajbZhiPAe/6tQgWDSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-tracer": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.10.3.tgz", + "integrity": "sha512-53T9VPJvCi4Co0iTmNN+nqFD+Fkt3QFW8CPXBVlmlQzOtufVjDb01VsE1NPD8/J7O0jd548HJX/s5uqT0380jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "chrome-trace-event": "^1.0.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.10.3.tgz", + "integrity": "sha512-TQc1LwpvEKyF3CnU9ifHOKV2usFLVYmMAVAkxyKKGTbnJGEqBDQ0ITqTapA6bJLvZ6d2eUT7guqd4nrBEjeZpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/node-resolver-core": "3.1.3", + "@parcel/plugin": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.10.3.tgz", + "integrity": "sha512-+6+mlJiLL3aNVIEyXMUPbPSgljYgnbl9JNMbEXikDQpGGiXTZ7gNNKsqwYeYzgQBYwgqRfR2ir6Bznc2R7dvxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-js": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.10.3.tgz", + "integrity": "sha512-EMLgZzBGf5ylOT5U/N2rBK5ZZxnmEM4aJsissEAxcE/2cgE8TyhSng6p3A88vVJlO/unHcwRuFGlxKCueugGsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-react-refresh": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.10.3.tgz", + "integrity": "sha512-l03mni8XJq3fmeAV8UYlKJ/+u0LYRuk6ZVP0VLYLwgK4O0mlRuxwaZWYUeB8r/kTsEjB3gF/9AAtUZdAC7Swow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "react-error-overlay": "6.0.9", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-service-worker": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.10.3.tgz", + "integrity": "sha512-NjhS80t+O5iBgKXIQ+i07ZEh/VW8XHzanwTHmznJXEoIjLoBpELZ9r6bV/eUD3mYgM1vmW9Aijdu5xtsd0JW6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.10.3.tgz", + "integrity": "sha512-s1dD1QI/6JkWLICsFh8/iUvO7W1aj/avx+2mCSzuwEIsMywexpBf56qhVYMa3D9D50hS1h5FMk9RrSnSiPf8WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.10.3.tgz", + "integrity": "sha512-SDTyDZX3WTkX7WS5Dg5cBLjWtIkUeeHezIjeOI4cw40tBjj5bXRR2TBfPsqwOnpTHr5jhNSicD6DN+XfTI2MMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-css": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.10.3.tgz", + "integrity": "sha512-qlPYcwVgbqFHrec6CKcTQ4hY7EkjvH40Wyqf0xjAyIoIuOPmrpSUOp+VKjeRdbyFwH/4GBjrDZMBvCUsgeM2GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "browserslist": "^4.6.6", + "lightningcss": "^1.16.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-html": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.10.3.tgz", + "integrity": "sha512-u0uklWpliEcPADtBlboxhxBvlGrP0yPRZk/A2iL0VhfAi9ONFEuJkEoesispNhAg3KiojEh0Ddzu7bYp9U0yww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2", + "srcset": "4" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.10.3.tgz", + "integrity": "sha512-At7D7eMauE+/EnlXiDfNSap2te11L0TIW55SC9iTRTI/CqesWfT96ZB/LcH3HXckYy/GJi0xyTjYxC/YjUqDog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "@parcel/workers": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.10.3.tgz", + "integrity": "sha512-9pGqrCSLlipXvL7hOrLsaW5Pq4bjFBOTiZ5k5kizk1qeuHKMIHxySGdy0E35eSsJ6JzXP0lTXPywMPysSI6owQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.10.3", + "@parcel/workers": "2.10.3", + "@swc/helpers": "^0.5.0", + "browserslist": "^4.6.6", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.13.7", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@parcel/transformer-js/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@parcel/transformer-json": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.10.3.tgz", + "integrity": "sha512-cPhiQNgrX92VEATuxf3GCPQnlfnZW1iCsOHMT1CzgmofE7tVlW1hOOokWw21/8spG44Zax0SrRW0udi9TdmpQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "json5": "^2.2.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-postcss": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.10.3.tgz", + "integrity": "sha512-SpTZQdGQ3aVvl6+3tLlw/txUyzZSsv8t+hcfc9PM0n1rd4mfjWxVKmgNC1Y3nFoSubLMp+03GbMq16ym8t89WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/utils": "2.10.3", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-posthtml": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.10.3.tgz", + "integrity": "sha512-k6pz0H/W1k+i9uDNXjum7XkaFYKvSSrgEsmhoh7OriXPrLunboIzMBXFQcQSCyxCpw/kLuKFBLP38mQnYC5BbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-raw": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.10.3.tgz", + "integrity": "sha512-r//P2Hg14m/vJK/XJyq0cmcS4RTRy4bPSL4c0FxbEdDRrSm0Hcd1gdfgl0HeqSQQfcz0Xu4nCM5zAhg6FUpiXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.10.3.tgz", + "integrity": "sha512-Sc6ExGQy/YhNYFxRgEyi4SikYmV3wbATYo/VzqUjvZ4vE9YXM0sC5CyJhcoWVHmMPhm5eowOwFA6UrTsgHd2+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/plugin": "2.10.3", + "@parcel/utils": "2.10.3", + "react-refresh": "^0.9.0" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.10.3.tgz", + "integrity": "sha512-fjkTdPB8y467I/yHPEaNxNxoGtRIgEqNjVkBhtE/ibhF/YfqIEpDlJyI7G5G71pt2peLMLXZnJowzHqeoEUHOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/plugin": "2.10.3", + "@parcel/rust": "2.10.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.10.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 12.0.0", + "parcel": "^2.10.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/types": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.10.3.tgz", + "integrity": "sha512-4ISgDKcbJsR7NKj2jquPUPQWc/b2x6zHb/jZVdHVzMQxJp98DX+cvQR137iOTXUAFtwkKVjFcHWfejwGdGf9bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/cache": "2.10.3", + "@parcel/diagnostic": "2.10.3", + "@parcel/fs": "2.10.3", + "@parcel/package-manager": "2.10.3", + "@parcel/source-map": "^2.1.1", + "@parcel/workers": "2.10.3", + "utility-types": "^3.10.0" + } + }, + "node_modules/@parcel/utils": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.10.3.tgz", + "integrity": "sha512-l9pEQgq+D57t42m2sJkdU08Dpp0HVzDEwVrp/by/l37ZkYPJ2Me3oXtsJhvA+hej2kO8+FuKPm64FaUVaA2g+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/codeframe": "2.10.3", + "@parcel/diagnostic": "2.10.3", + "@parcel/logger": "2.10.3", + "@parcel/markdown-ansi": "2.10.3", + "@parcel/rust": "2.10.3", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", + "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.3.0", + "@parcel/watcher-darwin-arm64": "2.3.0", + "@parcel/watcher-darwin-x64": "2.3.0", + "@parcel/watcher-freebsd-x64": "2.3.0", + "@parcel/watcher-linux-arm-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-glibc": "2.3.0", + "@parcel/watcher-linux-arm64-musl": "2.3.0", + "@parcel/watcher-linux-x64-glibc": "2.3.0", + "@parcel/watcher-linux-x64-musl": "2.3.0", + "@parcel/watcher-win32-arm64": "2.3.0", + "@parcel/watcher-win32-ia32": "2.3.0", + "@parcel/watcher-win32-x64": "2.3.0" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", + "integrity": "sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.3.0.tgz", + "integrity": "sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/workers": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.10.3.tgz", + "integrity": "sha512-qlN8G3VybPHVIbD6fsZr2gmrXG2UlROUQIPW/kkAvjQ29uRfFn7YEC8CHTICt8M1HhCNkr0cMXkuXQBi0l3kAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/diagnostic": "2.10.3", + "@parcel/logger": "2.10.3", + "@parcel/profiler": "2.10.3", + "@parcel/types": "2.10.3", + "@parcel/utils": "2.10.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.10.3" + } + }, + "node_modules/@swc/core": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.99.tgz", + "integrity": "sha512-8O996RfuPC4ieb4zbYMfbyCU9k4gSOpyCNnr7qBQ+o7IEmh8JCV6B8wwu+fT/Om/6Lp34KJe1IpJ/24axKS6TQ==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.99", + "@swc/core-darwin-x64": "1.3.99", + "@swc/core-linux-arm64-gnu": "1.3.99", + "@swc/core-linux-arm64-musl": "1.3.99", + "@swc/core-linux-x64-gnu": "1.3.99", + "@swc/core-linux-x64-musl": "1.3.99", + "@swc/core-win32-arm64-msvc": "1.3.99", + "@swc/core-win32-ia32-msvc": "1.3.99", + "@swc/core-win32-x64-msvc": "1.3.99" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.99.tgz", + "integrity": "sha512-fGrXYE6DbTfGNIGQmBefYxSk3rp/1lgbD0nVg4rl4mfFRQPi7CgGhrrqSuqZ/ezXInUIgoCyvYGWFSwjLXt/Qg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.99.tgz", + "integrity": "sha512-kvgZp/mqf3IJ806gUOL6gN6VU15+DfzM1Zv4Udn8GqgXiUAvbQehrtruid4Snn5pZTLj4PEpSCBbxgxK1jbssA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", + "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/abortcontroller-polyfill": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", + "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001564", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz", + "integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chart.js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", + "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", + "license": "MIT", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": ">=7" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.592", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.592.tgz", + "integrity": "sha512-D3NOkROIlF+d5ixnz7pAf3Lu/AuWpd6AYgI9O67GQXMXTcCP1gJQRotOq35eQy5Sb4hez33XH1YdTtILA7Udww==", + "dev": true, + "license": "ISC" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/htmlnano": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz", + "integrity": "sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.0.0", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^6.0.0", + "postcss": "^8.3.11", + "purgecss": "^5.0.0", + "relateurl": "^0.2.7", + "srcset": "4.0.0", + "svgo": "^3.0.2", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", + "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.22.1", + "lightningcss-darwin-x64": "1.22.1", + "lightningcss-freebsd-x64": "1.22.1", + "lightningcss-linux-arm-gnueabihf": "1.22.1", + "lightningcss-linux-arm64-gnu": "1.22.1", + "lightningcss-linux-arm64-musl": "1.22.1", + "lightningcss-linux-x64-gnu": "1.22.1", + "lightningcss-linux-x64-musl": "1.22.1", + "lightningcss-win32-x64-msvc": "1.22.1" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", + "integrity": "sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz", + "integrity": "sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lmdb": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", + "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "msgpackr": "^1.9.5", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.1.1", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.8.5", + "@lmdb/lmdb-darwin-x64": "2.8.5", + "@lmdb/lmdb-linux-arm": "2.8.5", + "@lmdb/lmdb-linux-arm64": "2.8.5", + "@lmdb/lmdb-linux-x64": "2.8.5", + "@lmdb/lmdb-win32-x64": "2.8.5" + } + }, + "node_modules/lmdb/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lmdb/node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/msgpackr": { + "version": "1.9.9", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.9.9.tgz", + "integrity": "sha512-sbn6mioS2w0lq1O6PpGtsv6Gy8roWM+o3o4Sqjd6DudrL/nOugY+KyJUimoWzHnf9OkO0T6broHFnYE/R05t9A==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.2.tgz", + "integrity": "sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.0.7" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.2", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.2" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", + "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz", + "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ordered-binary": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.1.tgz", + "integrity": "sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg==", + "dev": true, + "license": "MIT" + }, + "node_modules/parcel": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.10.3.tgz", + "integrity": "sha512-Ocx33N4ZVnotJTALhMZ0AqPIE9UN5uP6jjA+lYJ4FlEYuYYZsvOQXZQgeMa62pFj6jrOHWh7ho8uJhRdTNwVyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@parcel/config-default": "2.10.3", + "@parcel/core": "2.10.3", + "@parcel/diagnostic": "2.10.3", + "@parcel/events": "2.10.3", + "@parcel/fs": "2.10.3", + "@parcel/logger": "2.10.3", + "@parcel/package-manager": "2.10.3", + "@parcel/reporter-cli": "2.10.3", + "@parcel/reporter-dev-server": "2.10.3", + "@parcel/reporter-tracer": "2.10.3", + "@parcel/utils": "2.10.3", + "chalk": "^4.1.0", + "commander": "^7.0.0", + "get-port": "^4.2.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", + "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true, + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", + "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/svgo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.0.4.tgz", + "integrity": "sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.2.1", + "css-what": "^6.1.0", + "csso": "5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index 53c5b11..eb53a22 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,16 @@ { - "name": "spoti-stats", - "version": "1.0.0", - "description": "Spotify analytics and data visualization service", - "scripts": { - "dev": "parcel src/index.html", - "build": "parcel build src/index.html" - }, - "devDependencies": { - "parcel": "^2.6.2", - "express": "^4.17.1" - }, - "dependencies": { - "chart.js": "^4.0.0" - } -} + "name": "spoti-stats", + "version": "1.0.0", + "description": "Spotify analytics and data visualization service", + "scripts": { + "dev": "parcel src/web/index.html", + "build": "parcel build src/web/index.html" + }, + "devDependencies": { + "parcel": "^2.6.2", + "express": "^4.17.1" + }, + "dependencies": { + "chart.js": "^4.0.0" + } +} \ No newline at end of file diff --git a/src/web/index.html b/src/web/index.html new file mode 100644 index 0000000..09341b2 --- /dev/null +++ b/src/web/index.html @@ -0,0 +1,20 @@ + + + + Spoti Stats + + +
+ + +
+
+ + + diff --git a/src/web/script.js b/src/web/script.js new file mode 100644 index 0000000..d59447f --- /dev/null +++ b/src/web/script.js @@ -0,0 +1,61 @@ +import Chart from "chart.js/auto"; +const { server_vars } = require("./variables.js"); + +let myChart; // Variable to store the Chart instance + +async function fetchData(genre) { + const response = await fetch( + `http://${server_vars.address}:${server_vars.port}/getTracksPerYearForGenre?genre=${genre}` + ); + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + return response.json(); +} + +function updateChart(selectedGenre) { + fetchData(selectedGenre) + .then((data) => { + // Destroy the existing chart if it exists + if (myChart) { + myChart.destroy(); + } + + // Create a new chart with the new data + myChart = new Chart(document.getElementById("chart"), { + type: "bar", + options: { + animation: true, + plugins: { + legend: { + display: false, + }, + tooltip: { + enabled: true, + }, + }, + }, + data: { + labels: data.map((row) => row.year), + datasets: [ + { + label: "Tracks released", + data: data.map((row) => row.count), + }, + ], + }, + }); + }) + .catch((error) => { + console.error("Error fetching data:", error.message); + }); +} + +document.getElementById("genreSelect").addEventListener("change", function () { + const selectedGenre = this.value; + updateChart(selectedGenre); +}); + +// Initial chart update +const initialGenre = document.getElementById("genreSelect").value; +updateChart(initialGenre); From 7d4cd4d78510bd8f2471b79f7a2f4322475150ba Mon Sep 17 00:00:00 2001 From: Mephody Date: Fri, 24 Nov 2023 12:15:45 +0300 Subject: [PATCH 08/19] API service depends on DB --- src/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/docker-compose.yml b/src/docker-compose.yml index 265f217..7249df6 100644 --- a/src/docker-compose.yml +++ b/src/docker-compose.yml @@ -14,6 +14,8 @@ services: build: api/ ports: - "5000:5000" + depends_on: + - db environment: - DB_HOST=192.168.191.64 - DB_PORT=5432 From 485078db90d86dfc5a58ec433f10008bbe020316 Mon Sep 17 00:00:00 2001 From: Neveles Date: Fri, 24 Nov 2023 15:34:57 +0300 Subject: [PATCH 09/19] Restructure and dockerize web --- .gitignore | 2 - package.json | 16 - src/web/.dockerignore | 3 + src/web/Dockerfile | 21 + .../web/package-lock.json | 892 +++++++++++++----- src/web/package.json | 16 + src/web/variables.js | 6 + 7 files changed, 697 insertions(+), 259 deletions(-) delete mode 100644 package.json create mode 100644 src/web/.dockerignore create mode 100644 src/web/Dockerfile rename package-lock.json => src/web/package-lock.json (87%) create mode 100644 src/web/package.json create mode 100644 src/web/variables.js diff --git a/.gitignore b/.gitignore index c917843..3bbe290 100644 --- a/.gitignore +++ b/.gitignore @@ -431,5 +431,3 @@ dist # SvelteKit build / generate output .svelte-kit - -variables.js \ No newline at end of file diff --git a/package.json b/package.json deleted file mode 100644 index eb53a22..0000000 --- a/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "spoti-stats", - "version": "1.0.0", - "description": "Spotify analytics and data visualization service", - "scripts": { - "dev": "parcel src/web/index.html", - "build": "parcel build src/web/index.html" - }, - "devDependencies": { - "parcel": "^2.6.2", - "express": "^4.17.1" - }, - "dependencies": { - "chart.js": "^4.0.0" - } -} \ No newline at end of file diff --git a/src/web/.dockerignore b/src/web/.dockerignore new file mode 100644 index 0000000..b0ac556 --- /dev/null +++ b/src/web/.dockerignore @@ -0,0 +1,3 @@ +**/node_modules +**/dist +**/.parcle-cache \ No newline at end of file diff --git a/src/web/Dockerfile b/src/web/Dockerfile new file mode 100644 index 0000000..b6a8ca8 --- /dev/null +++ b/src/web/Dockerfile @@ -0,0 +1,21 @@ +# Use an official Node.js image as the base image +FROM node:14 + +# Set the working directory in the container +WORKDIR /usr/src/app + +# Copy package.json and package-lock.json to the container +COPY package.json . +COPY package-lock.json . + +# Install dependencies +RUN npm install + +# Copy the rest of the application files to the container +COPY . . + +# Expose the port that your application will run on +EXPOSE 1234 + +# Command to run your application +CMD ["npm", "run", "dev"] diff --git a/package-lock.json b/src/web/package-lock.json similarity index 87% rename from package-lock.json rename to src/web/package-lock.json index f599ece..2a01a9e 100644 --- a/package-lock.json +++ b/src/web/package-lock.json @@ -20,7 +20,6 @@ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dev": true, - "license": "MIT", "dependencies": { "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" @@ -34,7 +33,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -47,7 +45,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -62,7 +59,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -71,15 +67,13 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@babel/code-frame/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -89,7 +83,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -102,7 +95,6 @@ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -112,7 +104,6 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.22.20", "chalk": "^2.4.2", @@ -127,7 +118,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^1.9.0" }, @@ -140,7 +130,6 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -155,7 +144,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "1.1.3" } @@ -164,15 +152,13 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -182,7 +168,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^3.0.0" }, @@ -193,26 +178,75 @@ "node_modules/@kurkle/color": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==", - "license": "MIT" + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" }, "node_modules/@lezer/common": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.1.1.tgz", "integrity": "sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@lezer/lr": { "version": "1.3.14", "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.3.14.tgz", "integrity": "sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==", "dev": true, - "license": "MIT", "dependencies": { "@lezer/common": "^1.0.0" } }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", + "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", + "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", + "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", + "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@lmdb/lmdb-linux-x64": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", @@ -221,18 +255,29 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", + "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@mischnic/json-sourcemap": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", "dev": true, - "license": "MIT", "dependencies": { "@lezer/common": "^1.0.0", "@lezer/lr": "^1.0.0", @@ -242,6 +287,58 @@ "node": ">=12.0.0" } }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz", + "integrity": "sha512-9bfjwDxIDWmmOKusUcqdS4Rw+SETlp9Dy39Xui9BEGEk19dDwH0jhipwFzEff/pFg95NKymc6TOTbRKcWeRqyQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.2.tgz", + "integrity": "sha512-lwriRAHm1Yg4iDf23Oxm9n/t5Zpw1lVnxYU3HnJPTi2lJRkKTrps1KVgvL6m7WvmhYVt/FIsssWay+k45QHeuw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.2.tgz", + "integrity": "sha512-MOI9Dlfrpi2Cuc7i5dXdxPbFIgbDBGgKR5F2yWEa6FVEtSWncfVNKW5AKjImAQ6CZlBK9tympdsZJ2xThBiWWA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.2.tgz", + "integrity": "sha512-FU20Bo66/f7He9Fp9sP2zaJ1Q8L9uLPZQDub/WlUip78JlPeMbVL8546HbZfcW9LNciEXc8d+tThSJjSC+tmsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.2.tgz", @@ -250,18 +347,29 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.2.tgz", + "integrity": "sha512-O+6Gs8UeDbyFpbSh2CPEz/UOrrdWPTBYNblZK5CxxLisYt4kGX3Sc+czffFonyjiGSq3jWLwJS/CCJc7tBr4sQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@parcel/bundler-default": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.10.3.tgz", "integrity": "sha512-a+yq8zH8mrg6FBgUjrC+r3z6cfK7dQVMNzduEU/LF52Z4FVAmTR8gefl/YGmAbquJL3PFAHdhICrljYnQ1WQkg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/graph": "3.0.3", @@ -284,7 +392,6 @@ "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.10.3.tgz", "integrity": "sha512-fNNOFOl4dwOlzP8iAa+evZ+3BakX0sV+3+PiYA0zaps7EmPmkTSGDhCWzaYRSO8fhmNDlrUX9Xh7b/X738LFqA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/fs": "2.10.3", "@parcel/logger": "2.10.3", @@ -307,7 +414,6 @@ "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.10.3.tgz", "integrity": "sha512-70ovUzeXBowDMjK+1xaLT4hm3jZUK7EbaCS6tN1cmmr0S1TDhU7g37jnpni+u9de9Lc/lErwTaDVXUf9WSQzQw==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0" }, @@ -324,7 +430,6 @@ "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.10.3.tgz", "integrity": "sha512-5SUZ80uwu7o0D+0RjhjBnSUXJRgaayfqVQtBRP3U7/W/Bb1Ixm1yDGXtDlyCbzimWqWVMMJ4/eVCEW7I8Ln4Bw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3" }, @@ -342,7 +447,6 @@ "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.10.3.tgz", "integrity": "sha512-gHVw5cKZVA9h/J4E33qQLg3QG3cYMyWVruyVzF8dFy/Rar5ebXMof1f38IhR2BIavpoThbnCnxgD4SVK8xOPag==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/bundler-default": "2.10.3", "@parcel/compressor-raw": "2.10.3", @@ -389,7 +493,6 @@ "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.10.3.tgz", "integrity": "sha512-b64FdqJi4CX6iWeLZNfmwdTrC1VLPXHMuFusf1sTZTuRBFw2oRpgJvuiqsrInaZ82o3lbLMo4a9/5LtNaZKa+Q==", "dev": true, - "license": "MIT", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "@parcel/cache": "2.10.3", @@ -430,7 +533,6 @@ "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.10.3.tgz", "integrity": "sha512-Hf3xG9UVkDABDXWi89TjEP5U1CLUUj81kx/QFeupBXnzt5GEQZBhkxdBq6+4w17Mmuvk7H5uumNsSptkWq9PCA==", "dev": true, - "license": "MIT", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "nullthrows": "^1.1.1" @@ -448,7 +550,6 @@ "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.10.3.tgz", "integrity": "sha512-I3FsZYmKzgvo1f6frUWdF7hWwpeWTshPrFqpn9ICDXs/1Hjlf32jNXLBqon9b9XUDfMw4nSRMFMzMLJpbdheGA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12.0.0" }, @@ -462,7 +563,6 @@ "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.10.3.tgz", "integrity": "sha512-0w4+Lc7B5VpwqX4GQfjnI5qN7tc9qbGPSPsf/6U2YPWU4dkGsMfPEmLBx7dZvJy3UiGxpsjMMuRHa14+jJ5QrQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/rust": "2.10.3", "@parcel/types": "2.10.3", @@ -486,7 +586,6 @@ "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.0.3.tgz", "integrity": "sha512-zUA8KsjR2+v2Q2bFBF7zBk33ejriDiRA/+LK5QE8LrFpkaDa+gjkx76h2x7JqGXIDHNos446KX4nz2OUCVwrNQ==", "dev": true, - "license": "MIT", "dependencies": { "nullthrows": "^1.1.1" }, @@ -503,7 +602,6 @@ "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.10.3.tgz", "integrity": "sha512-mAVTA0NgbbwEUzkzjBqjqyBBax+8bscRaZIAsEqMiSFWGcUmRgwVlH/jy3QDkFc7OHzwvdPK+XlMLV7s/3DJNw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/events": "2.10.3" @@ -521,7 +619,6 @@ "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.10.3.tgz", "integrity": "sha512-uzN1AJmp1oYh/ZLdD9WA7xP5u/L3Bs/6AFZz5s695zus74RCx9OtQcF0Yyl1hbKVJDfuw9WFuzMfPL/9p/C5DQ==", "dev": true, - "license": "MIT", "dependencies": { "chalk": "^4.1.0" }, @@ -538,7 +635,6 @@ "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.10.3.tgz", "integrity": "sha512-s7kgB/x7TISIHhen9IK4+CBXgmRJYahVS+oiAbMm18vcUVuXeZDBeTedOco6zUQIKuB71vx/4DBIuiIp6Q9hpg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -558,7 +654,6 @@ "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.1.3.tgz", "integrity": "sha512-o7XK1KiK3ymO39bhc5qfDQiZpKA1xQmKg0TEPDNiLIXHKLEBheqarhw3Nwwt9MOFibfwsisQtDTIS+2v9A640A==", "dev": true, - "license": "MIT", "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", "@parcel/diagnostic": "2.10.3", @@ -581,7 +676,6 @@ "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.10.3.tgz", "integrity": "sha512-Pc8jwV3U9w5DJDNcRQML5FlKdpPGnuCTtk1P+9FfyEUjdxoVxC+YeMIQcE961clAgl47qh7eNObXtsX/lb04Dg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -605,7 +699,6 @@ "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.10.3.tgz", "integrity": "sha512-KTIZOy19tYeG0j3JRv435A6jnTh3O1LPhsUfo6Xlea7Cz1yUUxAANl9MG8lHZKYbZCFFKbfk2I9QBycmcYxAAw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "htmlnano": "^2.0.0", @@ -695,7 +788,6 @@ "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.10.3.tgz", "integrity": "sha512-hbeI6+GoddJxib8MlK5iafbCm1oy3p0UL9bb8s5mjTZiHtj1PORlH8gP7mT1WlYOCgoy45QdHelcrmL9fJ8kBA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -720,7 +812,6 @@ "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.10.3.tgz", "integrity": "sha512-STN7sdjz6wGnQnvy22SkQaLi5C1E+j7J0xy96T0/mCP9KoIsBDE7panCtf53p4sWCNRsXNVrXt5KrpCC+u0LHg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -809,7 +900,6 @@ "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.10.3.tgz", "integrity": "sha512-Cxy05CysiKbv/PtX++ETje4cbhCJySmN6EmFyQBs0jvzsUdWwqnsttavYRoMviUUK9mjm/i5q+cyewBO/8Oc5g==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -832,7 +922,6 @@ "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.10.3.tgz", "integrity": "sha512-KqOW5oUmElrcb7d+hOC68ja1PI2qbPZTwdduduRvB90DAweMt7r1046+W2Df5bd+p9iv72DxGEn9xomX+qz9MA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/fs": "2.10.3", @@ -859,7 +948,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.10.3.tgz", "integrity": "sha512-Jk165fFU2XyWjN7agKy+YvvRoOJbWIb57VlVDgBHanB5ptS7aCildambrljGNTivatr+zFrchE5ZDNUFXZhYnw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -881,7 +969,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.10.3.tgz", "integrity": "sha512-bEI6FhBvERuoqyi/h681qGImTRBUnqNW4sKoFO67q/bxWLevXtEGMFOeqridiVOjYQH9s1kKwM/ln/UwKVazZw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/types": "2.10.3", @@ -903,7 +990,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.10.3.tgz", "integrity": "sha512-SjLSDw0juC7bEk/0geUtSVXaZqm2SgHL2IZaPnkoBQxVqzh2MdvAxJCrS2LxiR/cuQRfvQ5bnoJA7Kk1w2VNAg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -928,7 +1014,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.10.3.tgz", "integrity": "sha512-d236tnP2ViOnUJR0+qG6EHw7MUWSA14fLKnYYzL5SRQ4BVo5XC+CM9HKN5O4YCCVu3+9Su2X1+RESo5sxbFq7w==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3" }, @@ -946,7 +1031,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.10.3.tgz", "integrity": "sha512-Rk/GokkNs9uLwiy6Ux/xXpD8nMVhA9LN9eIbVqi8+eR42xUmICmEoUoSm+CnekkXxY2a5e3mKpL7JZbT9vOEhA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/types": "2.10.3", @@ -967,7 +1051,6 @@ "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.10.3.tgz", "integrity": "sha512-j6VmU84LKy+XRHgZQFoASG98P50a9tkeT3LYRrol3RGGQrvx7PT3/D6rOqbnQjR2iGnaHzYoAlgg9jIMmWXYiA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3" }, @@ -985,7 +1068,6 @@ "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.10.3.tgz", "integrity": "sha512-FgsfGKSdtSV1EcO2NWFCZaY14W0PnEEF8vZaRCTML3vKfUbilYs/biaqf5geFOu4DwRuCC8unOTqFy7dLwcK/A==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/types": "2.10.3" }, @@ -1002,7 +1084,6 @@ "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.10.3.tgz", "integrity": "sha512-yikaM6/vsvjDCcBHAXTKmDsWUF3UvC0lMG8RpnuVSN+R40MGH1vyrR4vNnqhkiCcs0RkVXm7bpuz3cDJLNLYSQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/events": "2.10.3", @@ -1021,7 +1102,6 @@ "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.10.3.tgz", "integrity": "sha512-p5xQTPRuB1K3eI3Ro90vcdxpdt0VqIgrUP/VJKtSI8I3fLLGgPBNmSZejqqLup3jFRzUttQPHYkWl/R14LHjAQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/types": "2.10.3", @@ -1043,7 +1123,6 @@ "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.10.3.tgz", "integrity": "sha512-1Kzb2TrlnOYhGwFXZYCeoO18hpVhI3pRXnN22li9ZmdpeugZ0zZJamfPV8Duj4sBvBoSajbZhiPAe/6tQgWDSA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3" @@ -1062,7 +1141,6 @@ "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.10.3.tgz", "integrity": "sha512-53T9VPJvCi4Co0iTmNN+nqFD+Fkt3QFW8CPXBVlmlQzOtufVjDb01VsE1NPD8/J7O0jd548HJX/s5uqT0380jg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1083,7 +1161,6 @@ "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.10.3.tgz", "integrity": "sha512-TQc1LwpvEKyF3CnU9ifHOKV2usFLVYmMAVAkxyKKGTbnJGEqBDQ0ITqTapA6bJLvZ6d2eUT7guqd4nrBEjeZpw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/node-resolver-core": "3.1.3", "@parcel/plugin": "2.10.3" @@ -1102,7 +1179,6 @@ "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.10.3.tgz", "integrity": "sha512-+6+mlJiLL3aNVIEyXMUPbPSgljYgnbl9JNMbEXikDQpGGiXTZ7gNNKsqwYeYzgQBYwgqRfR2ir6Bznc2R7dvxg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3" @@ -1121,7 +1197,6 @@ "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.10.3.tgz", "integrity": "sha512-EMLgZzBGf5ylOT5U/N2rBK5ZZxnmEM4aJsissEAxcE/2cgE8TyhSng6p3A88vVJlO/unHcwRuFGlxKCueugGsQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1142,7 +1217,6 @@ "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.10.3.tgz", "integrity": "sha512-l03mni8XJq3fmeAV8UYlKJ/+u0LYRuk6ZVP0VLYLwgK4O0mlRuxwaZWYUeB8r/kTsEjB3gF/9AAtUZdAC7Swow==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1163,7 +1237,6 @@ "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.10.3.tgz", "integrity": "sha512-NjhS80t+O5iBgKXIQ+i07ZEh/VW8XHzanwTHmznJXEoIjLoBpELZ9r6bV/eUD3mYgM1vmW9Aijdu5xtsd0JW6A==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1183,7 +1256,6 @@ "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.10.3.tgz", "integrity": "sha512-s1dD1QI/6JkWLICsFh8/iUvO7W1aj/avx+2mCSzuwEIsMywexpBf56qhVYMa3D9D50hS1h5FMk9RrSnSiPf8WA==", "dev": true, - "license": "MIT", "engines": { "node": ">= 12.0.0" }, @@ -1197,7 +1269,6 @@ "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", "dev": true, - "license": "MIT", "dependencies": { "detect-libc": "^1.0.3" }, @@ -1210,7 +1281,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.10.3.tgz", "integrity": "sha512-SDTyDZX3WTkX7WS5Dg5cBLjWtIkUeeHezIjeOI4cw40tBjj5bXRR2TBfPsqwOnpTHr5jhNSicD6DN+XfTI2MMw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1235,7 +1305,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.10.3.tgz", "integrity": "sha512-qlPYcwVgbqFHrec6CKcTQ4hY7EkjvH40Wyqf0xjAyIoIuOPmrpSUOp+VKjeRdbyFwH/4GBjrDZMBvCUsgeM2GA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1259,7 +1328,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.10.3.tgz", "integrity": "sha512-u0uklWpliEcPADtBlboxhxBvlGrP0yPRZk/A2iL0VhfAi9ONFEuJkEoesispNhAg3KiojEh0Ddzu7bYp9U0yww==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1285,7 +1353,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.10.3.tgz", "integrity": "sha512-At7D7eMauE+/EnlXiDfNSap2te11L0TIW55SC9iTRTI/CqesWfT96ZB/LcH3HXckYy/GJi0xyTjYxC/YjUqDog==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1305,7 +1372,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.10.3.tgz", "integrity": "sha512-9pGqrCSLlipXvL7hOrLsaW5Pq4bjFBOTiZ5k5kizk1qeuHKMIHxySGdy0E35eSsJ6JzXP0lTXPywMPysSI6owQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1331,19 +1397,11 @@ "@parcel/core": "^2.10.3" } }, - "node_modules/@parcel/transformer-js/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true, - "license": "MIT" - }, "node_modules/@parcel/transformer-json": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.10.3.tgz", "integrity": "sha512-cPhiQNgrX92VEATuxf3GCPQnlfnZW1iCsOHMT1CzgmofE7tVlW1hOOokWw21/8spG44Zax0SrRW0udi9TdmpQA==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "json5": "^2.2.0" @@ -1362,7 +1420,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.10.3.tgz", "integrity": "sha512-SpTZQdGQ3aVvl6+3tLlw/txUyzZSsv8t+hcfc9PM0n1rd4mfjWxVKmgNC1Y3nFoSubLMp+03GbMq16ym8t89WQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1387,7 +1444,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.10.3.tgz", "integrity": "sha512-k6pz0H/W1k+i9uDNXjum7XkaFYKvSSrgEsmhoh7OriXPrLunboIzMBXFQcQSCyxCpw/kLuKFBLP38mQnYC5BbQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1411,7 +1467,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.10.3.tgz", "integrity": "sha512-r//P2Hg14m/vJK/XJyq0cmcS4RTRy4bPSL4c0FxbEdDRrSm0Hcd1gdfgl0HeqSQQfcz0Xu4nCM5zAhg6FUpiXQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3" }, @@ -1429,7 +1484,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.10.3.tgz", "integrity": "sha512-Sc6ExGQy/YhNYFxRgEyi4SikYmV3wbATYo/VzqUjvZ4vE9YXM0sC5CyJhcoWVHmMPhm5eowOwFA6UrTsgHd2+g==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/plugin": "2.10.3", "@parcel/utils": "2.10.3", @@ -1449,7 +1503,6 @@ "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.10.3.tgz", "integrity": "sha512-fjkTdPB8y467I/yHPEaNxNxoGtRIgEqNjVkBhtE/ibhF/YfqIEpDlJyI7G5G71pt2peLMLXZnJowzHqeoEUHOQ==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/plugin": "2.10.3", @@ -1474,7 +1527,6 @@ "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.10.3.tgz", "integrity": "sha512-4ISgDKcbJsR7NKj2jquPUPQWc/b2x6zHb/jZVdHVzMQxJp98DX+cvQR137iOTXUAFtwkKVjFcHWfejwGdGf9bw==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/cache": "2.10.3", "@parcel/diagnostic": "2.10.3", @@ -1490,7 +1542,6 @@ "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.10.3.tgz", "integrity": "sha512-l9pEQgq+D57t42m2sJkdU08Dpp0HVzDEwVrp/by/l37ZkYPJ2Me3oXtsJhvA+hej2kO8+FuKPm64FaUVaA2g+w==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/codeframe": "2.10.3", "@parcel/diagnostic": "2.10.3", @@ -1514,7 +1565,7 @@ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.3.0.tgz", "integrity": "sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==", "dev": true, - "license": "MIT", + "hasInstallScript": true, "dependencies": { "detect-libc": "^1.0.3", "is-glob": "^4.0.3", @@ -1543,6 +1594,146 @@ "@parcel/watcher-win32-x64": "2.3.0" } }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.3.0.tgz", + "integrity": "sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.3.0.tgz", + "integrity": "sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.3.0.tgz", + "integrity": "sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.3.0.tgz", + "integrity": "sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.3.0.tgz", + "integrity": "sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.3.0.tgz", + "integrity": "sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.3.0.tgz", + "integrity": "sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@parcel/watcher-linux-x64-glibc": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.3.0.tgz", @@ -1551,7 +1742,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1572,7 +1762,6 @@ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" @@ -1585,12 +1774,71 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.3.0.tgz", + "integrity": "sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.3.0.tgz", + "integrity": "sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.3.0.tgz", + "integrity": "sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@parcel/workers": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.10.3.tgz", "integrity": "sha512-qlN8G3VybPHVIbD6fsZr2gmrXG2UlROUQIPW/kkAvjQ29uRfFn7YEC8CHTICt8M1HhCNkr0cMXkuXQBi0l3kAg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/diagnostic": "2.10.3", "@parcel/logger": "2.10.3", @@ -1616,7 +1864,6 @@ "integrity": "sha512-8O996RfuPC4ieb4zbYMfbyCU9k4gSOpyCNnr7qBQ+o7IEmh8JCV6B8wwu+fT/Om/6Lp34KJe1IpJ/24axKS6TQ==", "dev": true, "hasInstallScript": true, - "license": "Apache-2.0", "dependencies": { "@swc/counter": "^0.1.1", "@swc/types": "^0.1.5" @@ -1648,6 +1895,70 @@ } } }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.99.tgz", + "integrity": "sha512-Qj7Jct68q3ZKeuJrjPx7k8SxzWN6PqLh+VFxzA+KwLDpQDPzOlKRZwkIMzuFjLhITO4RHgSnXoDk/Syz0ZeN+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.99.tgz", + "integrity": "sha512-wR7m9QVJjgiBu1PSOHy7s66uJPa45Kf9bZExXUL+JAa9OQxt5y+XVzr+n+F045VXQOwdGWplgPnWjgbUUHEVyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.99.tgz", + "integrity": "sha512-gcGv1l5t0DScEONmw5OhdVmEI/o49HCe9Ik38zzH0NtDkc+PDYaCcXU5rvfZP2qJFaAAr8cua8iJcOunOSLmnA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.99.tgz", + "integrity": "sha512-XL1/eUsTO8BiKsWq9i3iWh7H99iPO61+9HYiWVKhSavknfj4Plbn+XyajDpxsauln5o8t+BRGitymtnAWJM4UQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/core-linux-x64-gnu": { "version": "1.3.99", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.99.tgz", @@ -1656,7 +1967,6 @@ "x64" ], "dev": true, - "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1673,7 +1983,6 @@ "x64" ], "dev": true, - "license": "Apache-2.0 AND MIT", "optional": true, "os": [ "linux" @@ -1682,19 +1991,65 @@ "node": ">=10" } }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.99.tgz", + "integrity": "sha512-yt8RtZ4W/QgFF+JUemOUQAkVW58cCST7mbfKFZ1v16w3pl3NcWd9OrtppFIXpbjU1rrUX2zp2R7HZZzZ2Zk/aQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.99.tgz", + "integrity": "sha512-62p5fWnOJR/rlbmbUIpQEVRconICy5KDScWVuJg1v3GPLBrmacjphyHiJC1mp6dYvvoEWCk/77c/jcQwlXrDXw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.99", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.99.tgz", + "integrity": "sha512-PdppWhkoS45VGdMBxvClVgF1hVjqamtvYd82Gab1i4IV45OSym2KinoDCKE1b6j3LwBLOn2J9fvChGSgGfDCHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, "node_modules/@swc/counter": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@swc/helpers": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", "integrity": "sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A==", "dev": true, - "license": "Apache-2.0", "dependencies": { "tslib": "^2.4.0" } @@ -1703,15 +2058,13 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "license": "Apache-2.0" + "dev": true }, "node_modules/@trysound/sax": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, - "license": "ISC", "engines": { "node": ">=10.13.0" } @@ -1720,8 +2073,7 @@ "version": "1.7.5", "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz", "integrity": "sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/accepts": { "version": "1.3.8", @@ -1741,7 +2093,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1756,8 +2107,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" + "dev": true }, "node_modules/array-flatten": { "version": "1.1.1", @@ -1770,7 +2120,6 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", "dev": true, - "license": "MIT", "dependencies": { "safe-buffer": "^5.0.1" } @@ -1810,7 +2159,6 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -1837,7 +2185,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001541", "electron-to-chromium": "^1.4.535", @@ -1879,7 +2226,6 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -1902,15 +2248,13 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ], - "license": "CC-BY-4.0" + ] }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1926,7 +2270,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", - "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -1939,7 +2282,6 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.0" } @@ -1949,7 +2291,6 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8" } @@ -1959,7 +2300,6 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1971,15 +2311,13 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, - "license": "MIT", "engines": { "node": ">= 10" } @@ -2025,7 +2363,6 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -2241,7 +2578,6 @@ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", "dev": true, - "license": "Apache-2.0", "bin": { "detect-libc": "bin/detect-libc.js" }, @@ -2254,7 +2590,6 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -2269,7 +2604,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -2284,15 +2618,13 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ], - "license": "BSD-2-Clause" + ] }, "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -2308,7 +2640,6 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -2323,7 +2654,6 @@ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=6" } @@ -2332,8 +2662,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true, - "license": "BSD-2-Clause" + "dev": true }, "node_modules/ee-first": { "version": "1.1.1", @@ -2342,11 +2671,10 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.592", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.592.tgz", - "integrity": "sha512-D3NOkROIlF+d5ixnz7pAf3Lu/AuWpd6AYgI9O67GQXMXTcCP1gJQRotOq35eQy5Sb4hez33XH1YdTtILA7Udww==", - "dev": true, - "license": "ISC" + "version": "1.4.593", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.593.tgz", + "integrity": "sha512-c7+Hhj87zWmdpmjDONbvNKNo24tvmD4mjal1+qqTYTrlF0/sNpAcDlU0Ki84ftA/5yj3BF2QhSGEC0Rky6larg==", + "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", @@ -2362,7 +2690,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", "dev": true, - "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -2375,7 +2702,6 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } @@ -2385,7 +2711,6 @@ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -2401,7 +2726,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.0" } @@ -2462,7 +2786,6 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2535,7 +2858,6 @@ "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6" } @@ -2545,7 +2867,6 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", "dev": true, - "license": "MIT", "dependencies": { "type-fest": "^0.20.2" }, @@ -2573,7 +2894,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -2631,7 +2951,6 @@ "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.0.tgz", "integrity": "sha512-jVGRE0Ep9byMBKEu0Vxgl8dhXYOUk0iNQ2pjsG+BcRB0u0oDF5A9p/iBGMg/PGKYUyMD0OAGu8dVT5Lzj8S58g==", "dev": true, - "license": "MIT", "dependencies": { "cosmiconfig": "^8.0.0", "posthtml": "^0.16.5", @@ -2686,7 +3005,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -2727,7 +3045,6 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, - "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -2758,15 +3075,13 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -2776,7 +3091,6 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2788,15 +3102,13 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2805,15 +3117,13 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -2825,15 +3135,13 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -2846,7 +3154,6 @@ "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", "dev": true, - "license": "MPL-2.0", "dependencies": { "detect-libc": "^1.0.3" }, @@ -2869,6 +3176,126 @@ "lightningcss-win32-x64-msvc": "1.22.1" } }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz", + "integrity": "sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz", + "integrity": "sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz", + "integrity": "sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz", + "integrity": "sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz", + "integrity": "sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz", + "integrity": "sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lightningcss-linux-x64-gnu": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", @@ -2877,7 +3304,6 @@ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -2898,7 +3324,6 @@ "x64" ], "dev": true, - "license": "MPL-2.0", "optional": true, "os": [ "linux" @@ -2911,12 +3336,31 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz", + "integrity": "sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/lmdb": { "version": "2.8.5", @@ -2924,7 +3368,6 @@ "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", "dev": true, "hasInstallScript": true, - "license": "MIT", "dependencies": { "msgpackr": "^1.9.5", "node-addon-api": "^6.1.0", @@ -2944,44 +3387,17 @@ "@lmdb/lmdb-win32-x64": "2.8.5" } }, - "node_modules/lmdb/node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, "node_modules/lmdb/node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", - "dev": true, - "license": "MIT" - }, - "node_modules/lmdb/node_modules/node-gyp-build-optional-packages": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", - "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.1" - }, - "bin": { - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-optional-packages-optional": "optional.js", - "node-gyp-build-optional-packages-test": "build-test.js" - } + "dev": true }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -3026,7 +3442,6 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.2", "picomatch": "^2.3.1" @@ -3079,7 +3494,6 @@ "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.9.9.tgz", "integrity": "sha512-sbn6mioS2w0lq1O6PpGtsv6Gy8roWM+o3o4Sqjd6DudrL/nOugY+KyJUimoWzHnf9OkO0T6broHFnYE/R05t9A==", "dev": true, - "license": "MIT", "optionalDependencies": { "msgpackr-extract": "^3.0.2" } @@ -3090,7 +3504,6 @@ "integrity": "sha512-SdzXp4kD/Qf8agZ9+iTu6eql0m3kWm1A2y1hkpTeVNENutaB0BwHlSvAIaMxwntmRUAUjon2V4L8Z/njd0Ct8A==", "dev": true, "hasInstallScript": true, - "license": "MIT", "optional": true, "dependencies": { "node-gyp-build-optional-packages": "5.0.7" @@ -3107,6 +3520,18 @@ "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.2" } }, + "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz", + "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -3120,28 +3545,36 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.0.0.tgz", "integrity": "sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/node-gyp-build-optional-packages": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.7.tgz", - "integrity": "sha512-YlCCc6Wffkx0kHkmam79GKvDQ6x+QZkMjFGrIMxgFNILFvGSbCp2fCBC55pGTT9gVaz8Na5CLmxt/urtzRv36w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", "dev": true, - "license": "MIT", - "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-optional": "optional.js", "node-gyp-build-optional-packages-test": "build-test.js" } }, + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/node-releases": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/nth-check": { "version": "2.1.1", @@ -3159,8 +3592,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/object-inspect": { "version": "1.13.1", @@ -3187,15 +3619,13 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.4.1.tgz", "integrity": "sha512-9LtiGlPy982CsgxZvJGNNp2/NnrgEr6EAyN3iIEP3/8vd3YLgAZQHbQ75ZrkfBRGrNg37Dk3U6tuVb+B4Xfslg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/parcel": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.10.3.tgz", "integrity": "sha512-Ocx33N4ZVnotJTALhMZ0AqPIE9UN5uP6jjA+lYJ4FlEYuYYZsvOQXZQgeMa62pFj6jrOHWh7ho8uJhRdTNwVyg==", "dev": true, - "license": "MIT", "dependencies": { "@parcel/config-default": "2.10.3", "@parcel/core": "2.10.3", @@ -3228,7 +3658,6 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -3241,7 +3670,6 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -3275,7 +3703,6 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } @@ -3284,15 +3711,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "license": "ISC" + "dev": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "MIT", "engines": { "node": ">=8.6" }, @@ -3304,15 +3729,13 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/posthtml": { "version": "0.16.6", "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", "dev": true, - "license": "MIT", "dependencies": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -3326,7 +3749,6 @@ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.2.tgz", "integrity": "sha512-PId6zZ/2lyJi9LiKfe+i2xv57oEjJgWbsHGGANwos5AvdQp98i6AtamAl8gzSVFGfQ43Glb5D614cvZf012VKg==", "dev": true, - "license": "MIT", "dependencies": { "htmlparser2": "^7.1.1" }, @@ -3339,7 +3761,6 @@ "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", "dev": true, - "license": "MIT", "dependencies": { "is-json": "^2.0.1" }, @@ -3352,7 +3773,6 @@ "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", "dev": true, - "license": "MIT", "dependencies": { "htmlparser2": "^7.1.1" }, @@ -3416,25 +3836,28 @@ "version": "6.0.9", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/react-refresh": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "dev": true + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "MIT", "engines": { "node": ">=4" } @@ -3457,8 +3880,7 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -3471,7 +3893,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -3587,7 +4008,6 @@ "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -3616,7 +4036,6 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -3656,7 +4075,6 @@ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" }, @@ -3668,15 +4086,13 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3697,15 +4113,13 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true, - "license": "0BSD" + "dev": true }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -3754,7 +4168,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -3771,7 +4184,6 @@ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } @@ -3798,15 +4210,13 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" + "dev": true } } -} \ No newline at end of file +} diff --git a/src/web/package.json b/src/web/package.json new file mode 100644 index 0000000..9c23f09 --- /dev/null +++ b/src/web/package.json @@ -0,0 +1,16 @@ +{ + "name": "spoti-stats", + "version": "1.0.0", + "description": "Spotify analytics and data visualization service", + "scripts": { + "dev": "parcel index.html", + "build": "parcel build index.html" + }, + "devDependencies": { + "parcel": "^2.6.2", + "express": "^4.17.1" + }, + "dependencies": { + "chart.js": "^4.0.0" + } +} \ No newline at end of file diff --git a/src/web/variables.js b/src/web/variables.js new file mode 100644 index 0000000..892a6f0 --- /dev/null +++ b/src/web/variables.js @@ -0,0 +1,6 @@ +const server_vars = { + address: "192.168.191.64", + port: "5000", +}; + +module.exports = { server_vars }; From 480fabff63ec9eea06c29adcf82a75bd74f9d7fc Mon Sep 17 00:00:00 2001 From: Fedor Mukhin <71270225+TheTedLab@users.noreply.github.com> Date: Sun, 26 Nov 2023 00:31:49 +0300 Subject: [PATCH 10/19] Add artists aggregator Add artists ids aggregator and all data aggregator Develop functions for packing and sending json's to server Add server and other config files Add directories for artists files Add classes for Artist, Album and Track for JSON packing --- .gitignore | 6 +- src/aggregator/Dockerfile | 18 + src/aggregator/__init__.py | 0 src/aggregator/aggregator.py | 301 + src/aggregator/artist_aggregate.py | 80 + src/aggregator/auth_credentials.template | 12 + src/aggregator/classes/__init__.py | 0 src/aggregator/classes/album.py | 14 + src/aggregator/classes/artist.py | 14 + src/aggregator/classes/track.py | 30 + src/aggregator/requirements.txt | Bin 0 -> 188 bytes .../resources/artists-ids-list.json | 12981 ++++++++++++++++ .../artist-00FQb4jTyendYWaN8pK0wa.json | 7338 +++++++++ .../artist-0M2HHtY3OOQzIZxrHkbJLT.json | 1955 +++ .../resources/artists/artist-1.json | 90 + .../artist-4tZwfgrHOc3mvqYlEYSvVi.json | 7602 +++++++++ .../resources/spotify-followed-artists.json | 1809 +++ src/aggregator/save_artist.py | 27 + src/aggregator/server_vars.py | 2 + 19 files changed, 32278 insertions(+), 1 deletion(-) create mode 100644 src/aggregator/Dockerfile create mode 100644 src/aggregator/__init__.py create mode 100644 src/aggregator/aggregator.py create mode 100644 src/aggregator/artist_aggregate.py create mode 100644 src/aggregator/auth_credentials.template create mode 100644 src/aggregator/classes/__init__.py create mode 100644 src/aggregator/classes/album.py create mode 100644 src/aggregator/classes/artist.py create mode 100644 src/aggregator/classes/track.py create mode 100644 src/aggregator/requirements.txt create mode 100644 src/aggregator/resources/artists-ids-list.json create mode 100644 src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json create mode 100644 src/aggregator/resources/artists/artist-0M2HHtY3OOQzIZxrHkbJLT.json create mode 100644 src/aggregator/resources/artists/artist-1.json create mode 100644 src/aggregator/resources/artists/artist-4tZwfgrHOc3mvqYlEYSvVi.json create mode 100644 src/aggregator/resources/spotify-followed-artists.json create mode 100644 src/aggregator/save_artist.py create mode 100644 src/aggregator/server_vars.py diff --git a/.gitignore b/.gitignore index 43d7f6b..7dc22e8 100644 --- a/.gitignore +++ b/.gitignore @@ -289,4 +289,8 @@ sketch ### VisualStudioCode Patch ### # Ignore all local history of files .history -.ionide \ No newline at end of file +.ionide + +#Project Files +auth_credentials.py +get_token.py diff --git a/src/aggregator/Dockerfile b/src/aggregator/Dockerfile new file mode 100644 index 0000000..b4c2e43 --- /dev/null +++ b/src/aggregator/Dockerfile @@ -0,0 +1,18 @@ +# Use an official Python image as the base image +FROM python:3.11 + +# Set the working directory in the container +WORKDIR /usr/src/app + +# Copy and install requirements +COPY ./requirements.txt /app/requirements.txt + +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 + +# Command to run application +CMD ["python", "save_artist.py"] \ No newline at end of file diff --git a/src/aggregator/__init__.py b/src/aggregator/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/aggregator/aggregator.py b/src/aggregator/aggregator.py new file mode 100644 index 0000000..3cf81d2 --- /dev/null +++ b/src/aggregator/aggregator.py @@ -0,0 +1,301 @@ +import json +import time +import requests +from auth_credentials import client_id, client_secret, client_headers, client_extensions, token_type, access_token +from classes.artist import Artist +from classes.album import Album +from classes.track import Track + +token_data = { + 'grant_type': 'client_credentials', + 'client_id': client_id, + 'client_secret': client_secret, +} + + +def main(): + timeout = 0.5 + + request_count = 0 + + headers = { + 'Authorization': f'{token_type} {access_token}', + } + + 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]: + # 1 request + response = requests.get( + f'https://api.spotify.com/v1/artists/{artist_id}', + headers=headers + ) + time.sleep(timeout) + 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) + 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')}" + + # 3 request (potential) + response = requests.get( + f'https://api.spotify.com/v1/artists/{artist_id}', + headers=headers + ) + time.sleep(timeout) + request_count += 1 + print(f"[Request {request_count} - {response.status_code}]") + + artist_info_data = response.json() + 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')}") + print(f"Artist Followers: {artist_info_data.get('followers').get('total')}") + + artist_for_json = Artist( + artist_id, + artist_info_data.get('name'), + artist_info_data.get('popularity'), + artist_info_data.get('followers').get('total'), + 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, + 'offset': 0, + 'market': 'ES' + } + + # 5 request + 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: + artist_albums_ids.append(album.get('id')) + + album_params['include_groups'] = 'single' + + # 6 request + 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')) + + total_albums_ids = len(artist_albums_ids) + print(f'Total albums: {total_albums_ids}') + + several_albums_params = { + 'ids': '' + } + + # 6 requests above, 54 requests below left + albums_json = list() + tracks_json = list() + id_offset = 20 + for i in range(0, total_albums_ids, id_offset): + several_albums_params['ids'] = ','.join(artist_albums_ids[i:i + id_offset]) + # max 100 albums or singles = 5 requests (5 * 20) + 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() + print(f"Album Name: {album.get('name')}") + album_id = album.get('id') + print(f"Album ID: {album_id}") + print(f"Album Type: {album.get('album_type')}") + print(f"Album Date: {album.get('release_date')}") + print(f"Album Genres: {album.get('genres')}") + print(f"Album Label: {album.get('label')}") + print(f"Album Popularity: {album.get('popularity')}") + + album_for_json = Album( + album.get('name'), + album_id, + album.get('album_type'), + album.get('release_date'), + album.get('genres'), + album.get('label'), + album.get('popularity') + ) + + albums_json.append(album_for_json) + + albums_tracks_json = list() + album_tracks_ids = list() + album_tracks = album.get('tracks').get('items') + for track in album_tracks: + print() + print(f"Track Name: {track.get('name')}") + track_id = track.get('id') + print(f"Track ID: {track_id}") + album_tracks_ids.append(track_id) + print('Track Artists:') + track_artists = list() + for track_artist in track.get('artists'): + track_artists.append(track_artist.get('id')) + print(track_artists) + print(f"Track Album ID: {[album_id]}") + print(f"Track Duration: {track.get('duration_ms')}") + print(f"Track Explicit: {track.get('explicit')}") + + track_for_json = Track( + track.get('name'), + track_id, + track_artists, + [album_id], + track.get('duration_ms'), + track.get('explicit') + ) + albums_tracks_json.append(track_for_json) + + total_tracks_ids = len(album_tracks_ids) + print(f'Total tracks: {total_tracks_ids}') + + several_tracks_params = { + 'ids': '' + } + + track_id_offset = 50 + for j in range(0, total_tracks_ids, track_id_offset): + several_tracks_params['ids'] = ','.join(album_tracks_ids[j:j + track_id_offset]) + # max 100 tracks = 2 requests per album + 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: + print(f"Track ID: {track_obj.get('id')}") + print(f"Track Popularity: {track_obj.get('popularity')}") + + for tracks_i in albums_tracks_json: + if tracks_i.track_id == track_obj.get('id'): + tracks_i.popularity = track_obj.get('popularity') + + several_features_params = { + 'ids': '', + } + + track_features_offset = 100 + for k in range(0, total_tracks_ids, track_features_offset): + several_features_params['ids'] = ','.join(album_tracks_ids[k: k + track_features_offset]) + # max 100 tracks = 1 request per album + 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: + print(f"Track ID: {features_track.get('id')}") + print(f"Track Acousticness: {features_track.get('acousticness')}") + print(f"Track Danceability: {features_track.get('danceability')}") + print(f"Track Energy: {features_track.get('energy')}") + print(f"Track Instrumentalness: {features_track.get('instrumentalness')}") + print(f"Track Key: {features_track.get('key')}") + print(f"Track Liveness: {features_track.get('liveness')}") + print(f"Track Loudness: {features_track.get('loudness')}") + print(f"Track Mode: {features_track.get('mode')}") + print(f"Track Speechiness: {features_track.get('speechiness')}") + print(f"Track Tempo: {features_track.get('tempo')}") + print(f"Track Time signature: {features_track.get('time_signature')}") + print(f"Track Valence: {features_track.get('valence')}") + + for tracks_j in albums_tracks_json: + if tracks_j.track_id == features_track.get('id'): + tracks_j.acousticness = features_track.get('acousticness') + tracks_j.danceability = features_track.get('danceability') + tracks_j.energy = features_track.get('energy') + tracks_j.instrumentalness = features_track.get('instrumentalness') + tracks_j.key = features_track.get('key') + tracks_j.liveness = features_track.get('liveness') + tracks_j.loudness = features_track.get('loudness') + tracks_j.mode = features_track.get('mode') + tracks_j.speechiness = features_track.get('speechiness') + tracks_j.tempo = features_track.get('tempo') + tracks_j.time_signature = features_track.get('time_signature') + tracks_j.valence = features_track.get('valence') + # To Do: Track Playcount + + tracks_json.append(albums_tracks_json) + + 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/artist-{artist_id}.json', 'w', encoding='utf-8') as file: + file.write(json_string) + + +if __name__ == '__main__': + main() diff --git a/src/aggregator/artist_aggregate.py b/src/aggregator/artist_aggregate.py new file mode 100644 index 0000000..8393a16 --- /dev/null +++ b/src/aggregator/artist_aggregate.py @@ -0,0 +1,80 @@ +import json +import requests +from auth_credentials import client_id, client_secret + +token_data = { + 'grant_type': 'client_credentials', + 'client_id': client_id, + 'client_secret': client_secret, +} + + +def get_related_artists(artists_ids, headers, stage=0): + artists_ids = list(set(artists_ids)) + total_artists = len(artists_ids) + + artists_ids_list = list() + artists_ids_list.extend(artists_ids) + process_num = 0 + for artist_id in artists_ids: + process_num += 1 + print(f'Collect {process_num} of {total_artists}') + response = requests.get( + f'https://api.spotify.com/v1/artists/{artist_id}/related-artists', + headers=headers + ) + + for artist in response.json().get('artists'): + artists_ids_list.append(artist.get('id')) + + print(f'==============STAGE={stage}=============') + print(f' Total related artists: {len(artists_ids_list)}') + print(f'Total unique related artists: {len(set(artists_ids_list))}') + print(f'==================================') + + artists_ids_list = list(set(artists_ids_list)) + + return artists_ids_list + + +def main(): + response = requests.post('https://accounts.spotify.com/api/token', data=token_data) + + access_token = response.json().get('access_token') + token_type = response.json().get('token_type') + + headers = { + 'Authorization': f'{token_type} {access_token}', + } + + with open(f'src/aggregator/resources/spotify-followed-artists.json', 'r', encoding='utf-8') as file: + artists_data = json.load(file) + + followed_artists_ids = list() + for artist in artists_data.get('artists'): + followed_artists_ids.append(artist.get('uri').split(':')[2]) + + artists_ids_list_stage_one = get_related_artists( + followed_artists_ids, + headers=headers, + stage=1 + ) + + artists_ids_list = get_related_artists( + artists_ids_list_stage_one, + headers=headers, + stage=2 + ) + + json_string = json.dumps( + artists_ids_list, + indent=4, + ensure_ascii=False + ) + + with open(f'src/aggregator/resources/artists-ids-list.json', 'w', encoding='utf-8') as file: + file.write(json_string) + + +if __name__ == '__main__': + main() diff --git a/src/aggregator/auth_credentials.template b/src/aggregator/auth_credentials.template new file mode 100644 index 0000000..9a81f6c --- /dev/null +++ b/src/aggregator/auth_credentials.template @@ -0,0 +1,12 @@ +client_id = 'your_app_client_id' +client_secret = 'your_app_client_secret' + +access_token = 'your_access_token' +token_type = 'your_token_type' + +client_headers = { + 'your': 'client_headers', + 'your': 'client_headers' +} + +client_extensions = '{"your_client_extensions"}' diff --git a/src/aggregator/classes/__init__.py b/src/aggregator/classes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/aggregator/classes/album.py b/src/aggregator/classes/album.py new file mode 100644 index 0000000..c42f387 --- /dev/null +++ b/src/aggregator/classes/album.py @@ -0,0 +1,14 @@ +class Album: + + def __init__(self, album_name, album_id, album_type, release_date, genres, label, popularity): + self.album_name = album_name + self.album_id = album_id + self.album_type = album_type + self.release_date = release_date + self.genres = genres + self.label = label + self.popularity = popularity + + def __str__(self): + return f'{self.album_name} {self.album_id} {self.album_type}' \ + f' {self.release_date} {self.genres} {self.label} {self.popularity}' diff --git a/src/aggregator/classes/artist.py b/src/aggregator/classes/artist.py new file mode 100644 index 0000000..a3e70e9 --- /dev/null +++ b/src/aggregator/classes/artist.py @@ -0,0 +1,14 @@ +class Artist: + + def __init__(self, artist_id, name, popularity, followers, genres, albums=None, tracks=None): + self.artist_id = artist_id + self.name = name + self.popularity = popularity + self.followers = followers + self.genres = genres + self.albums = albums + self.tracks = tracks + + def __str__(self): + return f'{self.artist_id} {self.name} {self.popularity}' \ + f' {self.followers} {self.genres} {self.albums} {self.tracks}' diff --git a/src/aggregator/classes/track.py b/src/aggregator/classes/track.py new file mode 100644 index 0000000..9abd5d7 --- /dev/null +++ b/src/aggregator/classes/track.py @@ -0,0 +1,30 @@ +class Track: + + def __init__(self, track_name, track_id, artists, albums, duration_ms, explicit, popularity=None, acousticness=None, + danceability=None, energy=None, instrumentalness=None, key=None, liveness=None, loudness=None, + mode=None, speechiness=None, tempo=None, time_signature=None, valence=None): + self.track_name = track_name + self.track_id = track_id + self.artists = artists + self.albums = albums + self.duration_ms = duration_ms + self.explicit = explicit + self.popularity = popularity + self.acousticness = acousticness + self.danceability = danceability + self.energy = energy + self.instrumentalness = instrumentalness + self.key = key + self.liveness = liveness + self.loudness = loudness + self.mode = mode + self.speechiness = speechiness + self.tempo = tempo + self.time_signature = time_signature + self.valence = valence + + def __str__(self): + return f'{self.track_name} {self.track_id} {self.artists} {self.albums} {self.duration_ms} {self.explicit}' \ + f' {self.popularity} {self.acousticness} {self.danceability} {self.energy} {self.instrumentalness}' \ + f' {self.key} {self.liveness} {self.loudness} {self.mode} {self.speechiness} {self.tempo}' \ + f' {self.time_signature} {self.valence}' diff --git a/src/aggregator/requirements.txt b/src/aggregator/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..d73fc1efeb3b90b1b64842bbce76ee96e919e181 GIT binary patch literal 188 zcmXwz!485z3`F1Agipc1LgLAfSwX`lsBsrAe!M!Zkfu#`cHXq#&%l+;LgJ=As{)O> z<4CKrd7|RLz(ka{h*+q3@YL%rZ5H|V9OI3&4o)RTIin|=+Pj+Nez9s6WtDBOakjB> R&#Ls Date: Sun, 26 Nov 2023 02:21:38 +0300 Subject: [PATCH 11/19] Fix tracks parsing Fixed incorrect tracks parsing as array of every album to array for all tracks Add some logging for requests and time Also previous JSON files now fixed --- src/aggregator/aggregator.py | 39 +- .../artist-00FQb4jTyendYWaN8pK0wa.json | 13432 +++++++------- .../artist-0M2HHtY3OOQzIZxrHkbJLT.json | 3588 ++-- .../artist-4tZwfgrHOc3mvqYlEYSvVi.json | 14486 ++++++++-------- 4 files changed, 15663 insertions(+), 15882 deletions(-) diff --git a/src/aggregator/aggregator.py b/src/aggregator/aggregator.py index 3cf81d2..f26de40 100644 --- a/src/aggregator/aggregator.py +++ b/src/aggregator/aggregator.py @@ -1,6 +1,7 @@ import json import time import requests +import datetime from auth_credentials import client_id, client_secret, client_headers, client_extensions, token_type, access_token from classes.artist import Artist from classes.album import Album @@ -14,6 +15,9 @@ def main(): + + print(f' [T] Time: {datetime.datetime.now()}') + timeout = 0.5 request_count = 0 @@ -33,7 +37,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}]") print(response.status_code) if response.status_code != 200: @@ -45,7 +49,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')}" @@ -56,7 +60,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 Name: {artist_info_data.get('name')}") @@ -86,7 +90,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_stats_data = response.json().get('data').get('artistUnion').get('stats') # print(f"Monthly Listeners: {artist_stats_data.get('monthlyListeners')}") @@ -109,7 +113,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') @@ -126,7 +130,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: @@ -153,7 +157,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: @@ -179,7 +183,6 @@ def main(): albums_json.append(album_for_json) - albums_tracks_json = list() album_tracks_ids = list() album_tracks = album.get('tracks').get('items') for track in album_tracks: @@ -205,7 +208,7 @@ def main(): track.get('duration_ms'), track.get('explicit') ) - albums_tracks_json.append(track_for_json) + tracks_json.append(track_for_json) total_tracks_ids = len(album_tracks_ids) print(f'Total tracks: {total_tracks_ids}') @@ -225,14 +228,14 @@ def main(): ) time.sleep(timeout) request_count += 1 - print(f"[Request {request_count} - {response.status_code}]") + print(f" [*] Request {request_count} - {response.status_code}]") tracks_data = response.json().get('tracks') for track_obj in tracks_data: print(f"Track ID: {track_obj.get('id')}") print(f"Track Popularity: {track_obj.get('popularity')}") - for tracks_i in albums_tracks_json: + for tracks_i in tracks_json: if tracks_i.track_id == track_obj.get('id'): tracks_i.popularity = track_obj.get('popularity') @@ -251,7 +254,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}]") features_data = response.json().get('audio_features') for features_track in features_data: @@ -269,7 +272,7 @@ def main(): print(f"Track Time signature: {features_track.get('time_signature')}") print(f"Track Valence: {features_track.get('valence')}") - for tracks_j in albums_tracks_json: + for tracks_j in tracks_json: if tracks_j.track_id == features_track.get('id'): tracks_j.acousticness = features_track.get('acousticness') tracks_j.danceability = features_track.get('danceability') @@ -285,17 +288,17 @@ def main(): tracks_j.valence = features_track.get('valence') # To Do: Track Playcount - tracks_json.append(albums_tracks_json) - artist_for_json.albums = albums_json artist_for_json.tracks = tracks_json - print(artist_for_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/artist-{artist_id}.json', 'w', encoding='utf-8') as file: + # print(json_string) + with open(f'resources/artists/artist-{artist_id}.json', 'w', encoding='utf-8') as file: file.write(json_string) + print(f' [T] Time: {datetime.datetime.now()}') + if __name__ == '__main__': main() diff --git a/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json b/src/aggregator/resources/artists/artist-00FQb4jTyendYWaN8pK0wa.json index 2156dd5..7437290 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": 29851320, + "followers": 29880352, "genres": [ "art pop", "pop" @@ -213,7 +213,7 @@ "release_date": "2022-06-10", "genres": [], "label": "XL Recordings", - "popularity": 35 + "popularity": 36 }, { "album_name": "Watercolor Eyes (From “Euphoria” An HBO Original Series)", @@ -559,6780 +559,6658 @@ } ], "tracks": [ - [ - { - "track_name": "The Grants", - "track_id": "3KbOflJ5JqHWtmco4PiO3h", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 295201, - "explicit": false, - "popularity": 66, - "acousticness": 0.867, - "danceability": 0.364, - "energy": 0.167, - "instrumentalness": 0.00116, - "key": 7, - "liveness": 0.358, - "loudness": -12.168, - "mode": 1, - "speechiness": 0.0361, - "tempo": 121.218, - "time_signature": 4, - "valence": 0.143 - }, - { - "track_name": "Did you know that there's a tunnel under Ocean Blvd", - "track_id": "0HEzuLLojblUOaUSdmJ9gl", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 285050, - "explicit": true, - "popularity": 73, - "acousticness": 0.805, - "danceability": 0.457, - "energy": 0.343, - "instrumentalness": 0.0182, - "key": 0, - "liveness": 0.12, - "loudness": -9.387, - "mode": 1, - "speechiness": 0.0305, - "tempo": 119.94, - "time_signature": 4, - "valence": 0.0562 - }, - { - "track_name": "Sweet", - "track_id": "6x8g6DxglrzCSwKhv2Q1ee", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 215295, - "explicit": true, - "popularity": 66, - "acousticness": 0.958, - "danceability": 0.326, - "energy": 0.245, - "instrumentalness": 0.00389, - "key": 0, - "liveness": 0.157, - "loudness": -12.337, - "mode": 1, - "speechiness": 0.0293, - "tempo": 126.725, - "time_signature": 4, - "valence": 0.0695 - }, - { - "track_name": "A&W", - "track_id": "5nW4z3pfZgJAJ2QTCz9AIE", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 433916, - "explicit": true, - "popularity": 75, - "acousticness": 0.665, - "danceability": 0.421, - "energy": 0.247, - "instrumentalness": 0.375, - "key": 10, - "liveness": 0.115, - "loudness": -14.655, - "mode": 1, - "speechiness": 0.143, - "tempo": 161.468, - "time_signature": 4, - "valence": 0.139 - }, - { - "track_name": "Judah Smith Interlude", - "track_id": "4fFqFgMDP9lY8tqEoArFGq", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 276757, - "explicit": false, - "popularity": 60, - "acousticness": 0.96, - "danceability": 0.476, - "energy": 0.33, - "instrumentalness": 4.39e-05, - "key": 9, - "liveness": 0.221, - "loudness": -10.48, - "mode": 1, - "speechiness": 0.102, - "tempo": 77.111, - "time_signature": 4, - "valence": 0.368 - }, - { - "track_name": "Candy Necklace (feat. Jon Batiste)", - "track_id": "3MlEryrxCKZkcfX18ZLX96", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "0eRbECAGCLLiTyVXPBRexU" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 314520, - "explicit": false, - "popularity": 67, - "acousticness": 0.871, - "danceability": 0.343, - "energy": 0.142, - "instrumentalness": 0.0103, - "key": 11, - "liveness": 0.0915, - "loudness": -16.432, - "mode": 0, - "speechiness": 0.0395, - "tempo": 116.295, - "time_signature": 4, - "valence": 0.0799 - }, - { - "track_name": "Jon Batiste Interlude", - "track_id": "2JFVBojvTHpSZLoyowuZys", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 213435, - "explicit": false, - "popularity": 59, - "acousticness": 0.983, - "danceability": 0.291, - "energy": 0.319, - "instrumentalness": 0.55, - "key": 9, - "liveness": 0.0627, - "loudness": -11.651, - "mode": 1, - "speechiness": 0.034, - "tempo": 103.496, - "time_signature": 4, - "valence": 0.0653 - }, - { - "track_name": "Kintsugi", - "track_id": "4VL310GGX3b2ixL3sV0Je8", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 378951, - "explicit": false, - "popularity": 63, - "acousticness": 0.984, - "danceability": 0.447, - "energy": 0.0858, - "instrumentalness": 0.00331, - "key": 9, - "liveness": 0.242, - "loudness": -15.806, - "mode": 1, - "speechiness": 0.042, - "tempo": 116.091, - "time_signature": 4, - "valence": 0.173 - }, - { - "track_name": "Fingertips", - "track_id": "1BUckPDAi8NYfLN7EiQcQA", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 348256, - "explicit": true, - "popularity": 63, - "acousticness": 0.924, - "danceability": 0.439, - "energy": 0.192, - "instrumentalness": 0.000643, - "key": 5, - "liveness": 0.158, - "loudness": -13.564, - "mode": 1, - "speechiness": 0.0418, - "tempo": 124.232, - "time_signature": 3, - "valence": 0.0786 - }, - { - "track_name": "Paris, Texas (feat. SYML)", - "track_id": "0Oqxt6JixieLHbwMfnJGWO", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "6AyATGg7mDgBlZ4N5uNog0" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 206722, - "explicit": false, - "popularity": 76, - "acousticness": 0.985, - "danceability": 0.315, - "energy": 0.102, - "instrumentalness": 0.0512, - "key": 0, - "liveness": 0.109, - "loudness": -17.621, - "mode": 0, - "speechiness": 0.034, - "tempo": 169.69, - "time_signature": 3, - "valence": 0.185 - }, - { - "track_name": "Grandfather please stand on the shoulders of my father while he's deep-sea fishing (feat. RIOPY)", - "track_id": "55LnC7VuUvayQ3fW0CvDL6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4ytDz3A9nHcVMjEbdNSKzA" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 240287, - "explicit": false, - "popularity": 63, - "acousticness": 0.936, - "danceability": 0.348, - "energy": 0.224, - "instrumentalness": 0.0225, - "key": 8, - "liveness": 0.297, - "loudness": -10.36, - "mode": 1, - "speechiness": 0.0321, - "tempo": 79.608, - "time_signature": 4, - "valence": 0.0818 - }, - { - "track_name": "Let The Light In (feat. Father John Misty)", - "track_id": "4qG7hWhljsqqENL5PaLA2z", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 278126, - "explicit": false, - "popularity": 83, - "acousticness": 0.344, - "danceability": 0.327, - "energy": 0.452, - "instrumentalness": 0.00332, - "key": 9, - "liveness": 0.11, - "loudness": -9.726, - "mode": 1, - "speechiness": 0.0277, - "tempo": 132.427, - "time_signature": 4, - "valence": 0.202 - }, - { - "track_name": "Margaret (feat. Bleachers)", - "track_id": "1o82DwNisONAd2mu1RcGE6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2eam0iDomRHGBypaDQLwWI" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 339890, - "explicit": false, - "popularity": 76, - "acousticness": 0.972, - "danceability": 0.452, - "energy": 0.247, - "instrumentalness": 0.132, - "key": 9, - "liveness": 0.0577, - "loudness": -13.24, - "mode": 1, - "speechiness": 0.033, - "tempo": 102.412, - "time_signature": 4, - "valence": 0.216 - }, - { - "track_name": "Fishtail", - "track_id": "4Cg9XRHLP3s5ZiQaIdL4zW", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 242548, - "explicit": false, - "popularity": 66, - "acousticness": 0.949, - "danceability": 0.529, - "energy": 0.235, - "instrumentalness": 0.000259, - "key": 3, - "liveness": 0.26, - "loudness": -15.226, - "mode": 1, - "speechiness": 0.045, - "tempo": 89.042, - "time_signature": 4, - "valence": 0.0659 - }, - { - "track_name": "Peppers (feat. Tommy Genesis)", - "track_id": "2Rlso2ZNV0PaWwUYeeBYxx", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2qDdxfKUpYg8wc49KIuT3b" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 248928, - "explicit": true, - "popularity": 77, - "acousticness": 0.633, - "danceability": 0.487, - "energy": 0.515, - "instrumentalness": 0.176, - "key": 4, - "liveness": 0.111, - "loudness": -11.767, - "mode": 0, - "speechiness": 0.19, - "tempo": 156.738, - "time_signature": 4, - "valence": 0.35 - }, - { - "track_name": "Taco Truck x VB", - "track_id": "79wgotDiVZml9PiTtNtYBA", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5HOHne1wzItQlIYmLXLYfZ" - ], - "duration_ms": 353277, - "explicit": true, - "popularity": 68, - "acousticness": 0.625, - "danceability": 0.382, - "energy": 0.366, - "instrumentalness": 0.107, - "key": 9, - "liveness": 0.112, - "loudness": -12.146, - "mode": 0, - "speechiness": 0.0591, - "tempo": 157.862, - "time_signature": 4, - "valence": 0.0395 - } - ], - [ - { - "track_name": "Text Book", - "track_id": "4brdb8L2Cy3e9AN8IfV9l8", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 303227, - "explicit": false, - "popularity": 60, - "acousticness": 0.824, - "danceability": 0.424, - "energy": 0.318, - "instrumentalness": 0.000542, - "key": 2, - "liveness": 0.114, - "loudness": -9.915, - "mode": 0, - "speechiness": 0.0427, - "tempo": 119.396, - "time_signature": 3, - "valence": 0.102 - }, - { - "track_name": "Blue Banisters", - "track_id": "4U9ACZETPOqGuJkWtjkjLF", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 293692, - "explicit": false, - "popularity": 61, - "acousticness": 0.937, - "danceability": 0.373, - "energy": 0.114, - "instrumentalness": 4.73e-05, - "key": 5, - "liveness": 0.104, - "loudness": -13.171, - "mode": 1, - "speechiness": 0.041, - "tempo": 90.945, - "time_signature": 1, - "valence": 0.172 - }, - { - "track_name": "Arcadia", - "track_id": "3EZTyh1wJEmreJH1aULPCj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 263399, - "explicit": false, - "popularity": 62, - "acousticness": 0.97, - "danceability": 0.323, - "energy": 0.106, - "instrumentalness": 5.94e-05, - "key": 10, - "liveness": 0.108, - "loudness": -10.374, - "mode": 1, - "speechiness": 0.0323, - "tempo": 91.455, - "time_signature": 4, - "valence": 0.158 - }, - { - "track_name": "Interlude - The Trio", - "track_id": "5rmIMPXAlfidbd9f2AfwlQ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 75960, - "explicit": false, - "popularity": 60, - "acousticness": 0.000689, - "danceability": 0.376, - "energy": 0.493, - "instrumentalness": 0.901, - "key": 2, - "liveness": 0.153, - "loudness": -14.03, - "mode": 1, - "speechiness": 0.0372, - "tempo": 102.845, - "time_signature": 4, - "valence": 0.119 - }, - { - "track_name": "Black Bathing Suit", - "track_id": "2LQGoKFKkZ9yk3UeYFj2xo", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 318040, - "explicit": true, - "popularity": 62, - "acousticness": 0.852, - "danceability": 0.418, - "energy": 0.377, - "instrumentalness": 4.61e-05, - "key": 11, - "liveness": 0.374, - "loudness": -11.612, - "mode": 1, - "speechiness": 0.0738, - "tempo": 113.936, - "time_signature": 4, - "valence": 0.283 - }, - { - "track_name": "If You Lie Down With Me", - "track_id": "1RPsOAaHaRu8JlVdeaciuL", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 265186, - "explicit": false, - "popularity": 66, - "acousticness": 0.913, - "danceability": 0.641, - "energy": 0.346, - "instrumentalness": 3.99e-05, - "key": 0, - "liveness": 0.104, - "loudness": -9.508, - "mode": 1, - "speechiness": 0.036, - "tempo": 122.101, - "time_signature": 4, - "valence": 0.187 - }, - { - "track_name": "Beautiful", - "track_id": "5uPpzqixdzAMXprr4P5aT5", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 215760, - "explicit": false, - "popularity": 59, - "acousticness": 0.96, - "danceability": 0.552, - "energy": 0.202, - "instrumentalness": 0.00154, - "key": 6, - "liveness": 0.225, - "loudness": -10.685, - "mode": 1, - "speechiness": 0.043, - "tempo": 78.021, - "time_signature": 4, - "valence": 0.237 - }, - { - "track_name": "Violets for Roses", - "track_id": "5yrAkKml7mtzmPPbjB2qTC", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 255040, - "explicit": false, - "popularity": 64, - "acousticness": 0.922, - "danceability": 0.513, - "energy": 0.21, - "instrumentalness": 0, - "key": 10, - "liveness": 0.123, - "loudness": -10.472, - "mode": 1, - "speechiness": 0.0301, - "tempo": 88.021, - "time_signature": 4, - "valence": 0.14 - }, - { - "track_name": "Dealer", - "track_id": "7iqQz931tn59mK6IZ3knRx", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 274293, - "explicit": true, - "popularity": 76, - "acousticness": 0.318, - "danceability": 0.602, - "energy": 0.59, - "instrumentalness": 0.000166, - "key": 0, - "liveness": 0.104, - "loudness": -6.346, - "mode": 0, - "speechiness": 0.0279, - "tempo": 130.08, - "time_signature": 4, - "valence": 0.381 - }, - { - "track_name": "Thunder", - "track_id": "4y9vLiQ9mQb6XNEtc4K6ou", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 259466, - "explicit": true, - "popularity": 69, - "acousticness": 0.674, - "danceability": 0.483, - "energy": 0.475, - "instrumentalness": 0.00167, - "key": 3, - "liveness": 0.115, - "loudness": -8.442, - "mode": 1, - "speechiness": 0.0291, - "tempo": 73.862, - "time_signature": 4, - "valence": 0.237 - }, - { - "track_name": "Wildflower Wildfire", - "track_id": "7fvTXmlzhOUE7WUD6aJC4N", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 287840, - "explicit": false, - "popularity": 60, - "acousticness": 0.873, - "danceability": 0.547, - "energy": 0.205, - "instrumentalness": 0.0502, - "key": 7, - "liveness": 0.113, - "loudness": -10.021, - "mode": 0, - "speechiness": 0.0277, - "tempo": 105.745, - "time_signature": 3, - "valence": 0.222 - }, - { - "track_name": "Nectar Of The Gods", - "track_id": "3qydJy5jc1UslvHkm3Hrve", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 259893, - "explicit": true, - "popularity": 60, - "acousticness": 0.888, - "danceability": 0.447, - "energy": 0.165, - "instrumentalness": 1.4e-06, - "key": 10, - "liveness": 0.177, - "loudness": -9.275, - "mode": 1, - "speechiness": 0.0342, - "tempo": 101.758, - "time_signature": 4, - "valence": 0.122 - }, - { - "track_name": "Living Legend", - "track_id": "6pZ9Nj3vzj1RW4ZkR9GcQ9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 241426, - "explicit": false, - "popularity": 63, - "acousticness": 0.935, - "danceability": 0.402, - "energy": 0.219, - "instrumentalness": 0.0034, - "key": 7, - "liveness": 0.102, - "loudness": -9.244, - "mode": 1, - "speechiness": 0.0318, - "tempo": 126.595, - "time_signature": 4, - "valence": 0.166 - }, - { - "track_name": "Cherry Blossom", - "track_id": "6bGevdEVEoEbLK72WFfIYR", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 197933, - "explicit": false, - "popularity": 61, - "acousticness": 0.982, - "danceability": 0.413, - "energy": 0.119, - "instrumentalness": 0.00219, - "key": 7, - "liveness": 0.112, - "loudness": -12.499, - "mode": 1, - "speechiness": 0.0348, - "tempo": 111.11, - "time_signature": 4, - "valence": 0.216 - }, - { - "track_name": "Sweet Carolina", - "track_id": "1Hezl8gsPpfK3N2by41Wxb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2wwCc6fcyhp1tfY3J6Javr" - ], - "duration_ms": 201779, - "explicit": true, - "popularity": 62, - "acousticness": 0.976, - "danceability": 0.45, - "energy": 0.148, - "instrumentalness": 0.000409, - "key": 1, - "liveness": 0.107, - "loudness": -11.802, - "mode": 1, - "speechiness": 0.0569, - "tempo": 79.727, - "time_signature": 5, - "valence": 0.0758 - } - ], - [ - { - "track_name": "White Dress", - "track_id": "4Hl9rOqYomojCmxYfr25im", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 333710, - "explicit": false, - "popularity": 62, - "acousticness": 0.926, - "danceability": 0.493, - "energy": 0.263, - "instrumentalness": 0, - "key": 0, - "liveness": 0.0879, - "loudness": -12.805, - "mode": 1, - "speechiness": 0.0351, - "tempo": 122.792, - "time_signature": 4, - "valence": 0.158 - }, - { - "track_name": "Chemtrails Over The Country Club", - "track_id": "7bPWdJgx8vek7S5i5yAtvG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 271176, - "explicit": false, - "popularity": 81, - "acousticness": 0.877, - "danceability": 0.334, - "energy": 0.276, - "instrumentalness": 0.000249, - "key": 4, - "liveness": 0.113, - "loudness": -13.125, - "mode": 0, - "speechiness": 0.0643, - "tempo": 201.025, - "time_signature": 3, - "valence": 0.429 - }, - { - "track_name": "Tulsa Jesus Freak", - "track_id": "0hyImI8JaWONOrzKH7kJsC", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 215673, - "explicit": false, - "popularity": 67, - "acousticness": 0.918, - "danceability": 0.387, - "energy": 0.339, - "instrumentalness": 0.00272, - "key": 2, - "liveness": 0.13, - "loudness": -12.962, - "mode": 0, - "speechiness": 0.0489, - "tempo": 137.199, - "time_signature": 4, - "valence": 0.273 - }, - { - "track_name": "Let Me Love You Like A Woman", - "track_id": "1gxdWpeOUBpvB908fiZs4D", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 200661, - "explicit": false, - "popularity": 64, - "acousticness": 0.97, - "danceability": 0.303, - "energy": 0.249, - "instrumentalness": 1.95e-05, - "key": 0, - "liveness": 0.117, - "loudness": -11.715, - "mode": 1, - "speechiness": 0.111, - "tempo": 66.932, - "time_signature": 4, - "valence": 0.131 - }, - { - "track_name": "Wild At Heart", - "track_id": "5RJot1fR8C90lLXzHtUqpo", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 246609, - "explicit": false, - "popularity": 61, - "acousticness": 0.947, - "danceability": 0.397, - "energy": 0.206, - "instrumentalness": 1.35e-05, - "key": 2, - "liveness": 0.119, - "loudness": -12.487, - "mode": 1, - "speechiness": 0.0389, - "tempo": 120.702, - "time_signature": 1, - "valence": 0.27 - }, - { - "track_name": "Dark But Just A Game", - "track_id": "1dBBmAddRRIw6GwF7dPz6z", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 235664, - "explicit": true, - "popularity": 63, - "acousticness": 0.842, - "danceability": 0.397, - "energy": 0.262, - "instrumentalness": 6.6e-06, - "key": 0, - "liveness": 0.0999, - "loudness": -14.608, - "mode": 1, - "speechiness": 0.0916, - "tempo": 80.434, - "time_signature": 4, - "valence": 0.124 - }, - { - "track_name": "Not All Who Wander Are Lost", - "track_id": "0Z3JiHn6mhcObPmKhV9WRW", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 245634, - "explicit": false, - "popularity": 59, - "acousticness": 0.947, - "danceability": 0.445, - "energy": 0.116, - "instrumentalness": 1.69e-05, - "key": 7, - "liveness": 0.11, - "loudness": -14.87, - "mode": 1, - "speechiness": 0.0368, - "tempo": 167.992, - "time_signature": 4, - "valence": 0.139 - }, - { - "track_name": "Yosemite", - "track_id": "3WIifw9lqdgSZpt9renBAg", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 306205, - "explicit": false, - "popularity": 60, - "acousticness": 0.901, - "danceability": 0.584, - "energy": 0.283, - "instrumentalness": 0.0332, - "key": 9, - "liveness": 0.127, - "loudness": -12.893, - "mode": 0, - "speechiness": 0.0309, - "tempo": 106.068, - "time_signature": 4, - "valence": 0.278 - }, - { - "track_name": "Breaking Up Slowly", - "track_id": "1hn1kCOG5dm1XgZYKpfaLR", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2kWeFaiHBskk8oqky3KHcR" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 177535, - "explicit": false, - "popularity": 60, - "acousticness": 0.912, - "danceability": 0.37, - "energy": 0.314, - "instrumentalness": 2.09e-06, - "key": 10, - "liveness": 0.0989, - "loudness": -9.677, - "mode": 0, - "speechiness": 0.0445, - "tempo": 97.4, - "time_signature": 5, - "valence": 0.221 - }, - { - "track_name": "Dance Till We Die", - "track_id": "6TZitk9QD7531Jl1TT7TeH", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 243035, - "explicit": true, - "popularity": 58, - "acousticness": 0.904, - "danceability": 0.359, - "energy": 0.236, - "instrumentalness": 7.43e-06, - "key": 9, - "liveness": 0.116, - "loudness": -13.46, - "mode": 0, - "speechiness": 0.0432, - "tempo": 126.227, - "time_signature": 4, - "valence": 0.244 - }, - { - "track_name": "For Free", - "track_id": "2lhfd0CF0dFlwRVH8NG8vv", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "100sLnojEpcadRx4edEBA6", - "3Uqu1mEdkUJxPe7s31n1M9" - ], - "albums": [ - "6QeosPQpJckkW0Obir5RT8" - ], - "duration_ms": 251818, - "explicit": false, - "popularity": 57, - "acousticness": 0.98, - "danceability": 0.502, - "energy": 0.105, - "instrumentalness": 1.79e-05, - "key": 5, - "liveness": 0.0725, - "loudness": -13.381, - "mode": 1, - "speechiness": 0.0331, - "tempo": 114.043, - "time_signature": 3, - "valence": 0.203 - } - ], - [ - { - "track_name": "Norman fucking Rockwell", - "track_id": "3RIgHHpnFKj5Rni1shokDj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 248934, - "explicit": true, - "popularity": 79, - "acousticness": 0.968, - "danceability": 0.215, - "energy": 0.203, - "instrumentalness": 0.0585, - "key": 5, - "liveness": 0.0923, - "loudness": -12.65, - "mode": 1, - "speechiness": 0.0346, - "tempo": 78.287, - "time_signature": 1, - "valence": 0.143 - }, - { - "track_name": "Mariners Apartment Complex", - "track_id": "6OG05bPAwUuV3OMvy2Vy1P", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 247150, - "explicit": true, - "popularity": 74, - "acousticness": 0.763, - "danceability": 0.531, - "energy": 0.252, - "instrumentalness": 0.000133, - "key": 9, - "liveness": 0.104, - "loudness": -12.765, - "mode": 1, - "speechiness": 0.028, - "tempo": 76.054, - "time_signature": 4, - "valence": 0.159 - }, - { - "track_name": "Venice Bitch", - "track_id": "3hwQhakFwm9soLEBnSDH17", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 577199, - "explicit": true, - "popularity": 70, - "acousticness": 0.913, - "danceability": 0.368, - "energy": 0.286, - "instrumentalness": 0.177, - "key": 9, - "liveness": 0.099, - "loudness": -13.031, - "mode": 0, - "speechiness": 0.0294, - "tempo": 77.826, - "time_signature": 4, - "valence": 0.312 - }, - { - "track_name": "Fuck it I love you", - "track_id": "7MtVPRGtZl6rPjMfLoI3Lh", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 218287, - "explicit": true, - "popularity": 72, - "acousticness": 0.895, - "danceability": 0.534, - "energy": 0.452, - "instrumentalness": 0.00165, - "key": 9, - "liveness": 0.125, - "loudness": -10.732, - "mode": 0, - "speechiness": 0.0359, - "tempo": 129.974, - "time_signature": 4, - "valence": 0.175 - }, - { - "track_name": "Doin' Time", - "track_id": "0Oqc0kKFsQ6MhFOLBNZIGX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 202192, - "explicit": true, - "popularity": 83, - "acousticness": 0.404, - "danceability": 0.641, - "energy": 0.559, - "instrumentalness": 0.00402, - "key": 7, - "liveness": 0.0937, - "loudness": -11.132, - "mode": 0, - "speechiness": 0.0355, - "tempo": 144.982, - "time_signature": 4, - "valence": 0.523 - }, - { - "track_name": "Love song", - "track_id": "5tyMJlMqaggzvuX7TtlrTe", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 229325, - "explicit": true, - "popularity": 70, - "acousticness": 0.966, - "danceability": 0.384, - "energy": 0.0701, - "instrumentalness": 0.00017, - "key": 9, - "liveness": 0.0805, - "loudness": -16.512, - "mode": 1, - "speechiness": 0.0367, - "tempo": 63.425, - "time_signature": 4, - "valence": 0.288 - }, - { - "track_name": "Cinnamon Girl", - "track_id": "2mdEsXPu8ZmkHRRtAdC09e", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 300683, - "explicit": false, - "popularity": 85, - "acousticness": 0.814, - "danceability": 0.294, - "energy": 0.337, - "instrumentalness": 0.414, - "key": 6, - "liveness": 0.14, - "loudness": -10.614, - "mode": 0, - "speechiness": 0.036, - "tempo": 91.781, - "time_signature": 5, - "valence": 0.135 - }, - { - "track_name": "How to disappear", - "track_id": "4qUtC2BwFC154Ha8YQRrkk", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 228071, - "explicit": false, - "popularity": 76, - "acousticness": 0.613, - "danceability": 0.538, - "energy": 0.304, - "instrumentalness": 0.000631, - "key": 9, - "liveness": 0.164, - "loudness": -11.79, - "mode": 1, - "speechiness": 0.0352, - "tempo": 78.997, - "time_signature": 3, - "valence": 0.065 - }, - { - "track_name": "California", - "track_id": "7oTE1KmtU2ml9zBhv9Reao", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 305899, - "explicit": false, - "popularity": 68, - "acousticness": 0.761, - "danceability": 0.449, - "energy": 0.41, - "instrumentalness": 0, - "key": 9, - "liveness": 0.0631, - "loudness": -8.067, - "mode": 0, - "speechiness": 0.0317, - "tempo": 123.758, - "time_signature": 4, - "valence": 0.195 - }, - { - "track_name": "The Next Best American Record", - "track_id": "7vRfxLcDDwgYW2WTrtEgUV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 349347, - "explicit": false, - "popularity": 64, - "acousticness": 0.616, - "danceability": 0.569, - "energy": 0.354, - "instrumentalness": 2.75e-05, - "key": 2, - "liveness": 0.112, - "loudness": -9.862, - "mode": 1, - "speechiness": 0.0315, - "tempo": 108.083, - "time_signature": 4, - "valence": 0.118 - }, - { - "track_name": "The greatest", - "track_id": "6ERZ30cRjVWGtVLhczX9aL", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 300360, - "explicit": true, - "popularity": 68, - "acousticness": 0.939, - "danceability": 0.443, - "energy": 0.226, - "instrumentalness": 0.0201, - "key": 2, - "liveness": 0.14, - "loudness": -12.507, - "mode": 0, - "speechiness": 0.0359, - "tempo": 79.142, - "time_signature": 3, - "valence": 0.196 - }, - { - "track_name": "Bartender", - "track_id": "5USsRaiqL1RNKRm1fTJ3JM", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 263441, - "explicit": false, - "popularity": 64, - "acousticness": 0.924, - "danceability": 0.582, - "energy": 0.102, - "instrumentalness": 0, - "key": 9, - "liveness": 0.174, - "loudness": -14.712, - "mode": 0, - "speechiness": 0.0391, - "tempo": 131.773, - "time_signature": 3, - "valence": 0.494 - }, - { - "track_name": "Happiness is a butterfly", - "track_id": "3lG6OtGDsYAOALxEmubQQm", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 272485, - "explicit": false, - "popularity": 79, - "acousticness": 0.969, - "danceability": 0.467, - "energy": 0.119, - "instrumentalness": 1.4e-06, - "key": 2, - "liveness": 0.0973, - "loudness": -10.99, - "mode": 1, - "speechiness": 0.0401, - "tempo": 70.499, - "time_signature": 4, - "valence": 0.156 - }, - { - "track_name": "hope is a dangerous thing for a woman like me to have - but I have it", - "track_id": "0fB77VOZ2FkQeKLv1DuEwp", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5XpEKORZ4y6OrCZSKsi46A" - ], - "duration_ms": 324498, - "explicit": true, - "popularity": 68, - "acousticness": 0.964, - "danceability": 0.49, - "energy": 0.104, - "instrumentalness": 0, - "key": 4, - "liveness": 0.162, - "loudness": -13.208, - "mode": 0, - "speechiness": 0.0635, - "tempo": 86.675, - "time_signature": 4, - "valence": 0.278 - } - ], - [ - { - "track_name": "Love", - "track_id": "2Kerz9H9IejzeIpjhDJoYG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 272742, - "explicit": false, - "popularity": 71, - "acousticness": 0.487, - "danceability": 0.527, - "energy": 0.366, - "instrumentalness": 0.0023, - "key": 10, - "liveness": 0.11, - "loudness": -10.943, - "mode": 1, - "speechiness": 0.0277, - "tempo": 98.994, - "time_signature": 4, - "valence": 0.234 - }, - { - "track_name": "Lust For Life (with The Weeknd)", - "track_id": "0mt02gJ425Xjm7c3jYkOBn", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1Xyo4u8uXC1ZmMpatF05PJ" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 264066, - "explicit": false, - "popularity": 74, - "acousticness": 0.604, - "danceability": 0.504, - "energy": 0.655, - "instrumentalness": 0.00193, - "key": 0, - "liveness": 0.364, - "loudness": -8.644, - "mode": 0, - "speechiness": 0.0542, - "tempo": 99.982, - "time_signature": 4, - "valence": 0.262 - }, - { - "track_name": "13 Beaches", - "track_id": "3ZKRAzNAsiJrBGUM2BX9av", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 295569, - "explicit": false, - "popularity": 65, - "acousticness": 0.539, - "danceability": 0.333, - "energy": 0.389, - "instrumentalness": 0.0772, - "key": 7, - "liveness": 0.163, - "loudness": -9.132, - "mode": 1, - "speechiness": 0.0364, - "tempo": 144.204, - "time_signature": 4, - "valence": 0.25 - }, - { - "track_name": "Cherry", - "track_id": "1Ym6aMuT5bliaZMC67AmPp", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 180902, - "explicit": true, - "popularity": 77, - "acousticness": 0.048, - "danceability": 0.449, - "energy": 0.534, - "instrumentalness": 0.0011, - "key": 8, - "liveness": 0.384, - "loudness": -9.493, - "mode": 0, - "speechiness": 0.0494, - "tempo": 94.261, - "time_signature": 3, - "valence": 0.342 - }, - { - "track_name": "White Mustang", - "track_id": "6eygbzyL6hY8jFQTARDuo9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 164710, - "explicit": false, - "popularity": 70, - "acousticness": 0.456, - "danceability": 0.658, - "energy": 0.46, - "instrumentalness": 0.00111, - "key": 6, - "liveness": 0.0963, - "loudness": -8.646, - "mode": 0, - "speechiness": 0.0444, - "tempo": 114.801, - "time_signature": 4, - "valence": 0.223 - }, - { - "track_name": "Summer Bummer (feat. A$AP Rocky & Playboi Carti)", - "track_id": "5QqyRUZeBE04yJxsD1OC0I", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "13ubrt8QOOCPljQ2FL1Kca", - "699OTQXzgjhIYAHMy9RyPD" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 260672, - "explicit": true, - "popularity": 68, - "acousticness": 0.0155, - "danceability": 0.76, - "energy": 0.574, - "instrumentalness": 2.02e-05, - "key": 1, - "liveness": 0.199, - "loudness": -8.57, - "mode": 1, - "speechiness": 0.126, - "tempo": 134.981, - "time_signature": 4, - "valence": 0.137 - }, - { - "track_name": "Groupie Love (feat. A$AP Rocky)", - "track_id": "03hqMhmCZiNKMSPmVabPLP", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "13ubrt8QOOCPljQ2FL1Kca" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 264037, - "explicit": true, - "popularity": 66, - "acousticness": 0.113, - "danceability": 0.359, - "energy": 0.6, - "instrumentalness": 1.32e-06, - "key": 9, - "liveness": 0.0952, - "loudness": -7.317, - "mode": 1, - "speechiness": 0.0398, - "tempo": 175.894, - "time_signature": 4, - "valence": 0.195 - }, - { - "track_name": "In My Feelings", - "track_id": "269xqcgGTN9PlivhUkOLhX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 238718, - "explicit": true, - "popularity": 70, - "acousticness": 0.0553, - "danceability": 0.54, - "energy": 0.674, - "instrumentalness": 0.0608, - "key": 2, - "liveness": 0.112, - "loudness": -6.351, - "mode": 1, - "speechiness": 0.0802, - "tempo": 89.933, - "time_signature": 4, - "valence": 0.309 - }, - { - "track_name": "Coachella - Woodstock In My Mind", - "track_id": "5UPHeuDP0AnG830Yf3bJJD", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 258397, - "explicit": false, - "popularity": 58, - "acousticness": 0.189, - "danceability": 0.535, - "energy": 0.658, - "instrumentalness": 4.11e-05, - "key": 7, - "liveness": 0.0683, - "loudness": -7.425, - "mode": 1, - "speechiness": 0.0998, - "tempo": 129.835, - "time_signature": 4, - "valence": 0.413 - }, - { - "track_name": "God Bless America - And All The Beautiful Women In It", - "track_id": "7nns9KjsadA1Cx7as2eGNG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 276437, - "explicit": false, - "popularity": 58, - "acousticness": 0.411, - "danceability": 0.374, - "energy": 0.697, - "instrumentalness": 0.211, - "key": 9, - "liveness": 0.122, - "loudness": -6.544, - "mode": 1, - "speechiness": 0.0637, - "tempo": 87.96, - "time_signature": 4, - "valence": 0.244 - }, - { - "track_name": "When The World Was At War We Kept Dancing", - "track_id": "0dssTLrqY79Klk6jx2RXCj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 275616, - "explicit": true, - "popularity": 60, - "acousticness": 0.097, - "danceability": 0.616, - "energy": 0.605, - "instrumentalness": 0.00812, - "key": 7, - "liveness": 0.165, - "loudness": -7.234, - "mode": 1, - "speechiness": 0.0343, - "tempo": 116.031, - "time_signature": 4, - "valence": 0.185 - }, - { - "track_name": "Beautiful People Beautiful Problems (feat. Stevie Nicks)", - "track_id": "3O7p9Itz8PXUoAjD2vmuM6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "7crPfGd2k81ekOoSqQKWWz" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 253531, - "explicit": false, - "popularity": 63, - "acousticness": 0.834, - "danceability": 0.509, - "energy": 0.43, - "instrumentalness": 0.000854, - "key": 5, - "liveness": 0.0927, - "loudness": -8.387, - "mode": 1, - "speechiness": 0.0325, - "tempo": 122.919, - "time_signature": 4, - "valence": 0.128 - }, - { - "track_name": "Tomorrow Never Came (feat. Sean Ono Lennon)", - "track_id": "6VZwnDUMkAZs36g6v9MVQX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5JUYSPkis2Mk6HUbmMqk1m" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 307540, - "explicit": false, - "popularity": 64, - "acousticness": 0.819, - "danceability": 0.297, - "energy": 0.402, - "instrumentalness": 0.000181, - "key": 0, - "liveness": 0.109, - "loudness": -9.757, - "mode": 1, - "speechiness": 0.0346, - "tempo": 138.019, - "time_signature": 4, - "valence": 0.177 - }, - { - "track_name": "Heroin", - "track_id": "7lSdUlVf8k6kxklKkskb1m", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 355184, - "explicit": true, - "popularity": 63, - "acousticness": 0.556, - "danceability": 0.352, - "energy": 0.41, - "instrumentalness": 0.0113, - "key": 11, - "liveness": 0.114, - "loudness": -8.796, - "mode": 0, - "speechiness": 0.0388, - "tempo": 118.721, - "time_signature": 4, - "valence": 0.0952 - }, - { - "track_name": "Change", - "track_id": "3fx5ozORvvTGnSnOhUqrgj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 321200, - "explicit": false, - "popularity": 58, - "acousticness": 0.942, - "danceability": 0.558, - "energy": 0.246, - "instrumentalness": 0.00875, - "key": 9, - "liveness": 0.106, - "loudness": -10.914, - "mode": 0, - "speechiness": 0.0409, - "tempo": 85.672, - "time_signature": 4, - "valence": 0.303 - }, - { - "track_name": "Get Free", - "track_id": "761QvVHTibYjEi2r6A4g4Q", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xYiTrbTL57QO0bb4hXIKo" - ], - "duration_ms": 334294, - "explicit": false, - "popularity": 68, - "acousticness": 0.498, - "danceability": 0.205, - "energy": 0.472, - "instrumentalness": 0.000792, - "key": 10, - "liveness": 0.0953, - "loudness": -10.45, - "mode": 1, - "speechiness": 0.0718, - "tempo": 203.944, - "time_signature": 4, - "valence": 0.0392 - } - ], - [ - { - "track_name": "Honeymoon", - "track_id": "4X5zaUdlRhvBWYnyQIKmH8", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 350058, - "explicit": false, - "popularity": 65, - "acousticness": 0.953, - "danceability": 0.169, - "energy": 0.269, - "instrumentalness": 0.00828, - "key": 5, - "liveness": 0.111, - "loudness": -13.265, - "mode": 0, - "speechiness": 0.036, - "tempo": 74.847, - "time_signature": 3, - "valence": 0.173 - }, - { - "track_name": "Music To Watch Boys To", - "track_id": "34rRFl0bz9PocxWuO2ca5J", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 290625, - "explicit": false, - "popularity": 67, - "acousticness": 0.713, - "danceability": 0.4, - "energy": 0.494, - "instrumentalness": 0.000334, - "key": 1, - "liveness": 0.238, - "loudness": -8.04, - "mode": 0, - "speechiness": 0.0367, - "tempo": 132.016, - "time_signature": 4, - "valence": 0.134 - }, - { - "track_name": "Terrence Loves You", - "track_id": "44JxL1qNXXQYniZ5T3MUs9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 290636, - "explicit": false, - "popularity": 61, - "acousticness": 0.975, - "danceability": 0.296, - "energy": 0.25, - "instrumentalness": 0.0187, - "key": 7, - "liveness": 0.0988, - "loudness": -10.088, - "mode": 1, - "speechiness": 0.0314, - "tempo": 102.031, - "time_signature": 1, - "valence": 0.0898 - }, - { - "track_name": "God Knows I Tried", - "track_id": "5R65WfxdtxpTNSIloTfIdM", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 280653, - "explicit": false, - "popularity": 62, - "acousticness": 0.846, - "danceability": 0.398, - "energy": 0.428, - "instrumentalness": 0.0338, - "key": 5, - "liveness": 0.185, - "loudness": -8.292, - "mode": 0, - "speechiness": 0.0275, - "tempo": 81.017, - "time_signature": 3, - "valence": 0.111 - }, - { - "track_name": "High By The Beach", - "track_id": "7g3htkaLz4ETFn0cifwM3y", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 257573, - "explicit": true, - "popularity": 72, - "acousticness": 0.244, - "danceability": 0.536, - "energy": 0.486, - "instrumentalness": 0.00788, - "key": 11, - "liveness": 0.12, - "loudness": -11.067, - "mode": 0, - "speechiness": 0.0346, - "tempo": 131.988, - "time_signature": 4, - "valence": 0.0968 - }, - { - "track_name": "Freak", - "track_id": "3sYDVtqO35oRSOIMx7dOqR", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 295093, - "explicit": false, - "popularity": 70, - "acousticness": 0.269, - "danceability": 0.287, - "energy": 0.43, - "instrumentalness": 0.000579, - "key": 5, - "liveness": 0.32, - "loudness": -10.014, - "mode": 0, - "speechiness": 0.033, - "tempo": 93.984, - "time_signature": 4, - "valence": 0.109 - }, - { - "track_name": "Art Deco", - "track_id": "5jqNQZBwbZWQXPWfo0ygZF", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 295066, - "explicit": false, - "popularity": 80, - "acousticness": 0.544, - "danceability": 0.282, - "energy": 0.464, - "instrumentalness": 0.215, - "key": 11, - "liveness": 0.111, - "loudness": -11.112, - "mode": 0, - "speechiness": 0.0533, - "tempo": 148.345, - "time_signature": 5, - "valence": 0.0596 - }, - { - "track_name": "Burnt Norton - Interlude", - "track_id": "14Oj2lH9MMI761zeGgnsyR", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 81960, - "explicit": false, - "popularity": 56, - "acousticness": 0.9, - "danceability": 0.28, - "energy": 0.304, - "instrumentalness": 0.806, - "key": 8, - "liveness": 0.135, - "loudness": -18.57, - "mode": 1, - "speechiness": 0.0359, - "tempo": 85.765, - "time_signature": 3, - "valence": 0.523 - }, - { - "track_name": "Religion", - "track_id": "1Yh4lOCbcskjSfYPDnn7EW", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 323280, - "explicit": false, - "popularity": 65, - "acousticness": 0.813, - "danceability": 0.416, - "energy": 0.459, - "instrumentalness": 0.0428, - "key": 9, - "liveness": 0.102, - "loudness": -9.977, - "mode": 0, - "speechiness": 0.0366, - "tempo": 135.689, - "time_signature": 4, - "valence": 0.175 - }, - { - "track_name": "Salvatore", - "track_id": "21qg0IBZf8R12qHd9A3AA4", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 281093, - "explicit": false, - "popularity": 75, - "acousticness": 0.675, - "danceability": 0.304, - "energy": 0.311, - "instrumentalness": 0.00195, - "key": 11, - "liveness": 0.12, - "loudness": -9.647, - "mode": 0, - "speechiness": 0.0344, - "tempo": 117.68, - "time_signature": 4, - "valence": 0.115 - }, - { - "track_name": "The Blackest Day", - "track_id": "45pI8224KKX9Gx5fiyvEAh", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 365760, - "explicit": false, - "popularity": 71, - "acousticness": 0.363, - "danceability": 0.445, - "energy": 0.522, - "instrumentalness": 0.000487, - "key": 2, - "liveness": 0.0797, - "loudness": -8.007, - "mode": 1, - "speechiness": 0.0331, - "tempo": 107.752, - "time_signature": 4, - "valence": 0.162 - }, - { - "track_name": "24", - "track_id": "302ZEWd1TDXvA4PLz0UQhj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 295960, - "explicit": false, - "popularity": 60, - "acousticness": 0.782, - "danceability": 0.284, - "energy": 0.372, - "instrumentalness": 0.000183, - "key": 8, - "liveness": 0.103, - "loudness": -9.821, - "mode": 0, - "speechiness": 0.0356, - "tempo": 98.181, - "time_signature": 4, - "valence": 0.0853 - }, - { - "track_name": "Swan Song", - "track_id": "1DYRRZ5rSlc1PopnB7azLZ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 323475, - "explicit": false, - "popularity": 60, - "acousticness": 0.636, - "danceability": 0.34, - "energy": 0.361, - "instrumentalness": 0.421, - "key": 1, - "liveness": 0.259, - "loudness": -11.567, - "mode": 0, - "speechiness": 0.0294, - "tempo": 81.765, - "time_signature": 4, - "valence": 0.0392 - }, - { - "track_name": "Don't Let Me Be Misunderstood", - "track_id": "0iq0P0HYtpChhUNH5KuqQK", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2DpEBrjCur1ythIZ10gJWw" - ], - "duration_ms": 181897, - "explicit": false, - "popularity": 57, - "acousticness": 0.316, - "danceability": 0.327, - "energy": 0.351, - "instrumentalness": 5.93e-06, - "key": 9, - "liveness": 0.107, - "loudness": -10.488, - "mode": 0, - "speechiness": 0.0327, - "tempo": 80.386, - "time_signature": 4, - "valence": 0.063 - } - ], - [ - { - "track_name": "Cruel World", - "track_id": "6ayKgleoMF26lvU1Z7wVm7", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 399083, - "explicit": true, - "popularity": 66, - "acousticness": 0.274, - "danceability": 0.33, - "energy": 0.507, - "instrumentalness": 4.65e-06, - "key": 5, - "liveness": 0.122, - "loudness": -6.368, - "mode": 0, - "speechiness": 0.0339, - "tempo": 122.164, - "time_signature": 4, - "valence": 0.177 - }, - { - "track_name": "Ultraviolence", - "track_id": "1y3r6RXiJZNBV1EI0NggpS", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 251480, - "explicit": false, - "popularity": 77, - "acousticness": 0.278, - "danceability": 0.144, - "energy": 0.541, - "instrumentalness": 1.01e-05, - "key": 0, - "liveness": 0.101, - "loudness": -7.076, - "mode": 1, - "speechiness": 0.038, - "tempo": 79.262, - "time_signature": 3, - "valence": 0.0899 - }, - { - "track_name": "Shades Of Cool", - "track_id": "4VSg5K1hnbmIg4PwRdY6wV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 342093, - "explicit": false, - "popularity": 70, - "acousticness": 0.554, - "danceability": 0.262, - "energy": 0.482, - "instrumentalness": 0.0161, - "key": 2, - "liveness": 0.244, - "loudness": -6.863, - "mode": 0, - "speechiness": 0.0302, - "tempo": 137.918, - "time_signature": 3, - "valence": 0.0878 - }, - { - "track_name": "Brooklyn Baby", - "track_id": "1NZs6n6hl8UuMaX0UC0YTz", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 351640, - "explicit": true, - "popularity": 84, - "acousticness": 0.542, - "danceability": 0.404, - "energy": 0.664, - "instrumentalness": 0.00402, - "key": 1, - "liveness": 0.11, - "loudness": -6.698, - "mode": 1, - "speechiness": 0.0407, - "tempo": 107.747, - "time_signature": 4, - "valence": 0.0949 - }, - { - "track_name": "West Coast", - "track_id": "5Y6nVaayzitvsD5F7nr3DV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 256760, - "explicit": false, - "popularity": 85, - "acousticness": 0.194, - "danceability": 0.527, - "energy": 0.591, - "instrumentalness": 0.0194, - "key": 6, - "liveness": 0.0907, - "loudness": -7.664, - "mode": 0, - "speechiness": 0.0396, - "tempo": 123.167, - "time_signature": 4, - "valence": 0.461 - }, - { - "track_name": "Sad Girl", - "track_id": "11MyiSGZSYSmhhqwGUTtAq", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 317760, - "explicit": false, - "popularity": 79, - "acousticness": 0.539, - "danceability": 0.345, - "energy": 0.587, - "instrumentalness": 0.0731, - "key": 5, - "liveness": 0.119, - "loudness": -8.346, - "mode": 1, - "speechiness": 0.0364, - "tempo": 119.479, - "time_signature": 4, - "valence": 0.258 - }, - { - "track_name": "Pretty When You Cry", - "track_id": "6PnluwP0fjGnpIBsqTdUTq", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 234146, - "explicit": true, - "popularity": 79, - "acousticness": 0.399, - "danceability": 0.509, - "energy": 0.547, - "instrumentalness": 0, - "key": 10, - "liveness": 0.215, - "loudness": -6.548, - "mode": 0, - "speechiness": 0.0417, - "tempo": 109.436, - "time_signature": 4, - "valence": 0.197 - }, - { - "track_name": "Money Power Glory", - "track_id": "7Ms58r8G6Y0r1XLtpwoGxN", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 270680, - "explicit": false, - "popularity": 68, - "acousticness": 0.583, - "danceability": 0.349, - "energy": 0.525, - "instrumentalness": 0, - "key": 8, - "liveness": 0.35, - "loudness": -6.829, - "mode": 0, - "speechiness": 0.0451, - "tempo": 136.762, - "time_signature": 5, - "valence": 0.288 - }, - { - "track_name": "Fucked My Way Up To The Top", - "track_id": "70Laus6ozJIHDpfTtUSmAZ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 212226, - "explicit": true, - "popularity": 67, - "acousticness": 0.601, - "danceability": 0.52, - "energy": 0.69, - "instrumentalness": 0.201, - "key": 5, - "liveness": 0.137, - "loudness": -5.919, - "mode": 1, - "speechiness": 0.0554, - "tempo": 129.839, - "time_signature": 4, - "valence": 0.182 - }, - { - "track_name": "Old Money", - "track_id": "6IfPyMb0Sxptpx6jBUATOS", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 271480, - "explicit": false, - "popularity": 70, - "acousticness": 0.888, - "danceability": 0.312, - "energy": 0.168, - "instrumentalness": 6.59e-06, - "key": 10, - "liveness": 0.147, - "loudness": -12.476, - "mode": 0, - "speechiness": 0.0332, - "tempo": 108.115, - "time_signature": 1, - "valence": 0.154 - }, - { - "track_name": "The Other Woman", - "track_id": "1KuVEZR4xuQVNr1KkanAV4", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 181960, - "explicit": false, - "popularity": 78, - "acousticness": 0.822, - "danceability": 0.255, - "energy": 0.468, - "instrumentalness": 0.248, - "key": 7, - "liveness": 0.339, - "loudness": -6.43, - "mode": 0, - "speechiness": 0.0317, - "tempo": 111.67, - "time_signature": 4, - "valence": 0.175 - }, - { - "track_name": "Black Beauty", - "track_id": "63hHlajVLQnlFMAqSyePxO", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 314533, - "explicit": false, - "popularity": 70, - "acousticness": 0.27, - "danceability": 0.32, - "energy": 0.529, - "instrumentalness": 0.0136, - "key": 5, - "liveness": 0.0942, - "loudness": -7.595, - "mode": 1, - "speechiness": 0.0436, - "tempo": 119.898, - "time_signature": 4, - "valence": 0.103 - }, - { - "track_name": "Guns And Roses", - "track_id": "0vfPEfQk0ZCHExTZ007Ryr", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 270640, - "explicit": false, - "popularity": 62, - "acousticness": 0.3, - "danceability": 0.533, - "energy": 0.666, - "instrumentalness": 0.00862, - "key": 8, - "liveness": 0.115, - "loudness": -8.957, - "mode": 0, - "speechiness": 0.0448, - "tempo": 108.928, - "time_signature": 4, - "valence": 0.343 - }, - { - "track_name": "Florida Kilos", - "track_id": "0iQPnK3bi7O27c5T2HBTdr", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1ORxRsK3MrSLvh7VQTF01F" - ], - "duration_ms": 256040, - "explicit": false, - "popularity": 68, - "acousticness": 0.28, - "danceability": 0.266, - "energy": 0.513, - "instrumentalness": 5.98e-05, - "key": 0, - "liveness": 0.11, - "loudness": -7.852, - "mode": 1, - "speechiness": 0.0388, - "tempo": 200.781, - "time_signature": 4, - "valence": 0.579 - } - ], - [ - { - "track_name": "Ride", - "track_id": "4RnVVU2wewkcPYEZAMFBrr", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 289080, - "explicit": true, - "popularity": 51, - "acousticness": 0.128, - "danceability": 0.373, - "energy": 0.686, - "instrumentalness": 1.96e-06, - "key": 0, - "liveness": 0.383, - "loudness": -5.52, - "mode": 1, - "speechiness": 0.034, - "tempo": 93.763, - "time_signature": 4, - "valence": 0.189 - }, - { - "track_name": "American", - "track_id": "3B5zfx7WDlIzoLephvyrfc", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 248907, - "explicit": false, - "popularity": 45, - "acousticness": 0.535, - "danceability": 0.397, - "energy": 0.585, - "instrumentalness": 0.000438, - "key": 7, - "liveness": 0.0976, - "loudness": -6.518, - "mode": 1, - "speechiness": 0.0359, - "tempo": 143.983, - "time_signature": 4, - "valence": 0.18 - }, - { - "track_name": "Cola", - "track_id": "29ryZ3PkPU9SKe3ZAIwnrJ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 260893, - "explicit": true, - "popularity": 48, - "acousticness": 0.0699, - "danceability": 0.298, - "energy": 0.668, - "instrumentalness": 2.44e-05, - "key": 1, - "liveness": 0.59, - "loudness": -5.536, - "mode": 0, - "speechiness": 0.0478, - "tempo": 110.063, - "time_signature": 4, - "valence": 0.121 - }, - { - "track_name": "Body Electric", - "track_id": "1ApG71dw2jb1wDnFvc8BIg", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 233440, - "explicit": false, - "popularity": 45, - "acousticness": 0.466, - "danceability": 0.245, - "energy": 0.492, - "instrumentalness": 0, - "key": 1, - "liveness": 0.0851, - "loudness": -9.397, - "mode": 0, - "speechiness": 0.0593, - "tempo": 167.7, - "time_signature": 3, - "valence": 0.104 - }, - { - "track_name": "Blue Velvet", - "track_id": "1aWMKK349BWlQYuwJWUlc8", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 158653, - "explicit": false, - "popularity": 45, - "acousticness": 0.812, - "danceability": 0.189, - "energy": 0.317, - "instrumentalness": 0.0719, - "key": 10, - "liveness": 0.214, - "loudness": -8.631, - "mode": 1, - "speechiness": 0.028, - "tempo": 84.809, - "time_signature": 4, - "valence": 0.251 - }, - { - "track_name": "Gods & Monsters", - "track_id": "2Yk8tgWVPzpEm0seo3xle6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 237640, - "explicit": true, - "popularity": 47, - "acousticness": 0.00193, - "danceability": 0.352, - "energy": 0.725, - "instrumentalness": 2.73e-06, - "key": 8, - "liveness": 0.22, - "loudness": -6.463, - "mode": 0, - "speechiness": 0.0656, - "tempo": 189.767, - "time_signature": 4, - "valence": 0.339 - }, - { - "track_name": "Yayo", - "track_id": "0DMjfjjSarASsvf4VheeHY", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 321053, - "explicit": false, - "popularity": 43, - "acousticness": 0.926, - "danceability": 0.506, - "energy": 0.201, - "instrumentalness": 0.000411, - "key": 3, - "liveness": 0.253, - "loudness": -12.931, - "mode": 0, - "speechiness": 0.0294, - "tempo": 71.925, - "time_signature": 4, - "valence": 0.145 - }, - { - "track_name": "Bel Air", - "track_id": "0e53YdXW9rJSxAI07UpO1s", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3Sn5DDHo0l6lxSYVo8CqdK" - ], - "duration_ms": 237640, - "explicit": false, - "popularity": 43, - "acousticness": 0.864, - "danceability": 0.346, - "energy": 0.42, - "instrumentalness": 0.0875, - "key": 2, - "liveness": 0.901, - "loudness": -11.506, - "mode": 0, - "speechiness": 0.0298, - "tempo": 83.56, - "time_signature": 4, - "valence": 0.303 - } - ], - [ - { - "track_name": "Born To Die", - "track_id": "5kMAugdkH2coRHRnW5FuDb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 286253, - "explicit": false, - "popularity": 58, - "acousticness": 0.186, - "danceability": 0.316, - "energy": 0.636, - "instrumentalness": 0.00016, - "key": 4, - "liveness": 0.198, - "loudness": -6.631, - "mode": 0, - "speechiness": 0.0424, - "tempo": 171.564, - "time_signature": 4, - "valence": 0.4 - }, - { - "track_name": "Off To The Races", - "track_id": "2MPXgW4JEswl0T70mI2Lli", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 299933, - "explicit": false, - "popularity": 53, - "acousticness": 0.0633, - "danceability": 0.392, - "energy": 0.724, - "instrumentalness": 0.00192, - "key": 4, - "liveness": 0.407, - "loudness": -5.566, - "mode": 0, - "speechiness": 0.0594, - "tempo": 160.09, - "time_signature": 4, - "valence": 0.129 - }, - { - "track_name": "Blue Jeans - Remastered 2011", - "track_id": "1NsczXihNwzVMRLxTehCmM", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 209440, - "explicit": true, - "popularity": 53, - "acousticness": 0.437, - "danceability": 0.55, - "energy": 0.829, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0801, - "loudness": -4.399, - "mode": 1, - "speechiness": 0.0629, - "tempo": 117.956, - "time_signature": 4, - "valence": 0.493 - }, - { - "track_name": "Video Games", - "track_id": "3SSdi65qoBl2FdsBWtccre", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 281946, - "explicit": false, - "popularity": 56, - "acousticness": 0.812, - "danceability": 0.251, - "energy": 0.256, - "instrumentalness": 0, - "key": 6, - "liveness": 0.0884, - "loudness": -9.682, - "mode": 0, - "speechiness": 0.0311, - "tempo": 82.29, - "time_signature": 5, - "valence": 0.168 - }, - { - "track_name": "Diet Mountain Dew", - "track_id": "21xo9jhNSsYyNk8TRKBkY0", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 222920, - "explicit": false, - "popularity": 58, - "acousticness": 0.285, - "danceability": 0.459, - "energy": 0.684, - "instrumentalness": 0, - "key": 10, - "liveness": 0.425, - "loudness": -5.971, - "mode": 0, - "speechiness": 0.0881, - "tempo": 175.728, - "time_signature": 4, - "valence": 0.605 - }, - { - "track_name": "National Anthem", - "track_id": "5JyDveG5JnK2PqEXtETUp1", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 230533, - "explicit": false, - "popularity": 60, - "acousticness": 0.542, - "danceability": 0.538, - "energy": 0.901, - "instrumentalness": 0.000152, - "key": 0, - "liveness": 0.101, - "loudness": -5.999, - "mode": 0, - "speechiness": 0.215, - "tempo": 84.951, - "time_signature": 4, - "valence": 0.423 - }, - { - "track_name": "Dark Paradise", - "track_id": "2wObnNMZce8ntVt8fckSuX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 243173, - "explicit": false, - "popularity": 52, - "acousticness": 0.117, - "danceability": 0.579, - "energy": 0.636, - "instrumentalness": 0, - "key": 1, - "liveness": 0.172, - "loudness": -8.354, - "mode": 0, - "speechiness": 0.0649, - "tempo": 120.041, - "time_signature": 4, - "valence": 0.403 - }, - { - "track_name": "Radio", - "track_id": "7tk7sKS35NTjOPCKsh9Y7f", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 214586, - "explicit": true, - "popularity": 54, - "acousticness": 0.219, - "danceability": 0.326, - "energy": 0.843, - "instrumentalness": 2.63e-05, - "key": 2, - "liveness": 0.0877, - "loudness": -5.242, - "mode": 1, - "speechiness": 0.0893, - "tempo": 75.139, - "time_signature": 4, - "valence": 0.167 - }, - { - "track_name": "Carmen", - "track_id": "4px9Zlkyc0YvabKt11kQaX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 248720, - "explicit": false, - "popularity": 51, - "acousticness": 0.0864, - "danceability": 0.506, - "energy": 0.424, - "instrumentalness": 0.000376, - "key": 1, - "liveness": 0.127, - "loudness": -9.568, - "mode": 0, - "speechiness": 0.0317, - "tempo": 100.017, - "time_signature": 4, - "valence": 0.038 - }, - { - "track_name": "Million Dollar Man", - "track_id": "5CKtWWyUYLYOXr720B8eT2", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 230120, - "explicit": false, - "popularity": 52, - "acousticness": 0.494, - "danceability": 0.201, - "energy": 0.586, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0662, - "loudness": -5.979, - "mode": 0, - "speechiness": 0.0566, - "tempo": 195.767, - "time_signature": 3, - "valence": 0.532 - }, - { - "track_name": "Summertime Sadness", - "track_id": "61ZGyX8OgIlxJZkZn64IjO", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 264773, - "explicit": false, - "popularity": 55, - "acousticness": 0.051, - "danceability": 0.564, - "energy": 0.649, - "instrumentalness": 0, - "key": 1, - "liveness": 0.121, - "loudness": -6.811, - "mode": 0, - "speechiness": 0.0333, - "tempo": 111.949, - "time_signature": 4, - "valence": 0.201 - }, - { - "track_name": "This Is What Makes Us Girls", - "track_id": "3o5qyByGDqCLLt9yDR0LsH", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4vXt6IpMcSnqonljffWlMI" - ], - "duration_ms": 240306, - "explicit": false, - "popularity": 50, - "acousticness": 0.101, - "danceability": 0.534, - "energy": 0.837, - "instrumentalness": 0.0211, - "key": 2, - "liveness": 0.19, - "loudness": -6.9, - "mode": 0, - "speechiness": 0.104, - "tempo": 138.04, - "time_signature": 4, - "valence": 0.423 - } - ], - [ - { - "track_name": "Born To Die", - "track_id": "5wEreUfwxZxWnEol61ulIi", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 286253, - "explicit": false, - "popularity": 69, - "acousticness": 0.2, - "danceability": 0.393, - "energy": 0.634, - "instrumentalness": 0.000166, - "key": 4, - "liveness": 0.198, - "loudness": -6.629, - "mode": 0, - "speechiness": 0.0378, - "tempo": 85.767, - "time_signature": 4, - "valence": 0.395 - }, - { - "track_name": "Off To The Races", - "track_id": "4dtbA0yooUSB9wLisRuJby", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 299933, - "explicit": false, - "popularity": 57, - "acousticness": 0.0601, - "danceability": 0.398, - "energy": 0.724, - "instrumentalness": 0.00205, - "key": 4, - "liveness": 0.406, - "loudness": -5.566, - "mode": 0, - "speechiness": 0.0604, - "tempo": 160.068, - "time_signature": 4, - "valence": 0.126 - }, - { - "track_name": "Blue Jeans - Remastered 2011", - "track_id": "77XvocHaWXkG39G4qag6BG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 209440, - "explicit": true, - "popularity": 59, - "acousticness": 0.432, - "danceability": 0.553, - "energy": 0.828, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0801, - "loudness": -4.399, - "mode": 1, - "speechiness": 0.0635, - "tempo": 117.948, - "time_signature": 4, - "valence": 0.504 - }, - { - "track_name": "Video Games", - "track_id": "3WD91HQDBIavSapet3ZpjG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 281946, - "explicit": false, - "popularity": 72, - "acousticness": 0.808, - "danceability": 0.39, - "energy": 0.252, - "instrumentalness": 0, - "key": 6, - "liveness": 0.0887, - "loudness": -9.666, - "mode": 0, - "speechiness": 0.0298, - "tempo": 122.053, - "time_signature": 4, - "valence": 0.181 - }, - { - "track_name": "Diet Mountain Dew", - "track_id": "6BFnRhvKCclDQOajt8dBGi", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 222920, - "explicit": false, - "popularity": 73, - "acousticness": 0.284, - "danceability": 0.442, - "energy": 0.68, - "instrumentalness": 0, - "key": 10, - "liveness": 0.421, - "loudness": -5.971, - "mode": 0, - "speechiness": 0.0858, - "tempo": 176.09, - "time_signature": 4, - "valence": 0.601 - }, - { - "track_name": "National Anthem", - "track_id": "2nvXyajLAAV9Iwy8K9EbUd", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 230533, - "explicit": false, - "popularity": 68, - "acousticness": 0.566, - "danceability": 0.533, - "energy": 0.901, - "instrumentalness": 0.000147, - "key": 0, - "liveness": 0.102, - "loudness": -6.008, - "mode": 0, - "speechiness": 0.24, - "tempo": 84.959, - "time_signature": 4, - "valence": 0.432 - }, - { - "track_name": "Dark Paradise", - "track_id": "349XIp8EgHWJiIg5K0CUft", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 243173, - "explicit": false, - "popularity": 64, - "acousticness": 0.114, - "danceability": 0.582, - "energy": 0.637, - "instrumentalness": 0, - "key": 11, - "liveness": 0.155, - "loudness": -8.347, - "mode": 0, - "speechiness": 0.0621, - "tempo": 119.996, - "time_signature": 4, - "valence": 0.411 - }, - { - "track_name": "Radio", - "track_id": "3QhfFRPkhPCR1RMJWV1gde", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 214586, - "explicit": true, - "popularity": 76, - "acousticness": 0.215, - "danceability": 0.42, - "energy": 0.837, - "instrumentalness": 2.96e-05, - "key": 2, - "liveness": 0.0876, - "loudness": -5.24, - "mode": 1, - "speechiness": 0.061, - "tempo": 75.043, - "time_signature": 4, - "valence": 0.196 - }, - { - "track_name": "Carmen", - "track_id": "5wmkKoVBUuXt6Iemn9Xnwe", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 248720, - "explicit": false, - "popularity": 55, - "acousticness": 0.0878, - "danceability": 0.514, - "energy": 0.426, - "instrumentalness": 0.000334, - "key": 1, - "liveness": 0.13, - "loudness": -9.557, - "mode": 0, - "speechiness": 0.0303, - "tempo": 100.029, - "time_signature": 4, - "valence": 0.0377 - }, - { - "track_name": "Million Dollar Man", - "track_id": "4fdalZcclcvcx5N1lytlNL", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 230120, - "explicit": false, - "popularity": 57, - "acousticness": 0.502, - "danceability": 0.201, - "energy": 0.589, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0663, - "loudness": -5.97, - "mode": 0, - "speechiness": 0.0458, - "tempo": 197.847, - "time_signature": 3, - "valence": 0.55 - }, - { - "track_name": "Summertime Sadness", - "track_id": "1Ist6PR2BZR3n2z2Y5R6S1", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 264773, - "explicit": false, - "popularity": 78, - "acousticness": 0.0477, - "danceability": 0.566, - "energy": 0.647, - "instrumentalness": 0, - "key": 1, - "liveness": 0.121, - "loudness": -6.815, - "mode": 0, - "speechiness": 0.0335, - "tempo": 111.96, - "time_signature": 4, - "valence": 0.22 - }, - { - "track_name": "This Is What Makes Us Girls", - "track_id": "2oYbXLPGYQvSv6RjSh6t7R", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 238373, - "explicit": false, - "popularity": 56, - "acousticness": 0.103, - "danceability": 0.533, - "energy": 0.835, - "instrumentalness": 0.0203, - "key": 2, - "liveness": 0.189, - "loudness": -6.897, - "mode": 0, - "speechiness": 0.101, - "tempo": 138.023, - "time_signature": 4, - "valence": 0.438 - }, - { - "track_name": "Without You", - "track_id": "4r3v5fSWyEoZR7HQVUcYYb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 228933, - "explicit": false, - "popularity": 53, - "acousticness": 0.693, - "danceability": 0.586, - "energy": 0.575, - "instrumentalness": 0.00022, - "key": 3, - "liveness": 0.126, - "loudness": -8.404, - "mode": 0, - "speechiness": 0.0372, - "tempo": 111.948, - "time_signature": 4, - "valence": 0.595 - }, - { - "track_name": "Lolita", - "track_id": "611HJpx18KLwj4yAR9loYk", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 219026, - "explicit": false, - "popularity": 57, - "acousticness": 0.0821, - "danceability": 0.503, - "energy": 0.94, - "instrumentalness": 4.74e-05, - "key": 0, - "liveness": 0.339, - "loudness": -4.28, - "mode": 0, - "speechiness": 0.107, - "tempo": 136.001, - "time_signature": 4, - "valence": 0.151 - }, - { - "track_name": "Lucky Ones", - "track_id": "4GemDvQ88hjDKT1hWDJcLf", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 227306, - "explicit": false, - "popularity": 50, - "acousticness": 0.792, - "danceability": 0.321, - "energy": 0.425, - "instrumentalness": 7.16e-06, - "key": 0, - "liveness": 0.146, - "loudness": -7.19, - "mode": 1, - "speechiness": 0.0286, - "tempo": 134.436, - "time_signature": 4, - "valence": 0.319 - }, - { - "track_name": "Ride", - "track_id": "0ZyfiFudK9Si2n2G9RkiWj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 289080, - "explicit": true, - "popularity": 64, - "acousticness": 0.128, - "danceability": 0.373, - "energy": 0.686, - "instrumentalness": 1.96e-06, - "key": 0, - "liveness": 0.383, - "loudness": -5.52, - "mode": 1, - "speechiness": 0.034, - "tempo": 93.763, - "time_signature": 4, - "valence": 0.189 - }, - { - "track_name": "American", - "track_id": "7uwOtFROjnFIhozLrqbp4R", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 248907, - "explicit": false, - "popularity": 51, - "acousticness": 0.535, - "danceability": 0.397, - "energy": 0.585, - "instrumentalness": 0.000438, - "key": 7, - "liveness": 0.0976, - "loudness": -6.518, - "mode": 1, - "speechiness": 0.0359, - "tempo": 143.983, - "time_signature": 4, - "valence": 0.18 - }, - { - "track_name": "Cola", - "track_id": "4XjYVIweUldL23o4wsgQ3c", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 260893, - "explicit": true, - "popularity": 59, - "acousticness": 0.0699, - "danceability": 0.298, - "energy": 0.668, - "instrumentalness": 2.44e-05, - "key": 1, - "liveness": 0.59, - "loudness": -5.536, - "mode": 0, - "speechiness": 0.0478, - "tempo": 110.063, - "time_signature": 4, - "valence": 0.121 - }, - { - "track_name": "Body Electric", - "track_id": "3mCftPkn17Jyn2j116sWWc", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 233440, - "explicit": false, - "popularity": 52, - "acousticness": 0.466, - "danceability": 0.245, - "energy": 0.492, - "instrumentalness": 0, - "key": 1, - "liveness": 0.0851, - "loudness": -9.397, - "mode": 0, - "speechiness": 0.0593, - "tempo": 167.7, - "time_signature": 3, - "valence": 0.104 - }, - { - "track_name": "Blue Velvet", - "track_id": "6ad3ZfAQ6zYiRCdXYXoOrG", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 158653, - "explicit": false, - "popularity": 51, - "acousticness": 0.812, - "danceability": 0.189, - "energy": 0.317, - "instrumentalness": 0.0719, - "key": 10, - "liveness": 0.214, - "loudness": -8.631, - "mode": 1, - "speechiness": 0.028, - "tempo": 84.808, - "time_signature": 4, - "valence": 0.251 - }, - { - "track_name": "Gods & Monsters", - "track_id": "6sGaavvDeGTY3wV9hzIEOP", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 237640, - "explicit": true, - "popularity": 56, - "acousticness": 0.00193, - "danceability": 0.352, - "energy": 0.725, - "instrumentalness": 2.73e-06, - "key": 8, - "liveness": 0.22, - "loudness": -6.463, - "mode": 0, - "speechiness": 0.0656, - "tempo": 189.767, - "time_signature": 4, - "valence": 0.339 - }, - { - "track_name": "Yayo", - "track_id": "34l2nKu9kSj0BZahVIAT3L", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 321053, - "explicit": false, - "popularity": 50, - "acousticness": 0.926, - "danceability": 0.506, - "energy": 0.201, - "instrumentalness": 0.000411, - "key": 3, - "liveness": 0.253, - "loudness": -12.931, - "mode": 0, - "speechiness": 0.0294, - "tempo": 71.925, - "time_signature": 4, - "valence": 0.145 - }, - { - "track_name": "Bel Air", - "track_id": "5PBQHazfwCEZSopxLOLXmF", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 237640, - "explicit": false, - "popularity": 49, - "acousticness": 0.864, - "danceability": 0.346, - "energy": 0.42, - "instrumentalness": 0.0875, - "key": 2, - "liveness": 0.901, - "loudness": -11.506, - "mode": 0, - "speechiness": 0.0298, - "tempo": 83.56, - "time_signature": 4, - "valence": 0.303 - }, - { - "track_name": "Burning Desire", - "track_id": "2Za7Yhteh4XcUXnNYxTIHH", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0Dt3FbpMQwjoT5KNAw0IXR" - ], - "duration_ms": 231132, - "explicit": false, - "popularity": 63, - "acousticness": 0.842, - "danceability": 0.481, - "energy": 0.641, - "instrumentalness": 0.00454, - "key": 7, - "liveness": 0.134, - "loudness": -10.8, - "mode": 1, - "speechiness": 0.132, - "tempo": 131.812, - "time_signature": 4, - "valence": 0.161 - } - ], - [ - { - "track_name": "Born To Die", - "track_id": "4Ouhoi2lAhrLJKFzUqEzwl", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 285400, - "explicit": false, - "popularity": 77, - "acousticness": 0.222, - "danceability": 0.428, - "energy": 0.626, - "instrumentalness": 8.22e-05, - "key": 4, - "liveness": 0.277, - "loudness": -6.639, - "mode": 0, - "speechiness": 0.0339, - "tempo": 86.02, - "time_signature": 4, - "valence": 0.379 - }, - { - "track_name": "Off To The Races", - "track_id": "3uUCgL0cbSd0isnqhHCm1f", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 299933, - "explicit": false, - "popularity": 66, - "acousticness": 0.0621, - "danceability": 0.399, - "energy": 0.721, - "instrumentalness": 0.00282, - "key": 4, - "liveness": 0.278, - "loudness": -5.562, - "mode": 0, - "speechiness": 0.0523, - "tempo": 160.125, - "time_signature": 4, - "valence": 0.113 - }, - { - "track_name": "Blue Jeans", - "track_id": "4RyK6N4IQ85xxLgguQAFH5", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 209440, - "explicit": true, - "popularity": 71, - "acousticness": 0.418, - "danceability": 0.558, - "energy": 0.837, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0821, - "loudness": -4.405, - "mode": 1, - "speechiness": 0.0633, - "tempo": 117.963, - "time_signature": 4, - "valence": 0.488 - }, - { - "track_name": "Video Games", - "track_id": "0fBSs3fRoh1yJcne77fdu9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 281960, - "explicit": false, - "popularity": 79, - "acousticness": 0.811, - "danceability": 0.236, - "energy": 0.249, - "instrumentalness": 1e-06, - "key": 6, - "liveness": 0.087, - "loudness": -9.595, - "mode": 0, - "speechiness": 0.0348, - "tempo": 72.847, - "time_signature": 5, - "valence": 0.181 - }, - { - "track_name": "Diet Mountain Dew", - "track_id": "2vtmY2mSccRzKGjtcHSzI3", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 222920, - "explicit": false, - "popularity": 80, - "acousticness": 0.276, - "danceability": 0.595, - "energy": 0.696, - "instrumentalness": 0, - "key": 10, - "liveness": 0.411, - "loudness": -5.921, - "mode": 0, - "speechiness": 0.0417, - "tempo": 88.013, - "time_signature": 4, - "valence": 0.533 - }, - { - "track_name": "National Anthem", - "track_id": "7cNz65PfCatRXoX7QtqM2A", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 230520, - "explicit": false, - "popularity": 76, - "acousticness": 0.531, - "danceability": 0.532, - "energy": 0.899, - "instrumentalness": 0.000146, - "key": 0, - "liveness": 0.0957, - "loudness": -5.935, - "mode": 0, - "speechiness": 0.244, - "tempo": 85.0, - "time_signature": 4, - "valence": 0.436 - }, - { - "track_name": "Dark Paradise", - "track_id": "6qqdFWe7C4LsBjWbXQdsHA", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 243187, - "explicit": false, - "popularity": 73, - "acousticness": 0.0953, - "danceability": 0.6, - "energy": 0.653, - "instrumentalness": 0, - "key": 1, - "liveness": 0.122, - "loudness": -8.309, - "mode": 0, - "speechiness": 0.0594, - "tempo": 119.994, - "time_signature": 4, - "valence": 0.43 - }, - { - "track_name": "Radio", - "track_id": "3taCbWWTilb7eNMsAzOBq4", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 214573, - "explicit": true, - "popularity": 83, - "acousticness": 0.188, - "danceability": 0.423, - "energy": 0.857, - "instrumentalness": 2.63e-05, - "key": 2, - "liveness": 0.105, - "loudness": -5.173, - "mode": 1, - "speechiness": 0.0687, - "tempo": 75.024, - "time_signature": 4, - "valence": 0.196 - }, - { - "track_name": "Carmen", - "track_id": "1FaHPLv48VjsTkPCQOH7bv", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 248720, - "explicit": false, - "popularity": 65, - "acousticness": 0.098, - "danceability": 0.524, - "energy": 0.427, - "instrumentalness": 0.000273, - "key": 1, - "liveness": 0.129, - "loudness": -9.57, - "mode": 0, - "speechiness": 0.0297, - "tempo": 100.024, - "time_signature": 4, - "valence": 0.0379 - }, - { - "track_name": "Million Dollar Man", - "track_id": "7LQKuOaqJrNgVIGLFnfvdn", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 231573, - "explicit": false, - "popularity": 67, - "acousticness": 0.484, - "danceability": 0.382, - "energy": 0.589, - "instrumentalness": 0, - "key": 6, - "liveness": 0.131, - "loudness": -5.991, - "mode": 1, - "speechiness": 0.0359, - "tempo": 65.627, - "time_signature": 4, - "valence": 0.511 - }, - { - "track_name": "Summertime Sadness", - "track_id": "3BJe4B8zGnqEdQPMvfVjuS", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 265427, - "explicit": false, - "popularity": 86, - "acousticness": 0.0542, - "danceability": 0.565, - "energy": 0.654, - "instrumentalness": 1.8e-06, - "key": 1, - "liveness": 0.122, - "loudness": -6.826, - "mode": 0, - "speechiness": 0.0335, - "tempo": 111.968, - "time_signature": 4, - "valence": 0.235 - }, - { - "track_name": "This Is What Makes Us Girls", - "track_id": "1Lw2xRuW5fcieRPfoskgog", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 238427, - "explicit": false, - "popularity": 62, - "acousticness": 0.0904, - "danceability": 0.534, - "energy": 0.842, - "instrumentalness": 0.0388, - "key": 2, - "liveness": 0.203, - "loudness": -7.031, - "mode": 0, - "speechiness": 0.0925, - "tempo": 138.004, - "time_signature": 4, - "valence": 0.441 - }, - { - "track_name": "Without You", - "track_id": "6g4RVB6qiuySTw9FCV1HEM", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 229293, - "explicit": false, - "popularity": 61, - "acousticness": 0.636, - "danceability": 0.586, - "energy": 0.593, - "instrumentalness": 0.000131, - "key": 6, - "liveness": 0.115, - "loudness": -8.394, - "mode": 1, - "speechiness": 0.0329, - "tempo": 111.942, - "time_signature": 4, - "valence": 0.668 - }, - { - "track_name": "Lolita", - "track_id": "4MDpkzAyG2X0dmtOU0ZESX", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 220040, - "explicit": false, - "popularity": 64, - "acousticness": 0.0744, - "danceability": 0.493, - "energy": 0.946, - "instrumentalness": 4.89e-05, - "key": 0, - "liveness": 0.351, - "loudness": -4.304, - "mode": 0, - "speechiness": 0.124, - "tempo": 135.955, - "time_signature": 4, - "valence": 0.134 - }, - { - "track_name": "Lucky Ones", - "track_id": "24h1notzzKOcLZSdRYa7yn", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 225069, - "explicit": false, - "popularity": 58, - "acousticness": 0.778, - "danceability": 0.375, - "energy": 0.416, - "instrumentalness": 2.48e-06, - "key": 0, - "liveness": 0.23, - "loudness": -7.149, - "mode": 1, - "speechiness": 0.0283, - "tempo": 134.923, - "time_signature": 4, - "valence": 0.271 - }, - { - "track_name": "Ride", - "track_id": "7yFMhCJOsH7khgpdnyrZAZ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 289080, - "explicit": true, - "popularity": 71, - "acousticness": 0.128, - "danceability": 0.373, - "energy": 0.686, - "instrumentalness": 1.96e-06, - "key": 0, - "liveness": 0.383, - "loudness": -5.52, - "mode": 1, - "speechiness": 0.034, - "tempo": 93.763, - "time_signature": 4, - "valence": 0.189 - }, - { - "track_name": "American", - "track_id": "1Yfgbr2kZrb3u0NP8ioyuk", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 248907, - "explicit": false, - "popularity": 58, - "acousticness": 0.535, - "danceability": 0.397, - "energy": 0.585, - "instrumentalness": 0.000438, - "key": 7, - "liveness": 0.0976, - "loudness": -6.518, - "mode": 1, - "speechiness": 0.0359, - "tempo": 143.983, - "time_signature": 4, - "valence": 0.18 - }, - { - "track_name": "Cola", - "track_id": "3I5azi0831uNpYQsfYsW7G", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 260893, - "explicit": true, - "popularity": 67, - "acousticness": 0.0699, - "danceability": 0.298, - "energy": 0.668, - "instrumentalness": 2.44e-05, - "key": 1, - "liveness": 0.59, - "loudness": -5.536, - "mode": 0, - "speechiness": 0.0478, - "tempo": 110.063, - "time_signature": 4, - "valence": 0.121 - }, - { - "track_name": "Body Electric", - "track_id": "5ZyM4VMzHSaz8OlIZRuZBH", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 233440, - "explicit": false, - "popularity": 59, - "acousticness": 0.466, - "danceability": 0.245, - "energy": 0.492, - "instrumentalness": 0, - "key": 1, - "liveness": 0.0851, - "loudness": -9.397, - "mode": 0, - "speechiness": 0.0593, - "tempo": 167.7, - "time_signature": 3, - "valence": 0.104 - }, - { - "track_name": "Blue Velvet", - "track_id": "5SzoFexynLVceTLggJTZZM", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 158653, - "explicit": false, - "popularity": 57, - "acousticness": 0.812, - "danceability": 0.189, - "energy": 0.317, - "instrumentalness": 0.0719, - "key": 10, - "liveness": 0.214, - "loudness": -8.631, - "mode": 1, - "speechiness": 0.028, - "tempo": 84.809, - "time_signature": 4, - "valence": 0.251 - }, - { - "track_name": "Gods & Monsters", - "track_id": "4uhSo9cVBVpdDCNxf4MBaP", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 237640, - "explicit": true, - "popularity": 62, - "acousticness": 0.00193, - "danceability": 0.352, - "energy": 0.725, - "instrumentalness": 2.73e-06, - "key": 8, - "liveness": 0.22, - "loudness": -6.463, - "mode": 0, - "speechiness": 0.0656, - "tempo": 189.767, - "time_signature": 4, - "valence": 0.339 - }, - { - "track_name": "Yayo", - "track_id": "2rldjI2fK6nYwlMgaITluf", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 321053, - "explicit": false, - "popularity": 56, - "acousticness": 0.926, - "danceability": 0.506, - "energy": 0.201, - "instrumentalness": 0.000411, - "key": 3, - "liveness": 0.253, - "loudness": -12.931, - "mode": 0, - "speechiness": 0.0294, - "tempo": 71.925, - "time_signature": 4, - "valence": 0.145 - }, - { - "track_name": "Bel Air", - "track_id": "7E8A5k5VOhPmt6pGPDJhxQ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5VoeRuTrGhTbKelUfwymwu" - ], - "duration_ms": 237640, - "explicit": false, - "popularity": 56, - "acousticness": 0.864, - "danceability": 0.346, - "energy": 0.42, - "instrumentalness": 0.0875, - "key": 2, - "liveness": 0.901, - "loudness": -11.506, - "mode": 0, - "speechiness": 0.0298, - "tempo": 83.56, - "time_signature": 4, - "valence": 0.303 - } - ], - [ - { - "track_name": "Born To Die", - "track_id": "2wMby9pciuGUIP8q7y4Yn6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 286253, - "explicit": false, - "popularity": 63, - "acousticness": 0.209, - "danceability": 0.18, - "energy": 0.636, - "instrumentalness": 0.000133, - "key": 4, - "liveness": 0.217, - "loudness": -6.591, - "mode": 0, - "speechiness": 0.0439, - "tempo": 75.223, - "time_signature": 3, - "valence": 0.39 - }, - { - "track_name": "Off To The Races", - "track_id": "6W6EcslYX6aPakNdE0mgOb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 299933, - "explicit": false, - "popularity": 52, - "acousticness": 0.061, - "danceability": 0.4, - "energy": 0.722, - "instrumentalness": 0.00171, - "key": 4, - "liveness": 0.4, - "loudness": -5.566, - "mode": 0, - "speechiness": 0.062, - "tempo": 160.065, - "time_signature": 4, - "valence": 0.136 - }, - { - "track_name": "Blue Jeans - Remastered 2011", - "track_id": "10phyolyNLD2NXl0l2ou2x", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 209440, - "explicit": true, - "popularity": 53, - "acousticness": 0.439, - "danceability": 0.553, - "energy": 0.827, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0801, - "loudness": -4.391, - "mode": 1, - "speechiness": 0.0589, - "tempo": 117.956, - "time_signature": 4, - "valence": 0.528 - }, - { - "track_name": "Video Games", - "track_id": "7FDHI71Z3IInsEKuUn7Df8", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 281946, - "explicit": false, - "popularity": 62, - "acousticness": 0.806, - "danceability": 0.39, - "energy": 0.255, - "instrumentalness": 1.14e-06, - "key": 6, - "liveness": 0.0887, - "loudness": -9.676, - "mode": 0, - "speechiness": 0.0299, - "tempo": 122.056, - "time_signature": 4, - "valence": 0.179 - }, - { - "track_name": "Diet Mountain Dew", - "track_id": "3liOnWUe0m0bi4gjaBIkAu", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 222920, - "explicit": false, - "popularity": 56, - "acousticness": 0.282, - "danceability": 0.46, - "energy": 0.683, - "instrumentalness": 0, - "key": 10, - "liveness": 0.425, - "loudness": -5.97, - "mode": 0, - "speechiness": 0.0891, - "tempo": 175.743, - "time_signature": 4, - "valence": 0.592 - }, - { - "track_name": "National Anthem", - "track_id": "5yn5uVJVsp7zZq1nWJWeJ3", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 230533, - "explicit": false, - "popularity": 60, - "acousticness": 0.548, - "danceability": 0.535, - "energy": 0.902, - "instrumentalness": 0.000163, - "key": 0, - "liveness": 0.109, - "loudness": -6.001, - "mode": 0, - "speechiness": 0.234, - "tempo": 84.929, - "time_signature": 4, - "valence": 0.415 - }, - { - "track_name": "Dark Paradise", - "track_id": "4TJkBJ9S2YCD6ZvvL0Xxac", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 243173, - "explicit": false, - "popularity": 53, - "acousticness": 0.12, - "danceability": 0.586, - "energy": 0.641, - "instrumentalness": 0, - "key": 1, - "liveness": 0.168, - "loudness": -8.342, - "mode": 0, - "speechiness": 0.0634, - "tempo": 120.015, - "time_signature": 4, - "valence": 0.402 - }, - { - "track_name": "Radio", - "track_id": "5AsqDGKlZ7fGC6oeRIiPWx", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 214586, - "explicit": true, - "popularity": 56, - "acousticness": 0.217, - "danceability": 0.312, - "energy": 0.841, - "instrumentalness": 2.38e-05, - "key": 2, - "liveness": 0.0876, - "loudness": -5.244, - "mode": 1, - "speechiness": 0.0846, - "tempo": 75.112, - "time_signature": 4, - "valence": 0.185 - }, - { - "track_name": "Carmen", - "track_id": "6LLkQ3Y2AwclM0tHzxiYAb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 248720, - "explicit": false, - "popularity": 49, - "acousticness": 0.0879, - "danceability": 0.487, - "energy": 0.426, - "instrumentalness": 0.000392, - "key": 1, - "liveness": 0.128, - "loudness": -9.56, - "mode": 0, - "speechiness": 0.0317, - "tempo": 100.056, - "time_signature": 4, - "valence": 0.0376 - }, - { - "track_name": "Million Dollar Man", - "track_id": "0P11XLoH1nch5dDuYjYbnP", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 230120, - "explicit": false, - "popularity": 52, - "acousticness": 0.481, - "danceability": 0.2, - "energy": 0.581, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0662, - "loudness": -6.004, - "mode": 0, - "speechiness": 0.0462, - "tempo": 197.098, - "time_signature": 3, - "valence": 0.53 - }, - { - "track_name": "Summertime Sadness", - "track_id": "33CeM8NI7tfrNgciVOFMoo", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 264773, - "explicit": false, - "popularity": 62, - "acousticness": 0.0456, - "danceability": 0.565, - "energy": 0.647, - "instrumentalness": 0, - "key": 1, - "liveness": 0.121, - "loudness": -6.789, - "mode": 0, - "speechiness": 0.0334, - "tempo": 111.931, - "time_signature": 4, - "valence": 0.216 - }, - { - "track_name": "This Is What Makes Us Girls", - "track_id": "3PpoiQRu8eHNekbsrUKfPh", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 238373, - "explicit": false, - "popularity": 48, - "acousticness": 0.107, - "danceability": 0.531, - "energy": 0.829, - "instrumentalness": 0.0175, - "key": 2, - "liveness": 0.197, - "loudness": -6.889, - "mode": 0, - "speechiness": 0.108, - "tempo": 137.965, - "time_signature": 4, - "valence": 0.417 - }, - { - "track_name": "Without You", - "track_id": "5VwSqxGYSJSOiTdx9uJsMQ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 228933, - "explicit": false, - "popularity": 48, - "acousticness": 0.685, - "danceability": 0.587, - "energy": 0.578, - "instrumentalness": 0.000252, - "key": 3, - "liveness": 0.126, - "loudness": -8.424, - "mode": 0, - "speechiness": 0.0368, - "tempo": 111.939, - "time_signature": 4, - "valence": 0.593 - }, - { - "track_name": "Lolita", - "track_id": "2xGDnyckxU8v9C3100XoV3", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 219026, - "explicit": false, - "popularity": 49, - "acousticness": 0.0811, - "danceability": 0.504, - "energy": 0.942, - "instrumentalness": 3.17e-05, - "key": 0, - "liveness": 0.339, - "loudness": -4.28, - "mode": 0, - "speechiness": 0.102, - "tempo": 135.992, - "time_signature": 4, - "valence": 0.148 - }, - { - "track_name": "Lucky Ones", - "track_id": "7IJBUdmGhekulOkhct3WGD", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4F5dVhgk569Du5cLfal3t5" - ], - "duration_ms": 227306, - "explicit": false, - "popularity": 46, - "acousticness": 0.784, - "danceability": 0.23, - "energy": 0.423, - "instrumentalness": 6.52e-06, - "key": 0, - "liveness": 0.166, - "loudness": -7.195, - "mode": 1, - "speechiness": 0.0358, - "tempo": 74.221, - "time_signature": 1, - "valence": 0.308 - } - ], - [ - { - "track_name": "Suburban House", - "track_id": "676TvM26wVq88afbYDPRO3", - "artists": [ - "2E51tnARTxTvmYznDHfE5V", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4rFmHomF53LoM6DGOSeOwA" - ], - "duration_ms": 229878, - "explicit": false, - "popularity": 71, - "acousticness": 0.927, - "danceability": 0.323, - "energy": 0.228, - "instrumentalness": 0.000413, - "key": 0, - "liveness": 0.11, - "loudness": -10.601, - "mode": 1, - "speechiness": 0.0308, - "tempo": 130.941, - "time_signature": 3, - "valence": 0.189 - } - ], - [ - { - "track_name": "Hollywood Bowl", - "track_id": "1DAIGVQoOruWmlVYmpC0B7", - "artists": [ - "5Y1ry2fgj4VzEjWndZu8Rw", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7plBFX9EbmkHZnBbRtzKkA" - ], - "duration_ms": 253240, - "explicit": false, - "popularity": 55, - "acousticness": 0.983, - "danceability": 0.21, - "energy": 0.231, - "instrumentalness": 0.161, - "key": 6, - "liveness": 0.104, - "loudness": -11.669, - "mode": 1, - "speechiness": 0.0318, - "tempo": 174.645, - "time_signature": 3, - "valence": 0.398 - } - ], - [ - { - "track_name": "Lost at Sea", - "track_id": "6N7NO9Z1Hi6la8dqG3Aoew", - "artists": [ - "5Y1ry2fgj4VzEjWndZu8Rw", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5z82RVDMCeczopEXA5JghQ" - ], - "duration_ms": 187906, - "explicit": false, - "popularity": 55, - "acousticness": 0.957, - "danceability": 0.142, - "energy": 0.188, - "instrumentalness": 0.67, - "key": 3, - "liveness": 0.118, - "loudness": -13.704, - "mode": 0, - "speechiness": 0.0344, - "tempo": 167.87, - "time_signature": 4, - "valence": 0.114 - } - ], - [ - { - "track_name": "Say Yes To Heaven - Dot Major Remix", - "track_id": "0aVp8gdrXFsidPm0r0NggP", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "02KPkbCJoF0txgF3MN7KIh", - "3Bd1cgCjtCI32PYvDC3ynO" - ], - "albums": [ - "5lo8DzG3dfVN0BHD5cdFpV" - ], - "duration_ms": 243270, - "explicit": false, - "popularity": 43, - "acousticness": 0.0379, - "danceability": 0.699, - "energy": 0.754, - "instrumentalness": 0.00773, - "key": 6, - "liveness": 0.109, - "loudness": -7.145, - "mode": 0, - "speechiness": 0.0423, - "tempo": 127.016, - "time_signature": 4, - "valence": 0.319 - } - ], - [ - { - "track_name": "Say Yes To Heaven - Anyma Remix", - "track_id": "6YzWNNWyxVGC0eczvuUtmF", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4iBwchw0U0GZv5RfVYSMxN" - ], - "albums": [ - "35ZI8inROOaI4YkvOmCSLq" - ], - "duration_ms": 222076, - "explicit": false, - "popularity": 63, - "acousticness": 0.00272, - "danceability": 0.702, - "energy": 0.716, - "instrumentalness": 0.399, - "key": 6, - "liveness": 0.108, - "loudness": -6.09, - "mode": 0, - "speechiness": 0.0444, - "tempo": 127.003, - "time_signature": 4, - "valence": 0.347 - } - ], - [ - { - "track_name": "Say Yes To Heaven - AMANDUS 99 +++ DANZINGER 99 Remix", - "track_id": "7FpBzp5R4mE2Oxw0zCfOSV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5cM1C6lpKNN5jKiJewIJJW", - "2PBBBcDggmGWyvOY9HXmKZ" - ], - "albums": [ - "0BLw5pRPVDT5GrkbvIEKV6" - ], - "duration_ms": 131517, - "explicit": false, - "popularity": 38, - "acousticness": 0.235, - "danceability": 0.584, - "energy": 0.536, - "instrumentalness": 0.272, - "key": 6, - "liveness": 0.111, - "loudness": -9.096, - "mode": 0, - "speechiness": 0.0343, - "tempo": 132.877, - "time_signature": 4, - "valence": 0.625 - } - ], - [ - { - "track_name": "Say Yes To Heaven - sim0ne & Melo Nada Remix", - "track_id": "2A7n6aoRd0pxfwasvN4Fh9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "68sBUNLfzCGR5n2nImhFCV", - "7axOBN2EOcKsN9mRnvTKmI" - ], - "albums": [ - "7xIg7rC6R80DJqV0001u2J" - ], - "duration_ms": 253981, - "explicit": false, - "popularity": 60, - "acousticness": 0.0121, - "danceability": 0.635, - "energy": 0.869, - "instrumentalness": 0.526, - "key": 9, - "liveness": 0.0877, - "loudness": -5.99, - "mode": 0, - "speechiness": 0.06, - "tempo": 150.999, - "time_signature": 4, - "valence": 0.738 - }, - { - "track_name": "Say Yes To Heaven", - "track_id": "03wOsqNRdFZAgwo708sjw2", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7xIg7rC6R80DJqV0001u2J" - ], - "duration_ms": 209156, - "explicit": false, - "popularity": 47, - "acousticness": 0.749, - "danceability": 0.497, - "energy": 0.359, - "instrumentalness": 0.0923, - "key": 6, - "liveness": 0.117, - "loudness": -11.532, - "mode": 0, - "speechiness": 0.0259, - "tempo": 99.922, - "time_signature": 4, - "valence": 0.179 - } - ], - [ - { - "track_name": "Say Yes To Heaven", - "track_id": "6GGtHZgBycCgGBUhZo81xe", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6jVg0POvGYH1Pt6lISl3ok" - ], - "duration_ms": 209156, - "explicit": false, - "popularity": 89, - "acousticness": 0.709, - "danceability": 0.49, - "energy": 0.352, - "instrumentalness": 0.0856, - "key": 6, - "liveness": 0.114, - "loudness": -11.577, - "mode": 0, - "speechiness": 0.0254, - "tempo": 99.992, - "time_signature": 4, - "valence": 0.166 - }, - { - "track_name": "Say Yes To Heaven - Sped Up", - "track_id": "2f5WkystuejnBzgV18GTGa", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6jVg0POvGYH1Pt6lISl3ok" - ], - "duration_ms": 156116, - "explicit": false, - "popularity": 69, - "acousticness": 0.856, - "danceability": 0.499, - "energy": 0.448, - "instrumentalness": 0.0544, - "key": 10, - "liveness": 0.126, - "loudness": -9.961, - "mode": 0, - "speechiness": 0.0287, - "tempo": 133.891, - "time_signature": 4, - "valence": 0.183 - } - ], - [ - { - "track_name": "Summertime Sadness - Sped Up", - "track_id": "78dtqFPt7cvYgS2zTXtZKV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1YzaVDzA3EdEipDSUeNQER" - ], - "albums": [ - "29PibmV31F3q6DRVq7gzZc" - ], - "duration_ms": 197353, - "explicit": false, - "popularity": 71, - "acousticness": 0.0311, - "danceability": 0.509, - "energy": 0.84, - "instrumentalness": 0.000169, - "key": 5, - "liveness": 0.0969, - "loudness": -4.984, - "mode": 0, - "speechiness": 0.0441, - "tempo": 149.907, - "time_signature": 4, - "valence": 0.336 - }, - { - "track_name": "Summertime Sadness", - "track_id": "0KOzUGf4micLPI5Salxn5i", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "29PibmV31F3q6DRVq7gzZc" - ], - "duration_ms": 264773, - "explicit": false, - "popularity": 48, - "acousticness": 0.051, - "danceability": 0.572, - "energy": 0.637, - "instrumentalness": 1.26e-06, - "key": 1, - "liveness": 0.118, - "loudness": -6.802, - "mode": 0, - "speechiness": 0.032, - "tempo": 111.975, - "time_signature": 4, - "valence": 0.245 - } - ], - [ - { - "track_name": "Buddy's Rendezvous", - "track_id": "5SOfvpsZh4GSTCNysVh6hW", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 301480, - "explicit": false, - "popularity": 49, - "acousticness": 0.852, - "danceability": 0.355, - "energy": 0.322, - "instrumentalness": 0.00326, - "key": 5, - "liveness": 0.111, - "loudness": -9.864, - "mode": 1, - "speechiness": 0.03, - "tempo": 77.657, - "time_signature": 4, - "valence": 0.245 - }, - { - "track_name": "Goodbye Mr Blue", - "track_id": "3bUtyNPvjhEvUIASbRf4ei", - "artists": [ - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 300240, - "explicit": false, - "popularity": 24, - "acousticness": 0.743, - "danceability": 0.5, - "energy": 0.441, - "instrumentalness": 0.579, - "key": 2, - "liveness": 0.125, - "loudness": -9.865, - "mode": 1, - "speechiness": 0.0288, - "tempo": 104.958, - "time_signature": 4, - "valence": 0.476 - }, - { - "track_name": "Kiss Me (I Loved You)", - "track_id": "0Q96dk5tPPkXlki4bsLWYn", - "artists": [ - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 237360, - "explicit": false, - "popularity": 23, - "acousticness": 0.929, - "danceability": 0.454, - "energy": 0.382, - "instrumentalness": 0.575, - "key": 2, - "liveness": 0.119, - "loudness": -10.5, - "mode": 0, - "speechiness": 0.0332, - "tempo": 76.937, - "time_signature": 4, - "valence": 0.412 - }, - { - "track_name": "(Everything But) Her Love", - "track_id": "2VfFvMbzJNvnqkVfrsxfyV", - "artists": [ - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 256226, - "explicit": false, - "popularity": 21, - "acousticness": 0.776, - "danceability": 0.609, - "energy": 0.469, - "instrumentalness": 0.767, - "key": 2, - "liveness": 0.118, - "loudness": -8.072, - "mode": 0, - "speechiness": 0.025, - "tempo": 111.947, - "time_signature": 3, - "valence": 0.396 - }, - { - "track_name": "Chloë", - "track_id": "7lsT8csZ761ZARcGIlYHHq", - "artists": [ - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 208453, - "explicit": false, - "popularity": 21, - "acousticness": 0.773, - "danceability": 0.562, - "energy": 0.455, - "instrumentalness": 0.00184, - "key": 0, - "liveness": 0.0911, - "loudness": -8.886, - "mode": 0, - "speechiness": 0.0239, - "tempo": 77.988, - "time_signature": 4, - "valence": 0.541 - }, - { - "track_name": "Buddy's Rendezvous", - "track_id": "1ZGoyeSnCOlTM9ewnyvou5", - "artists": [ - "2kGBy2WHvF0VdZyqiVCkDT" - ], - "albums": [ - "0ekjYczCwlKOsTR7Zp6NS4" - ], - "duration_ms": 299733, - "explicit": false, - "popularity": 23, - "acousticness": 0.922, - "danceability": 0.414, - "energy": 0.34, - "instrumentalness": 0.307, - "key": 5, - "liveness": 0.0956, - "loudness": -10.685, - "mode": 1, - "speechiness": 0.0273, - "tempo": 77.022, - "time_signature": 4, - "valence": 0.272 - } - ], - [ - { - "track_name": "Dayglo Reflection - Orchestral Version", - "track_id": "3TPjX6hEANO8qGrxYtabkh", - "artists": [ - "0vqkz1b2qBkoYrGMj2CUWq", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5RavdrN0me6xkp4okXQWNI" - ], - "duration_ms": 232917, - "explicit": false, - "popularity": 46, - "acousticness": 0.647, - "danceability": 0.28, - "energy": 0.337, - "instrumentalness": 0.00314, - "key": 3, - "liveness": 0.134, - "loudness": -8.385, - "mode": 0, - "speechiness": 0.0406, - "tempo": 89.126, - "time_signature": 4, - "valence": 0.251 - } - ], - [ - { - "track_name": "Watercolor Eyes - From “Euphoria” An HBO Original Series", - "track_id": "1G1R0XgChe18Zr1o6tlmN6", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "12fNudihprFoc3Jj5nGFkF" - ], - "duration_ms": 211613, - "explicit": false, - "popularity": 70, - "acousticness": 0.964, - "danceability": 0.444, - "energy": 0.26, - "instrumentalness": 0.0815, - "key": 7, - "liveness": 0.125, - "loudness": -10.045, - "mode": 1, - "speechiness": 0.0316, - "tempo": 120.443, - "time_signature": 4, - "valence": 0.121 - } - ], - [ - { - "track_name": "Arcadia", - "track_id": "5mqVdt50q0fYvyz3gd6eKe", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "2AVn0YgzBtqsa0d6R5QD95" - ], - "duration_ms": 263280, - "explicit": false, - "popularity": 52, - "acousticness": 0.97, - "danceability": 0.293, - "energy": 0.105, - "instrumentalness": 0.000107, - "key": 10, - "liveness": 0.105, - "loudness": -10.558, - "mode": 1, - "speechiness": 0.0335, - "tempo": 81.826, - "time_signature": 4, - "valence": 0.191 - } - ], - [ - { - "track_name": "Wildflower Wildfire", - "track_id": "5WhzJEUErG4gdSqxNCB9ED", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "761oXL0XFzpRE36GF1wn89" - ], - "duration_ms": 286740, - "explicit": false, - "popularity": 47, - "acousticness": 0.876, - "danceability": 0.352, - "energy": 0.224, - "instrumentalness": 0.0327, - "key": 7, - "liveness": 0.113, - "loudness": -10.026, - "mode": 0, - "speechiness": 0.0323, - "tempo": 79.592, - "time_signature": 5, - "valence": 0.211 - } - ], - [ - { - "track_name": "Text Book", - "track_id": "50J98YfyIUVLWbXoQZambN", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "66crHVaecDZMH5QHd5r2xy" - ], - "duration_ms": 303845, - "explicit": false, - "popularity": 46, - "acousticness": 0.824, - "danceability": 0.424, - "energy": 0.318, - "instrumentalness": 0.000542, - "key": 2, - "liveness": 0.114, - "loudness": -9.916, - "mode": 0, - "speechiness": 0.0427, - "tempo": 119.433, - "time_signature": 3, - "valence": 0.102 - } - ], - [ - { - "track_name": "Blue Banisters", - "track_id": "6FpdEqPmZ9aXIXiDi0Ke0f", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1C5RVpJJ2IAn92JeZwFF8j" - ], - "duration_ms": 292840, - "explicit": false, - "popularity": 48, - "acousticness": 0.938, - "danceability": 0.384, - "energy": 0.111, - "instrumentalness": 6.02e-05, - "key": 5, - "liveness": 0.104, - "loudness": -13.179, - "mode": 1, - "speechiness": 0.0415, - "tempo": 85.986, - "time_signature": 3, - "valence": 0.177 - } - ], - [ - { - "track_name": "Summertime The Gershwin Version", - "track_id": "25Mld9UGdMqXYDU2x8l3ld", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "27Iu7uGNcJMgxsNCvILZt1" - ], - "duration_ms": 186000, - "explicit": false, - "popularity": 68, - "acousticness": 0.968, - "danceability": 0.234, - "energy": 0.114, - "instrumentalness": 0.00391, - "key": 11, - "liveness": 0.103, - "loudness": -19.136, - "mode": 0, - "speechiness": 0.0366, - "tempo": 189.986, - "time_signature": 3, - "valence": 0.21 - } - ], - [ - { - "track_name": "Hallucinogenics (feat. Lana Del Rey)", - "track_id": "4A8pBxx0of2Y8r56dT0atf", - "artists": [ - "7gHscNMDI8FF8pcgrV8eIn", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "41tUnMTVSyImoq1Dyr5UhX" - ], - "duration_ms": 186626, - "explicit": true, - "popularity": 64, - "acousticness": 0.499, - "danceability": 0.59, - "energy": 0.597, - "instrumentalness": 0, - "key": 0, - "liveness": 0.175, - "loudness": -7.183, - "mode": 1, - "speechiness": 0.0527, - "tempo": 121.843, - "time_signature": 4, - "valence": 0.313 - } - ], - [ - { - "track_name": "Season Of The Witch", - "track_id": "5DSi7heBC8eTIFROBvttnp", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4K7RKXggxezOmccv1Uuviq" - ], - "duration_ms": 247147, - "explicit": false, - "popularity": 73, - "acousticness": 0.896, - "danceability": 0.674, - "energy": 0.205, - "instrumentalness": 0.0272, - "key": 2, - "liveness": 0.114, - "loudness": -14.173, - "mode": 1, - "speechiness": 0.0399, - "tempo": 95.984, - "time_signature": 4, - "valence": 0.355 - } - ], - [ - { - "track_name": "Looking For America", - "track_id": "31FBEeTXpaeCncCbCmS7ax", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6HTt2MmerBVW0TjGUwfzBD" - ], - "duration_ms": 162326, - "explicit": false, - "popularity": 54, - "acousticness": 0.959, - "danceability": 0.417, - "energy": 0.0909, - "instrumentalness": 4.59e-05, - "key": 7, - "liveness": 0.14, - "loudness": -15.526, - "mode": 1, - "speechiness": 0.0373, - "tempo": 90.075, - "time_signature": 3, - "valence": 0.101 - } - ], - [ - { - "track_name": "Doin' Time", - "track_id": "6ECwimRuwOxwQv5VXoN5Mt", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "3MWgjF21GhWr8fWExwnyMu" - ], - "duration_ms": 201996, - "explicit": false, - "popularity": 61, - "acousticness": 0.342, - "danceability": 0.622, - "energy": 0.693, - "instrumentalness": 0.000708, - "key": 7, - "liveness": 0.0876, - "loudness": -5.812, - "mode": 0, - "speechiness": 0.0434, - "tempo": 144.936, - "time_signature": 4, - "valence": 0.446 - } - ], - [ - { - "track_name": "God Save Our Young Blood (with Lana Del Rey)", - "track_id": "69bW8sXMYTa2iwfoRyZT5Y", - "artists": [ - "1KP6TWI40m7p3QBTU6u2xo", - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "6AnnYEaCTnWkbPo4ni5vic" - ], - "duration_ms": 232597, - "explicit": false, - "popularity": 44, - "acousticness": 0.74, - "danceability": 0.623, - "energy": 0.55, - "instrumentalness": 1.32e-06, - "key": 9, - "liveness": 0.13, - "loudness": -7.594, - "mode": 1, - "speechiness": 0.0527, - "tempo": 130.973, - "time_signature": 4, - "valence": 0.396 - } - ], - [ - { - "track_name": "Summer Bummer - Snakehips Remix", - "track_id": "3zUhzxygBLNN1HZQhkDqRT", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "13ubrt8QOOCPljQ2FL1Kca", - "699OTQXzgjhIYAHMy9RyPD", - "2FwJwEswyIUAljqgjNSHgP" - ], - "albums": [ - "7tSNHl6gCeuLj81GZO43Xn" - ], - "duration_ms": 248906, - "explicit": true, - "popularity": 41, - "acousticness": 0.455, - "danceability": 0.65, - "energy": 0.583, - "instrumentalness": 0.000114, - "key": 10, - "liveness": 0.647, - "loudness": -7.535, - "mode": 0, - "speechiness": 0.223, - "tempo": 135.026, - "time_signature": 4, - "valence": 0.335 - } - ], - [ - { - "track_name": "Summer Bummer - Clams Casino Remix", - "track_id": "4fFk2OkDtAjLwh9xSLJ0Bq", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5vSQUyT33qxr1xAX2Tkf3A", - "13ubrt8QOOCPljQ2FL1Kca", - "699OTQXzgjhIYAHMy9RyPD" - ], - "albums": [ - "3gY2PiLHPaOmYApYJYPpIi" - ], - "duration_ms": 270226, - "explicit": true, - "popularity": 39, - "acousticness": 0.0388, - "danceability": 0.213, - "energy": 0.503, - "instrumentalness": 0.00257, - "key": 11, - "liveness": 0.114, - "loudness": -10.06, - "mode": 1, - "speechiness": 0.109, - "tempo": 34.562, - "time_signature": 4, - "valence": 0.0947 - } - ], - [ - { - "track_name": "Lust For Life - The Avener Rework", - "track_id": "0d8gjVOq4aLA9E6wCm7H3a", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "0e6qzpphJHtObTSwD75mi0", - "1Xyo4u8uXC1ZmMpatF05PJ" - ], - "albums": [ - "76TKxZW1oXXhl6W2EP68An" - ], - "duration_ms": 252447, - "explicit": false, - "popularity": 43, - "acousticness": 0.234, - "danceability": 0.609, - "energy": 0.597, - "instrumentalness": 0.0227, - "key": 8, - "liveness": 0.164, - "loudness": -8.222, - "mode": 1, - "speechiness": 0.0398, - "tempo": 102.007, - "time_signature": 4, - "valence": 0.455 - } - ], - [ - { - "track_name": "Lust For Life - BloodPop® Remix", - "track_id": "0TUHBulhcckjtljAxJrRNg", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1okJ4NC308qbtY9LyHn6DO", - "1Xyo4u8uXC1ZmMpatF05PJ" - ], - "albums": [ - "3RQdSuT8Y2WGynwlFrJI58" - ], - "duration_ms": 202891, - "explicit": false, - "popularity": 45, - "acousticness": 0.00902, - "danceability": 0.635, - "energy": 0.76, - "instrumentalness": 2.33e-06, - "key": 8, - "liveness": 0.131, - "loudness": -3.831, - "mode": 1, - "speechiness": 0.0319, - "tempo": 99.991, - "time_signature": 4, - "valence": 0.498 - } - ], - [ - { - "track_name": "Lust for Life (with The Weeknd)", - "track_id": "5hzey1kBGjy3B8tDGcyRTY", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1Xyo4u8uXC1ZmMpatF05PJ" - ], - "albums": [ - "0NSognr1k6PH6SZZ6uv44G" - ], - "duration_ms": 264011, - "explicit": false, - "popularity": 52, - "acousticness": 0.58, - "danceability": 0.505, - "energy": 0.673, - "instrumentalness": 0.00336, - "key": 0, - "liveness": 0.362, - "loudness": -8.59, - "mode": 0, - "speechiness": 0.0554, - "tempo": 99.919, - "time_signature": 4, - "valence": 0.267 - } - ], - [ - { - "track_name": "Ultraviolence - Hook N Sling Remix", - "track_id": "2fbVjOH8FOW60FDD5umpV9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "3iN9k8uvm4WrgdlOigOH8D" - ], - "albums": [ - "6nrsjfNwukTPOcybYfoN57" - ], - "duration_ms": 329003, - "explicit": false, - "popularity": 39, - "acousticness": 0.00175, - "danceability": 0.683, - "energy": 0.871, - "instrumentalness": 0.00391, - "key": 0, - "liveness": 0.712, - "loudness": -5.576, - "mode": 1, - "speechiness": 0.0442, - "tempo": 128.01, - "time_signature": 4, - "valence": 0.461 - } - ], - [ - { - "track_name": "West Coast", - "track_id": "5JEAsA9QPvt3sB2leHNhfa", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4QFIONlzC0kTAkrJFP8Z0R" - ], - "duration_ms": 256768, - "explicit": false, - "popularity": 54, - "acousticness": 0.206, - "danceability": 0.359, - "energy": 0.611, - "instrumentalness": 0.0256, - "key": 6, - "liveness": 0.0898, - "loudness": -7.676, - "mode": 0, - "speechiness": 0.039, - "tempo": 93.05, - "time_signature": 4, - "valence": 0.428 - } - ], - [ - { - "track_name": "West Coast - ZHU Remix", - "track_id": "6MvEnS4hoEjzrAxuJIvj5S", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "28j8lBWDdDSHSSt5oPlsX2" - ], - "albums": [ - "1DV1nkL7LYsPepkX2C5E2C" - ], - "duration_ms": 264396, - "explicit": false, - "popularity": 46, - "acousticness": 0.0214, - "danceability": 0.837, - "energy": 0.647, - "instrumentalness": 0.408, - "key": 6, - "liveness": 0.24, - "loudness": -6.288, - "mode": 0, - "speechiness": 0.0613, - "tempo": 116.009, - "time_signature": 4, - "valence": 0.368 - }, - { - "track_name": "West Coast - Ten Ven Remix", - "track_id": "2va7mH3RbnqDUdb42abI48", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "0ZSLz27xUnI816MMtYfLMI" - ], - "albums": [ - "1DV1nkL7LYsPepkX2C5E2C" - ], - "duration_ms": 271532, - "explicit": false, - "popularity": 34, - "acousticness": 0.00229, - "danceability": 0.731, - "energy": 0.675, - "instrumentalness": 0.39, - "key": 7, - "liveness": 0.0758, - "loudness": -8.249, - "mode": 1, - "speechiness": 0.0417, - "tempo": 123.304, - "time_signature": 4, - "valence": 0.487 - }, - { - "track_name": "West Coast - The GRADES Icon Mix", - "track_id": "11QaOjnjCsuQ4orbGJCNdp", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5xtS6AoBUHhaAhxC1JN3PY" - ], - "albums": [ - "1DV1nkL7LYsPepkX2C5E2C" - ], - "duration_ms": 257853, - "explicit": false, - "popularity": 40, - "acousticness": 0.137, - "danceability": 0.681, - "energy": 0.661, - "instrumentalness": 0.00167, - "key": 6, - "liveness": 0.147, - "loudness": -7.559, - "mode": 0, - "speechiness": 0.175, - "tempo": 110.021, - "time_signature": 4, - "valence": 0.475 - }, - { - "track_name": "West Coast - MK Remix", - "track_id": "2mHjYyZJT7eoDBZrJpzKEn", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4rIKOF7RT4PNxyhd3ZzLtE" - ], - "albums": [ - "1DV1nkL7LYsPepkX2C5E2C" - ], - "duration_ms": 326153, - "explicit": false, - "popularity": 36, - "acousticness": 0.00224, - "danceability": 0.899, - "energy": 0.4, - "instrumentalness": 0.00741, - "key": 6, - "liveness": 0.0548, - "loudness": -9.901, - "mode": 0, - "speechiness": 0.0606, - "tempo": 123.007, - "time_signature": 4, - "valence": 0.405 - } - ], - [ - { - "track_name": "Ultraviolence", - "track_id": "1T5Zpn2kOSd1PelIIUphmd", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "4bDu16cUgbNS4bWrkomHpo" - ], - "duration_ms": 251480, - "explicit": false, - "popularity": 44, - "acousticness": 0.279, - "danceability": 0.222, - "energy": 0.534, - "instrumentalness": 9.35e-06, - "key": 0, - "liveness": 0.114, - "loudness": -7.104, - "mode": 1, - "speechiness": 0.0324, - "tempo": 83.994, - "time_signature": 3, - "valence": 0.103 - } - ], - [ - { - "track_name": "Summertime Sadness - Monsieur Adi Remix", - "track_id": "1j58RGUIitzCN2D4f0X3xj", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4KF0B66rZU4yV2hruz7YN4" - ], - "albums": [ - "4ix4RQK08GQGb62FFWMJII" - ], - "duration_ms": 289574, - "explicit": false, - "popularity": 27, - "acousticness": 0.00168, - "danceability": 0.567, - "energy": 0.809, - "instrumentalness": 0.0028, - "key": 1, - "liveness": 0.0508, - "loudness": -6.487, - "mode": 0, - "speechiness": 0.237, - "tempo": 122.972, - "time_signature": 4, - "valence": 0.485 - } - ], - [ - { - "track_name": "Shades Of Cool", - "track_id": "6tHrSaKHAayOzJlHTbYW47", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5i9CoHStfX7f1ZMM43eVbc" - ], - "duration_ms": 342093, - "explicit": false, - "popularity": 43, - "acousticness": 0.554, - "danceability": 0.262, - "energy": 0.482, - "instrumentalness": 0.0161, - "key": 2, - "liveness": 0.244, - "loudness": -6.863, - "mode": 0, - "speechiness": 0.0302, - "tempo": 137.918, - "time_signature": 3, - "valence": 0.0878 - } - ], - [ - { - "track_name": "Once Upon a Dream - From \"Maleficent\" / Pop Version", - "track_id": "3liiZRlJxa8GeLUgWMoIeu", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "293ydefC5qpqZ65JYZTbUi" - ], - "duration_ms": 203080, - "explicit": false, - "popularity": 70, - "acousticness": 0.659, - "danceability": 0.289, - "energy": 0.274, - "instrumentalness": 0.0166, - "key": 5, - "liveness": 0.109, - "loudness": -16.574, - "mode": 1, - "speechiness": 0.0353, - "tempo": 119.997, - "time_signature": 3, - "valence": 0.167 - } - ], - [ - { - "track_name": "Once Upon a Dream - From “Maleficent”/Young Ruffian Remix", - "track_id": "0YNJrxyZXfHstBF1Hshk6l", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0BeZnMAHzbklVlde4eRpMm" - ], - "duration_ms": 224693, - "explicit": false, - "popularity": 41, - "acousticness": 0.108, - "danceability": 0.433, - "energy": 0.485, - "instrumentalness": 0.000274, - "key": 2, - "liveness": 0.0912, - "loudness": -9.236, - "mode": 0, - "speechiness": 0.0805, - "tempo": 119.895, - "time_signature": 3, - "valence": 0.229 - } - ], - [ - { - "track_name": "Brooklyn Baby", - "track_id": "5bAlvENAUf8KMn2ckmQwsZ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7FBVipPDz4SsTn7L8J3O1d" - ], - "duration_ms": 351640, - "explicit": true, - "popularity": 50, - "acousticness": 0.542, - "danceability": 0.404, - "energy": 0.664, - "instrumentalness": 0.00402, - "key": 1, - "liveness": 0.11, - "loudness": -6.698, - "mode": 1, - "speechiness": 0.0407, - "tempo": 107.747, - "time_signature": 4, - "valence": 0.0949 - } - ], - [ - { - "track_name": "Summertime Sadness - Asadinho Vocal Mix", - "track_id": "3jMh9sR3WEnSS8bYnKIEZU", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "24EM06t8FHF2hyDdHurfrf" - ], - "duration_ms": 514737, - "explicit": false, - "popularity": 42, - "acousticness": 0.00326, - "danceability": 0.855, - "energy": 0.516, - "instrumentalness": 0.151, - "key": 1, - "liveness": 0.265, - "loudness": -7.461, - "mode": 1, - "speechiness": 0.0557, - "tempo": 118.01, - "time_signature": 4, - "valence": 0.413 - }, - { - "track_name": "Summertime Sadness - Asadinho Dub", - "track_id": "5yfJb5xk5xAK3GBxNxJBmp", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "24EM06t8FHF2hyDdHurfrf" - ], - "duration_ms": 465929, - "explicit": false, - "popularity": 37, - "acousticness": 0.00018, - "danceability": 0.839, - "energy": 0.433, - "instrumentalness": 0.795, - "key": 8, - "liveness": 0.066, - "loudness": -8.184, - "mode": 1, - "speechiness": 0.0565, - "tempo": 118.024, - "time_signature": 4, - "valence": 0.281 - }, - { - "track_name": "Summertime Sadness - Asadinho Instrumental", - "track_id": "7zzGnQSum6nb0hwqFM8opQ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "24EM06t8FHF2hyDdHurfrf" - ], - "duration_ms": 420316, - "explicit": false, - "popularity": 35, - "acousticness": 0.000104, - "danceability": 0.808, - "energy": 0.459, - "instrumentalness": 0.938, - "key": 8, - "liveness": 0.714, - "loudness": -8.802, - "mode": 1, - "speechiness": 0.0539, - "tempo": 118.018, - "time_signature": 4, - "valence": 0.293 - } - ], - [ - { - "track_name": "Summertime Sadness - Ryan Hemsworth Remix", - "track_id": "6TqhdpjFllfk11YygjtXcr", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2CgysNw5B7rFNRtRjQbPZ9" - ], - "albums": [ - "5zqWpGJJrOQqOoZ8czODIc" - ], - "duration_ms": 249680, - "explicit": false, - "popularity": 36, - "acousticness": 0.0133, - "danceability": 0.707, - "energy": 0.668, - "instrumentalness": 0.304, - "key": 1, - "liveness": 0.0874, - "loudness": -6.538, - "mode": 0, - "speechiness": 0.0335, - "tempo": 123.996, - "time_signature": 4, - "valence": 0.126 - } - ], - [ - { - "track_name": "Summertime - Imanbek Remix", - "track_id": "0f3cLpriwmAnZu5kRrssc5", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5rGrDvrLOV2VV8SCFVGWlj" - ], - "albums": [ - "5XRtJEsQ1jLvOkQZdBjPZZ" - ], - "duration_ms": 265997, - "explicit": false, - "popularity": 59, - "acousticness": 0.0667, - "danceability": 0.894, - "energy": 0.864, - "instrumentalness": 0.00061, - "key": 1, - "liveness": 0.137, - "loudness": -5.036, - "mode": 0, - "speechiness": 0.17, - "tempo": 121.995, - "time_signature": 4, - "valence": 0.827 - } - ], - [ - { - "track_name": "Dark Paradise - Parov Stelar Remix", - "track_id": "5lmBgvRintvH12jvlLtMMH", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "65EXuYHVoehCKqp0kOS6px" - ], - "albums": [ - "2CqXYroRq34v3SeLBBp84u" - ], - "duration_ms": 261667, - "explicit": false, - "popularity": 39, - "acousticness": 0.08, - "danceability": 0.635, - "energy": 0.586, - "instrumentalness": 0.0022, - "key": 1, - "liveness": 0.0997, - "loudness": -8.345, - "mode": 0, - "speechiness": 0.0391, - "tempo": 119.992, - "time_signature": 4, - "valence": 0.486 - } - ], - [ - { - "track_name": "Summertime Sadness (Lana Del Rey Vs. Cedric Gervais) - Cedric Gervais Remix", - "track_id": "6PUIzlqotEmPuBfjbwYWOB", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4Wjf8diP59VmPG7fi4y724" - ], - "albums": [ - "1fXwOvaqIdkhp5F3fiFbCv" - ], - "duration_ms": 214912, - "explicit": false, - "popularity": 77, - "acousticness": 0.0157, - "danceability": 0.572, - "energy": 0.81, - "instrumentalness": 6.53e-06, - "key": 1, - "liveness": 0.13, - "loudness": -5.791, - "mode": 0, - "speechiness": 0.0558, - "tempo": 126.052, - "time_signature": 4, - "valence": 0.11 - } - ], - [ - { - "track_name": "Young And Beautiful", - "track_id": "2nMeu6UenVvwUktBCpLMK9", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "1D92WOHWUI2AGQCCdplcXL" - ], - "duration_ms": 236053, - "explicit": false, - "popularity": 87, - "acousticness": 0.262, - "danceability": 0.324, - "energy": 0.416, - "instrumentalness": 3.69e-05, - "key": 11, - "liveness": 0.11, - "loudness": -8.92, - "mode": 0, - "speechiness": 0.0368, - "tempo": 113.986, - "time_signature": 4, - "valence": 0.151 - } - ], - [ - { - "track_name": "Ride", - "track_id": "3hp8RR49EJbku9VAPkVSol", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "5gXcOVOPrENSGTzv8X2LJl" - ], - "duration_ms": 289080, - "explicit": true, - "popularity": 39, - "acousticness": 0.128, - "danceability": 0.373, - "energy": 0.686, - "instrumentalness": 1.96e-06, - "key": 0, - "liveness": 0.383, - "loudness": -5.52, - "mode": 1, - "speechiness": 0.034, - "tempo": 93.763, - "time_signature": 4, - "valence": 0.189 - }, - { - "track_name": "Ride - Active Child Remix", - "track_id": "4wNTEzMfWI529WYAk0ARIY", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "54KTsBl98buzGkELjGlnuU" - ], - "albums": [ - "5gXcOVOPrENSGTzv8X2LJl" - ], - "duration_ms": 222829, - "explicit": true, - "popularity": 27, - "acousticness": 0.203, - "danceability": 0.5, - "energy": 0.378, - "instrumentalness": 0.649, - "key": 9, - "liveness": 0.192, - "loudness": -9.374, - "mode": 0, - "speechiness": 0.0252, - "tempo": 140.952, - "time_signature": 3, - "valence": 0.373 - }, - { - "track_name": "Blue Velvet - Penguin Prison Remix", - "track_id": "4nQA8eqfBz4IJq9mxQ9gfb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5VsOThWOagH8C8gCvIy13k" - ], - "albums": [ - "5gXcOVOPrENSGTzv8X2LJl" - ], - "duration_ms": 302504, - "explicit": false, - "popularity": 22, - "acousticness": 0.000298, - "danceability": 0.771, - "energy": 0.606, - "instrumentalness": 0.853, - "key": 0, - "liveness": 0.081, - "loudness": -10.154, - "mode": 1, - "speechiness": 0.0478, - "tempo": 112.004, - "time_signature": 4, - "valence": 0.515 - }, - { - "track_name": "Blue Velvet - Lindstrom Remix", - "track_id": "6e7CR5IHhtLPr5uizkBmIE", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "0eoL9yfbhhpevgDpEUIKon" - ], - "albums": [ - "5gXcOVOPrENSGTzv8X2LJl" - ], - "duration_ms": 566975, - "explicit": false, - "popularity": 22, - "acousticness": 0.008, - "danceability": 0.825, - "energy": 0.7, - "instrumentalness": 0.893, - "key": 7, - "liveness": 0.0551, - "loudness": -7.082, - "mode": 1, - "speechiness": 0.0797, - "tempo": 120.0, - "time_signature": 4, - "valence": 0.318 - } - ], - [ - { - "track_name": "Blue Jeans - Kris Menace Remix", - "track_id": "2koJ0BWiquijyRNAq7Ksxb", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5P5i4EeZfrKrcRGHRTqJr0" - ], - "albums": [ - "17ljo4CKnztmlTbeUTjhxk" - ], - "duration_ms": 402122, - "explicit": false, - "popularity": 34, - "acousticness": 0.00938, - "danceability": 0.638, - "energy": 0.795, - "instrumentalness": 0.178, - "key": 3, - "liveness": 0.0994, - "loudness": -7.299, - "mode": 1, - "speechiness": 0.0744, - "tempo": 118.005, - "time_signature": 4, - "valence": 0.569 - }, - { - "track_name": "Blue Jeans - Kris Menace Instrumental", - "track_id": "1D6zOIVkGKDyfTiGq1S5GK", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5P5i4EeZfrKrcRGHRTqJr0" - ], - "albums": [ - "17ljo4CKnztmlTbeUTjhxk" - ], - "duration_ms": 384913, - "explicit": false, - "popularity": 36, - "acousticness": 0.000201, - "danceability": 0.645, - "energy": 0.698, - "instrumentalness": 0.867, - "key": 3, - "liveness": 0.114, - "loudness": -9.294, - "mode": 1, - "speechiness": 0.044, - "tempo": 117.972, - "time_signature": 4, - "valence": 0.559 - } - ], - [ - { - "track_name": "Blue Jeans - Remastered 2011", - "track_id": "6QvhcruRZpR7V3HYklyFCg", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "7vH5XKMPhSWNkrTzdzFjEa" - ], - "duration_ms": 210067, - "explicit": true, - "popularity": 37, - "acousticness": 0.382, - "danceability": 0.576, - "energy": 0.836, - "instrumentalness": 0, - "key": 3, - "liveness": 0.0758, - "loudness": -4.458, - "mode": 1, - "speechiness": 0.0615, - "tempo": 117.973, - "time_signature": 4, - "valence": 0.471 - }, - { - "track_name": "Blue Jeans - Gesaffelstein Remix", - "track_id": "2qTDX9vvhc4oQWqGCsFf5p", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "3hteYQFiMFbJY7wS0xDymP" - ], - "albums": [ - "7vH5XKMPhSWNkrTzdzFjEa" - ], - "duration_ms": 275618, - "explicit": true, - "popularity": 32, - "acousticness": 0.000841, - "danceability": 0.693, - "energy": 0.719, - "instrumentalness": 0.000829, - "key": 5, - "liveness": 0.0705, - "loudness": -5.134, - "mode": 0, - "speechiness": 0.0578, - "tempo": 118.134, - "time_signature": 4, - "valence": 0.412 - }, - { - "track_name": "Blue Jeans - Odd Future's The Internet Mix", - "track_id": "5MsrjP9RZbwurR8XF7kTAk", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "7GN9PivdemQRKjDt4z5Zv8", - "7ycsWk9ae4pTAlWH8j6Hf9", - "1AKNroq6zJX4DlJaA0dcKw" - ], - "albums": [ - "7vH5XKMPhSWNkrTzdzFjEa" - ], - "duration_ms": 240501, - "explicit": true, - "popularity": 22, - "acousticness": 0.17, - "danceability": 0.623, - "energy": 0.699, - "instrumentalness": 0.00461, - "key": 5, - "liveness": 0.144, - "loudness": -8.849, - "mode": 0, - "speechiness": 0.0352, - "tempo": 117.971, - "time_signature": 4, - "valence": 0.569 - }, - { - "track_name": "Blue Jeans - Blood Orange Remix", - "track_id": "0AxADfB2KtnUoXXLXHpPVS", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "6LEeAFiJF8OuPx747e1wxR" - ], - "albums": [ - "7vH5XKMPhSWNkrTzdzFjEa" - ], - "duration_ms": 211059, - "explicit": true, - "popularity": 25, - "acousticness": 0.376, - "danceability": 0.612, - "energy": 0.531, - "instrumentalness": 1.95e-05, - "key": 10, - "liveness": 0.111, - "loudness": -9.793, - "mode": 1, - "speechiness": 0.0477, - "tempo": 117.931, - "time_signature": 4, - "valence": 0.225 - } - ], - [ - { - "track_name": "Born To Die", - "track_id": "6eFmEwPGFlSSau4yMUEaqN", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0wjZLB37I9YAcvlMf86eM9" - ], - "duration_ms": 285716, - "explicit": false, - "popularity": 41, - "acousticness": 0.192, - "danceability": 0.245, - "energy": 0.594, - "instrumentalness": 4.27e-05, - "key": 4, - "liveness": 0.245, - "loudness": -7.715, - "mode": 0, - "speechiness": 0.0362, - "tempo": 85.487, - "time_signature": 4, - "valence": 0.402 - }, - { - "track_name": "Born To Die - PDP / 13 Remix", - "track_id": "2UNnxHIzBj2ygDQk3BZAxs", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "40NhswmboSiY7lb364xoW8" - ], - "albums": [ - "0wjZLB37I9YAcvlMf86eM9" - ], - "duration_ms": 382502, - "explicit": false, - "popularity": 23, - "acousticness": 0.00946, - "danceability": 0.763, - "energy": 0.846, - "instrumentalness": 0.52, - "key": 11, - "liveness": 0.0433, - "loudness": -7.93, - "mode": 0, - "speechiness": 0.0827, - "tempo": 149.999, - "time_signature": 4, - "valence": 0.766 - }, - { - "track_name": "Born To Die - Woodkid & The Shoes Remix", - "track_id": "6FRpGXrKgXpPeR3vUF5SzE", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "44TGR1CzjKBxSHsSEy7bi9", - "6buUuVTdxxAe5ODJtKZ4hP" - ], - "albums": [ - "0wjZLB37I9YAcvlMf86eM9" - ], - "duration_ms": 240891, - "explicit": false, - "popularity": 37, - "acousticness": 0.115, - "danceability": 0.574, - "energy": 0.677, - "instrumentalness": 0.199, - "key": 4, - "liveness": 0.413, - "loudness": -8.843, - "mode": 0, - "speechiness": 0.0456, - "tempo": 93.009, - "time_signature": 4, - "valence": 0.192 - }, - { - "track_name": "Born To Die - Clams Casino Remix", - "track_id": "5RYMOgHY3ah9e83Bf3DZr0", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5vSQUyT33qxr1xAX2Tkf3A" - ], - "albums": [ - "0wjZLB37I9YAcvlMf86eM9" - ], - "duration_ms": 187509, - "explicit": false, - "popularity": 23, - "acousticness": 0.647, - "danceability": 0.455, - "energy": 0.485, - "instrumentalness": 0.859, - "key": 7, - "liveness": 0.111, - "loudness": -11.733, - "mode": 1, - "speechiness": 0.0621, - "tempo": 86.007, - "time_signature": 4, - "valence": 0.19 - } - ], - [ - { - "track_name": "Video Games - Club Clique For The Bad Girls Remix", - "track_id": "4KmtER3ibPlEHMw2CtU6Ba", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1EnozkTUyiBieU9iagUUZu" - ], - "albums": [ - "5xQF02P2MtoIIqMCB1MOoM" - ], - "duration_ms": 297720, - "explicit": false, - "popularity": 34, - "acousticness": 0.192, - "danceability": 0.662, - "energy": 0.786, - "instrumentalness": 0.0268, - "key": 2, - "liveness": 0.144, - "loudness": -6.758, - "mode": 1, - "speechiness": 0.0413, - "tempo": 122.478, - "time_signature": 4, - "valence": 0.473 - }, - { - "track_name": "Video Games - Jakwob and Etherwood Remix", - "track_id": "5FtPuqpCjMjkQ6hTg5rkhZ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4S5yXnFzWvHu16wfuDjjfM", - "3GEUIa3Z0Qlivy3EcJm5RX" - ], - "albums": [ - "5xQF02P2MtoIIqMCB1MOoM" - ], - "duration_ms": 222560, - "explicit": false, - "popularity": 26, - "acousticness": 0.00131, - "danceability": 0.524, - "energy": 0.982, - "instrumentalness": 0.453, - "key": 2, - "liveness": 0.33, - "loudness": -3.597, - "mode": 1, - "speechiness": 0.0452, - "tempo": 155.028, - "time_signature": 4, - "valence": 0.39 - }, - { - "track_name": "Video Games - White Lies C-Mix", - "track_id": "74AyVnSemwIaGnpuJVnh1l", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "7axvMzOst7QzyypY9HjYwq" - ], - "albums": [ - "5xQF02P2MtoIIqMCB1MOoM" - ], - "duration_ms": 452026, - "explicit": false, - "popularity": 29, - "acousticness": 8.54e-05, - "danceability": 0.597, - "energy": 0.674, - "instrumentalness": 0.14, - "key": 2, - "liveness": 0.0768, - "loudness": -6.105, - "mode": 1, - "speechiness": 0.0358, - "tempo": 122.501, - "time_signature": 4, - "valence": 0.364 - }, - { - "track_name": "Video Games - Jamie Woon Remix", - "track_id": "5XcHGTbys5DFUA35CmgcGw", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1fUMEn4Yk7ZUloozE0fRLL" - ], - "albums": [ - "5xQF02P2MtoIIqMCB1MOoM" - ], - "duration_ms": 314253, - "explicit": false, - "popularity": 24, - "acousticness": 0.267, - "danceability": 0.67, - "energy": 0.735, - "instrumentalness": 0.505, - "key": 6, - "liveness": 0.167, - "loudness": -9.696, - "mode": 0, - "speechiness": 0.0867, - "tempo": 139.959, - "time_signature": 4, - "valence": 0.808 - }, - { - "track_name": "Video Games - We Don’t Belong In Pacha Remix", - "track_id": "1mQ0Qyj147Pmd6jyVvWoMV", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "2FPOWD1PQrknL2h1t6wf8w" - ], - "albums": [ - "5xQF02P2MtoIIqMCB1MOoM" - ], - "duration_ms": 319840, - "explicit": false, - "popularity": 27, - "acousticness": 0.419, - "danceability": 0.687, - "energy": 0.741, - "instrumentalness": 0.0235, - "key": 6, - "liveness": 0.0655, - "loudness": -8.928, - "mode": 0, - "speechiness": 0.0561, - "tempo": 128.004, - "time_signature": 4, - "valence": 0.615 - } - ], - [ - { - "track_name": "Blue Jeans - Smims & Belle Remix", - "track_id": "7ADy9yJrXpirn1IrWo6jBq", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "7gRhy3MIPHQo5CXYfWaw9I", - "01HaDEWYoJwaJcMmZFxb6n" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 181573, - "explicit": true, - "popularity": 37, - "acousticness": 0.115, - "danceability": 0.741, - "energy": 0.717, - "instrumentalness": 0.124, - "key": 5, - "liveness": 0.181, - "loudness": -6.348, - "mode": 0, - "speechiness": 0.134, - "tempo": 117.948, - "time_signature": 4, - "valence": 0.501 - }, - { - "track_name": "Blue Jeans - Gesaffelstein Remix", - "track_id": "5EyZKVNSF2GVg6GhrlmtBh", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "3hteYQFiMFbJY7wS0xDymP" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 275640, - "explicit": true, - "popularity": 41, - "acousticness": 0.000966, - "danceability": 0.691, - "energy": 0.729, - "instrumentalness": 0.000444, - "key": 10, - "liveness": 0.0639, - "loudness": -5.111, - "mode": 0, - "speechiness": 0.0547, - "tempo": 118.153, - "time_signature": 4, - "valence": 0.407 - }, - { - "track_name": "Blue Jeans - RAC Mix", - "track_id": "7JVNRVPeXFAOdMrxOHNjVv", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "4AGwPDdh1y8hochNzHy5HC" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 218213, - "explicit": true, - "popularity": 50, - "acousticness": 0.399, - "danceability": 0.694, - "energy": 0.841, - "instrumentalness": 0.00652, - "key": 3, - "liveness": 0.1, - "loudness": -3.889, - "mode": 1, - "speechiness": 0.0524, - "tempo": 117.968, - "time_signature": 4, - "valence": 0.416 - }, - { - "track_name": "Blue Jeans - Club Clique Nothing Is Real Remix", - "track_id": "2bAD41U8RQh4Z7rJinqzNy", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "1EnozkTUyiBieU9iagUUZu" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 251880, - "explicit": true, - "popularity": 28, - "acousticness": 0.0758, - "danceability": 0.641, - "energy": 0.756, - "instrumentalness": 4.05e-06, - "key": 3, - "liveness": 0.131, - "loudness": -5.651, - "mode": 1, - "speechiness": 0.0537, - "tempo": 121.98, - "time_signature": 4, - "valence": 0.832 - }, - { - "track_name": "Blue Jeans - Kris Menace Remix", - "track_id": "7CLWX894gh7Ev4Bckaz4cJ", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5P5i4EeZfrKrcRGHRTqJr0" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 401786, - "explicit": true, - "popularity": 39, - "acousticness": 0.0133, - "danceability": 0.604, - "energy": 0.854, - "instrumentalness": 0.0413, - "key": 3, - "liveness": 0.087, - "loudness": -6.128, - "mode": 1, - "speechiness": 0.104, - "tempo": 118.007, - "time_signature": 4, - "valence": 0.553 - }, - { - "track_name": "Blue Jeans - Penguin Prison Remix", - "track_id": "58iEhaCUXldfjDvNhjn7E3", - "artists": [ - "00FQb4jTyendYWaN8pK0wa", - "5VsOThWOagH8C8gCvIy13k" - ], - "albums": [ - "6IQC6W4qrTWIQmUmNGFyKo" - ], - "duration_ms": 336920, - "explicit": true, - "popularity": 37, - "acousticness": 0.0677, - "danceability": 0.816, - "energy": 0.744, - "instrumentalness": 0.0186, - "key": 5, - "liveness": 0.128, - "loudness": -5.822, - "mode": 0, - "speechiness": 0.0341, - "tempo": 120.017, - "time_signature": 4, - "valence": 0.744 - } - ], - [ - { - "track_name": "Video Games", - "track_id": "5xTEkzHycz81QTcqCS9oVv", - "artists": [ - "00FQb4jTyendYWaN8pK0wa" - ], - "albums": [ - "0V3HJ3D9LsXlqzuXu6jx39" - ], - "duration_ms": 284500, - "explicit": false, - "popularity": 56, - "acousticness": 0.791, - "danceability": 0.336, - "energy": 0.298, - "instrumentalness": 2.6e-06, - "key": 6, - "liveness": 0.0858, - "loudness": -8.547, - "mode": 0, - "speechiness": 0.0324, - "tempo": 123.856, - "time_signature": 4, - "valence": 0.203 - } - ] + { + "track_name": "The Grants", + "track_id": "3KbOflJ5JqHWtmco4PiO3h", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 295201, + "explicit": false, + "popularity": 66, + "acousticness": 0.867, + "danceability": 0.364, + "energy": 0.167, + "instrumentalness": 0.00116, + "key": 7, + "liveness": 0.358, + "loudness": -12.168, + "mode": 1, + "speechiness": 0.0361, + "tempo": 121.218, + "time_signature": 4, + "valence": 0.143 + }, + { + "track_name": "Did you know that there's a tunnel under Ocean Blvd", + "track_id": "0HEzuLLojblUOaUSdmJ9gl", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 285050, + "explicit": true, + "popularity": 73, + "acousticness": 0.805, + "danceability": 0.457, + "energy": 0.343, + "instrumentalness": 0.0182, + "key": 0, + "liveness": 0.12, + "loudness": -9.387, + "mode": 1, + "speechiness": 0.0305, + "tempo": 119.94, + "time_signature": 4, + "valence": 0.0562 + }, + { + "track_name": "Sweet", + "track_id": "6x8g6DxglrzCSwKhv2Q1ee", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 215295, + "explicit": true, + "popularity": 66, + "acousticness": 0.958, + "danceability": 0.326, + "energy": 0.245, + "instrumentalness": 0.00389, + "key": 0, + "liveness": 0.157, + "loudness": -12.337, + "mode": 1, + "speechiness": 0.0293, + "tempo": 126.725, + "time_signature": 4, + "valence": 0.0695 + }, + { + "track_name": "A&W", + "track_id": "5nW4z3pfZgJAJ2QTCz9AIE", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 433916, + "explicit": true, + "popularity": 75, + "acousticness": 0.665, + "danceability": 0.421, + "energy": 0.247, + "instrumentalness": 0.375, + "key": 10, + "liveness": 0.115, + "loudness": -14.655, + "mode": 1, + "speechiness": 0.143, + "tempo": 161.468, + "time_signature": 4, + "valence": 0.139 + }, + { + "track_name": "Judah Smith Interlude", + "track_id": "4fFqFgMDP9lY8tqEoArFGq", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 276757, + "explicit": false, + "popularity": 60, + "acousticness": 0.96, + "danceability": 0.476, + "energy": 0.33, + "instrumentalness": 4.39e-05, + "key": 9, + "liveness": 0.221, + "loudness": -10.48, + "mode": 1, + "speechiness": 0.102, + "tempo": 77.111, + "time_signature": 4, + "valence": 0.368 + }, + { + "track_name": "Candy Necklace (feat. Jon Batiste)", + "track_id": "3MlEryrxCKZkcfX18ZLX96", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "0eRbECAGCLLiTyVXPBRexU" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 314520, + "explicit": false, + "popularity": 67, + "acousticness": 0.871, + "danceability": 0.343, + "energy": 0.142, + "instrumentalness": 0.0103, + "key": 11, + "liveness": 0.0915, + "loudness": -16.432, + "mode": 0, + "speechiness": 0.0395, + "tempo": 116.295, + "time_signature": 4, + "valence": 0.0799 + }, + { + "track_name": "Jon Batiste Interlude", + "track_id": "2JFVBojvTHpSZLoyowuZys", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 213435, + "explicit": false, + "popularity": 59, + "acousticness": 0.983, + "danceability": 0.291, + "energy": 0.319, + "instrumentalness": 0.55, + "key": 9, + "liveness": 0.0627, + "loudness": -11.651, + "mode": 1, + "speechiness": 0.034, + "tempo": 103.496, + "time_signature": 4, + "valence": 0.0653 + }, + { + "track_name": "Kintsugi", + "track_id": "4VL310GGX3b2ixL3sV0Je8", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 378951, + "explicit": false, + "popularity": 63, + "acousticness": 0.984, + "danceability": 0.447, + "energy": 0.0858, + "instrumentalness": 0.00331, + "key": 9, + "liveness": 0.242, + "loudness": -15.806, + "mode": 1, + "speechiness": 0.042, + "tempo": 116.091, + "time_signature": 4, + "valence": 0.173 + }, + { + "track_name": "Fingertips", + "track_id": "1BUckPDAi8NYfLN7EiQcQA", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 348256, + "explicit": true, + "popularity": 63, + "acousticness": 0.924, + "danceability": 0.439, + "energy": 0.192, + "instrumentalness": 0.000643, + "key": 5, + "liveness": 0.158, + "loudness": -13.564, + "mode": 1, + "speechiness": 0.0418, + "tempo": 124.232, + "time_signature": 3, + "valence": 0.0786 + }, + { + "track_name": "Paris, Texas (feat. SYML)", + "track_id": "0Oqxt6JixieLHbwMfnJGWO", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "6AyATGg7mDgBlZ4N5uNog0" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 206722, + "explicit": false, + "popularity": 76, + "acousticness": 0.985, + "danceability": 0.315, + "energy": 0.102, + "instrumentalness": 0.0512, + "key": 0, + "liveness": 0.109, + "loudness": -17.621, + "mode": 0, + "speechiness": 0.034, + "tempo": 169.69, + "time_signature": 3, + "valence": 0.185 + }, + { + "track_name": "Grandfather please stand on the shoulders of my father while he's deep-sea fishing (feat. RIOPY)", + "track_id": "55LnC7VuUvayQ3fW0CvDL6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4ytDz3A9nHcVMjEbdNSKzA" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 240287, + "explicit": false, + "popularity": 63, + "acousticness": 0.936, + "danceability": 0.348, + "energy": 0.224, + "instrumentalness": 0.0225, + "key": 8, + "liveness": 0.297, + "loudness": -10.36, + "mode": 1, + "speechiness": 0.0321, + "tempo": 79.608, + "time_signature": 4, + "valence": 0.0818 + }, + { + "track_name": "Let The Light In (feat. Father John Misty)", + "track_id": "4qG7hWhljsqqENL5PaLA2z", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 278126, + "explicit": false, + "popularity": 83, + "acousticness": 0.344, + "danceability": 0.327, + "energy": 0.452, + "instrumentalness": 0.00332, + "key": 9, + "liveness": 0.11, + "loudness": -9.726, + "mode": 1, + "speechiness": 0.0277, + "tempo": 132.427, + "time_signature": 4, + "valence": 0.202 + }, + { + "track_name": "Margaret (feat. Bleachers)", + "track_id": "1o82DwNisONAd2mu1RcGE6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2eam0iDomRHGBypaDQLwWI" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 339890, + "explicit": false, + "popularity": 76, + "acousticness": 0.972, + "danceability": 0.452, + "energy": 0.247, + "instrumentalness": 0.132, + "key": 9, + "liveness": 0.0577, + "loudness": -13.24, + "mode": 1, + "speechiness": 0.033, + "tempo": 102.412, + "time_signature": 4, + "valence": 0.216 + }, + { + "track_name": "Fishtail", + "track_id": "4Cg9XRHLP3s5ZiQaIdL4zW", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 242548, + "explicit": false, + "popularity": 66, + "acousticness": 0.949, + "danceability": 0.529, + "energy": 0.235, + "instrumentalness": 0.000259, + "key": 3, + "liveness": 0.26, + "loudness": -15.226, + "mode": 1, + "speechiness": 0.045, + "tempo": 89.042, + "time_signature": 4, + "valence": 0.0659 + }, + { + "track_name": "Peppers (feat. Tommy Genesis)", + "track_id": "2Rlso2ZNV0PaWwUYeeBYxx", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2qDdxfKUpYg8wc49KIuT3b" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 248928, + "explicit": true, + "popularity": 77, + "acousticness": 0.633, + "danceability": 0.487, + "energy": 0.515, + "instrumentalness": 0.176, + "key": 4, + "liveness": 0.111, + "loudness": -11.767, + "mode": 0, + "speechiness": 0.19, + "tempo": 156.738, + "time_signature": 4, + "valence": 0.35 + }, + { + "track_name": "Taco Truck x VB", + "track_id": "79wgotDiVZml9PiTtNtYBA", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5HOHne1wzItQlIYmLXLYfZ" + ], + "duration_ms": 353277, + "explicit": true, + "popularity": 68, + "acousticness": 0.625, + "danceability": 0.382, + "energy": 0.366, + "instrumentalness": 0.107, + "key": 9, + "liveness": 0.112, + "loudness": -12.146, + "mode": 0, + "speechiness": 0.0591, + "tempo": 157.862, + "time_signature": 4, + "valence": 0.0395 + }, + { + "track_name": "Text Book", + "track_id": "4brdb8L2Cy3e9AN8IfV9l8", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 303227, + "explicit": false, + "popularity": 60, + "acousticness": 0.824, + "danceability": 0.424, + "energy": 0.318, + "instrumentalness": 0.000542, + "key": 2, + "liveness": 0.114, + "loudness": -9.915, + "mode": 0, + "speechiness": 0.0427, + "tempo": 119.396, + "time_signature": 3, + "valence": 0.102 + }, + { + "track_name": "Blue Banisters", + "track_id": "4U9ACZETPOqGuJkWtjkjLF", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 293692, + "explicit": false, + "popularity": 61, + "acousticness": 0.937, + "danceability": 0.373, + "energy": 0.114, + "instrumentalness": 4.73e-05, + "key": 5, + "liveness": 0.104, + "loudness": -13.171, + "mode": 1, + "speechiness": 0.041, + "tempo": 90.945, + "time_signature": 1, + "valence": 0.172 + }, + { + "track_name": "Arcadia", + "track_id": "3EZTyh1wJEmreJH1aULPCj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 263399, + "explicit": false, + "popularity": 62, + "acousticness": 0.97, + "danceability": 0.323, + "energy": 0.106, + "instrumentalness": 5.94e-05, + "key": 10, + "liveness": 0.108, + "loudness": -10.374, + "mode": 1, + "speechiness": 0.0323, + "tempo": 91.455, + "time_signature": 4, + "valence": 0.158 + }, + { + "track_name": "Interlude - The Trio", + "track_id": "5rmIMPXAlfidbd9f2AfwlQ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 75960, + "explicit": false, + "popularity": 60, + "acousticness": 0.000689, + "danceability": 0.376, + "energy": 0.493, + "instrumentalness": 0.901, + "key": 2, + "liveness": 0.153, + "loudness": -14.03, + "mode": 1, + "speechiness": 0.0372, + "tempo": 102.845, + "time_signature": 4, + "valence": 0.119 + }, + { + "track_name": "Black Bathing Suit", + "track_id": "2LQGoKFKkZ9yk3UeYFj2xo", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 318040, + "explicit": true, + "popularity": 62, + "acousticness": 0.852, + "danceability": 0.418, + "energy": 0.377, + "instrumentalness": 4.61e-05, + "key": 11, + "liveness": 0.374, + "loudness": -11.612, + "mode": 1, + "speechiness": 0.0738, + "tempo": 113.936, + "time_signature": 4, + "valence": 0.283 + }, + { + "track_name": "If You Lie Down With Me", + "track_id": "1RPsOAaHaRu8JlVdeaciuL", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 265186, + "explicit": false, + "popularity": 66, + "acousticness": 0.913, + "danceability": 0.641, + "energy": 0.346, + "instrumentalness": 3.99e-05, + "key": 0, + "liveness": 0.104, + "loudness": -9.508, + "mode": 1, + "speechiness": 0.036, + "tempo": 122.101, + "time_signature": 4, + "valence": 0.187 + }, + { + "track_name": "Beautiful", + "track_id": "5uPpzqixdzAMXprr4P5aT5", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 215760, + "explicit": false, + "popularity": 59, + "acousticness": 0.96, + "danceability": 0.552, + "energy": 0.202, + "instrumentalness": 0.00154, + "key": 6, + "liveness": 0.225, + "loudness": -10.685, + "mode": 1, + "speechiness": 0.043, + "tempo": 78.021, + "time_signature": 4, + "valence": 0.237 + }, + { + "track_name": "Violets for Roses", + "track_id": "5yrAkKml7mtzmPPbjB2qTC", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 255040, + "explicit": false, + "popularity": 64, + "acousticness": 0.922, + "danceability": 0.513, + "energy": 0.21, + "instrumentalness": 0, + "key": 10, + "liveness": 0.123, + "loudness": -10.472, + "mode": 1, + "speechiness": 0.0301, + "tempo": 88.021, + "time_signature": 4, + "valence": 0.14 + }, + { + "track_name": "Dealer", + "track_id": "7iqQz931tn59mK6IZ3knRx", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 274293, + "explicit": true, + "popularity": 76, + "acousticness": 0.318, + "danceability": 0.602, + "energy": 0.59, + "instrumentalness": 0.000166, + "key": 0, + "liveness": 0.104, + "loudness": -6.346, + "mode": 0, + "speechiness": 0.0279, + "tempo": 130.08, + "time_signature": 4, + "valence": 0.381 + }, + { + "track_name": "Thunder", + "track_id": "4y9vLiQ9mQb6XNEtc4K6ou", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 259466, + "explicit": true, + "popularity": 69, + "acousticness": 0.674, + "danceability": 0.483, + "energy": 0.475, + "instrumentalness": 0.00167, + "key": 3, + "liveness": 0.115, + "loudness": -8.442, + "mode": 1, + "speechiness": 0.0291, + "tempo": 73.862, + "time_signature": 4, + "valence": 0.237 + }, + { + "track_name": "Wildflower Wildfire", + "track_id": "7fvTXmlzhOUE7WUD6aJC4N", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 287840, + "explicit": false, + "popularity": 60, + "acousticness": 0.873, + "danceability": 0.547, + "energy": 0.205, + "instrumentalness": 0.0502, + "key": 7, + "liveness": 0.113, + "loudness": -10.021, + "mode": 0, + "speechiness": 0.0277, + "tempo": 105.745, + "time_signature": 3, + "valence": 0.222 + }, + { + "track_name": "Nectar Of The Gods", + "track_id": "3qydJy5jc1UslvHkm3Hrve", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 259893, + "explicit": true, + "popularity": 60, + "acousticness": 0.888, + "danceability": 0.447, + "energy": 0.165, + "instrumentalness": 1.4e-06, + "key": 10, + "liveness": 0.177, + "loudness": -9.275, + "mode": 1, + "speechiness": 0.0342, + "tempo": 101.758, + "time_signature": 4, + "valence": 0.122 + }, + { + "track_name": "Living Legend", + "track_id": "6pZ9Nj3vzj1RW4ZkR9GcQ9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 241426, + "explicit": false, + "popularity": 63, + "acousticness": 0.935, + "danceability": 0.402, + "energy": 0.219, + "instrumentalness": 0.0034, + "key": 7, + "liveness": 0.102, + "loudness": -9.244, + "mode": 1, + "speechiness": 0.0318, + "tempo": 126.595, + "time_signature": 4, + "valence": 0.166 + }, + { + "track_name": "Cherry Blossom", + "track_id": "6bGevdEVEoEbLK72WFfIYR", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 197933, + "explicit": false, + "popularity": 61, + "acousticness": 0.982, + "danceability": 0.413, + "energy": 0.119, + "instrumentalness": 0.00219, + "key": 7, + "liveness": 0.112, + "loudness": -12.499, + "mode": 1, + "speechiness": 0.0348, + "tempo": 111.11, + "time_signature": 4, + "valence": 0.216 + }, + { + "track_name": "Sweet Carolina", + "track_id": "1Hezl8gsPpfK3N2by41Wxb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2wwCc6fcyhp1tfY3J6Javr" + ], + "duration_ms": 201779, + "explicit": true, + "popularity": 62, + "acousticness": 0.976, + "danceability": 0.45, + "energy": 0.148, + "instrumentalness": 0.000409, + "key": 1, + "liveness": 0.107, + "loudness": -11.802, + "mode": 1, + "speechiness": 0.0569, + "tempo": 79.727, + "time_signature": 5, + "valence": 0.0758 + }, + { + "track_name": "White Dress", + "track_id": "4Hl9rOqYomojCmxYfr25im", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 333710, + "explicit": false, + "popularity": 62, + "acousticness": 0.926, + "danceability": 0.493, + "energy": 0.263, + "instrumentalness": 0, + "key": 0, + "liveness": 0.0879, + "loudness": -12.805, + "mode": 1, + "speechiness": 0.0351, + "tempo": 122.792, + "time_signature": 4, + "valence": 0.158 + }, + { + "track_name": "Chemtrails Over The Country Club", + "track_id": "7bPWdJgx8vek7S5i5yAtvG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 271176, + "explicit": false, + "popularity": 81, + "acousticness": 0.877, + "danceability": 0.334, + "energy": 0.276, + "instrumentalness": 0.000249, + "key": 4, + "liveness": 0.113, + "loudness": -13.125, + "mode": 0, + "speechiness": 0.0643, + "tempo": 201.025, + "time_signature": 3, + "valence": 0.429 + }, + { + "track_name": "Tulsa Jesus Freak", + "track_id": "0hyImI8JaWONOrzKH7kJsC", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 215673, + "explicit": false, + "popularity": 67, + "acousticness": 0.918, + "danceability": 0.387, + "energy": 0.339, + "instrumentalness": 0.00272, + "key": 2, + "liveness": 0.13, + "loudness": -12.962, + "mode": 0, + "speechiness": 0.0489, + "tempo": 137.199, + "time_signature": 4, + "valence": 0.273 + }, + { + "track_name": "Let Me Love You Like A Woman", + "track_id": "1gxdWpeOUBpvB908fiZs4D", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 200661, + "explicit": false, + "popularity": 64, + "acousticness": 0.97, + "danceability": 0.303, + "energy": 0.249, + "instrumentalness": 1.95e-05, + "key": 0, + "liveness": 0.117, + "loudness": -11.715, + "mode": 1, + "speechiness": 0.111, + "tempo": 66.932, + "time_signature": 4, + "valence": 0.131 + }, + { + "track_name": "Wild At Heart", + "track_id": "5RJot1fR8C90lLXzHtUqpo", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 246609, + "explicit": false, + "popularity": 61, + "acousticness": 0.947, + "danceability": 0.397, + "energy": 0.206, + "instrumentalness": 1.35e-05, + "key": 2, + "liveness": 0.119, + "loudness": -12.487, + "mode": 1, + "speechiness": 0.0389, + "tempo": 120.702, + "time_signature": 1, + "valence": 0.27 + }, + { + "track_name": "Dark But Just A Game", + "track_id": "1dBBmAddRRIw6GwF7dPz6z", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 235664, + "explicit": true, + "popularity": 62, + "acousticness": 0.842, + "danceability": 0.397, + "energy": 0.262, + "instrumentalness": 6.6e-06, + "key": 0, + "liveness": 0.0999, + "loudness": -14.608, + "mode": 1, + "speechiness": 0.0916, + "tempo": 80.434, + "time_signature": 4, + "valence": 0.124 + }, + { + "track_name": "Not All Who Wander Are Lost", + "track_id": "0Z3JiHn6mhcObPmKhV9WRW", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 245634, + "explicit": false, + "popularity": 59, + "acousticness": 0.947, + "danceability": 0.445, + "energy": 0.116, + "instrumentalness": 1.69e-05, + "key": 7, + "liveness": 0.11, + "loudness": -14.87, + "mode": 1, + "speechiness": 0.0368, + "tempo": 167.992, + "time_signature": 4, + "valence": 0.139 + }, + { + "track_name": "Yosemite", + "track_id": "3WIifw9lqdgSZpt9renBAg", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 306205, + "explicit": false, + "popularity": 60, + "acousticness": 0.901, + "danceability": 0.584, + "energy": 0.283, + "instrumentalness": 0.0332, + "key": 9, + "liveness": 0.127, + "loudness": -12.893, + "mode": 0, + "speechiness": 0.0309, + "tempo": 106.068, + "time_signature": 4, + "valence": 0.278 + }, + { + "track_name": "Breaking Up Slowly", + "track_id": "1hn1kCOG5dm1XgZYKpfaLR", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2kWeFaiHBskk8oqky3KHcR" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 177535, + "explicit": false, + "popularity": 60, + "acousticness": 0.912, + "danceability": 0.37, + "energy": 0.314, + "instrumentalness": 2.09e-06, + "key": 10, + "liveness": 0.0989, + "loudness": -9.677, + "mode": 0, + "speechiness": 0.0445, + "tempo": 97.4, + "time_signature": 5, + "valence": 0.221 + }, + { + "track_name": "Dance Till We Die", + "track_id": "6TZitk9QD7531Jl1TT7TeH", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 243035, + "explicit": true, + "popularity": 58, + "acousticness": 0.904, + "danceability": 0.359, + "energy": 0.236, + "instrumentalness": 7.43e-06, + "key": 9, + "liveness": 0.116, + "loudness": -13.46, + "mode": 0, + "speechiness": 0.0432, + "tempo": 126.227, + "time_signature": 4, + "valence": 0.244 + }, + { + "track_name": "For Free", + "track_id": "2lhfd0CF0dFlwRVH8NG8vv", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "100sLnojEpcadRx4edEBA6", + "3Uqu1mEdkUJxPe7s31n1M9" + ], + "albums": [ + "6QeosPQpJckkW0Obir5RT8" + ], + "duration_ms": 251818, + "explicit": false, + "popularity": 57, + "acousticness": 0.98, + "danceability": 0.502, + "energy": 0.105, + "instrumentalness": 1.79e-05, + "key": 5, + "liveness": 0.0725, + "loudness": -13.381, + "mode": 1, + "speechiness": 0.0331, + "tempo": 114.043, + "time_signature": 3, + "valence": 0.203 + }, + { + "track_name": "Norman fucking Rockwell", + "track_id": "3RIgHHpnFKj5Rni1shokDj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 248934, + "explicit": true, + "popularity": 79, + "acousticness": 0.968, + "danceability": 0.215, + "energy": 0.203, + "instrumentalness": 0.0585, + "key": 5, + "liveness": 0.0923, + "loudness": -12.65, + "mode": 1, + "speechiness": 0.0346, + "tempo": 78.287, + "time_signature": 1, + "valence": 0.143 + }, + { + "track_name": "Mariners Apartment Complex", + "track_id": "6OG05bPAwUuV3OMvy2Vy1P", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 247150, + "explicit": true, + "popularity": 74, + "acousticness": 0.763, + "danceability": 0.531, + "energy": 0.252, + "instrumentalness": 0.000133, + "key": 9, + "liveness": 0.104, + "loudness": -12.765, + "mode": 1, + "speechiness": 0.028, + "tempo": 76.054, + "time_signature": 4, + "valence": 0.159 + }, + { + "track_name": "Venice Bitch", + "track_id": "3hwQhakFwm9soLEBnSDH17", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 577199, + "explicit": true, + "popularity": 70, + "acousticness": 0.913, + "danceability": 0.368, + "energy": 0.286, + "instrumentalness": 0.177, + "key": 9, + "liveness": 0.099, + "loudness": -13.031, + "mode": 0, + "speechiness": 0.0294, + "tempo": 77.826, + "time_signature": 4, + "valence": 0.312 + }, + { + "track_name": "Fuck it I love you", + "track_id": "7MtVPRGtZl6rPjMfLoI3Lh", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 218287, + "explicit": true, + "popularity": 72, + "acousticness": 0.895, + "danceability": 0.534, + "energy": 0.452, + "instrumentalness": 0.00165, + "key": 9, + "liveness": 0.125, + "loudness": -10.732, + "mode": 0, + "speechiness": 0.0359, + "tempo": 129.974, + "time_signature": 4, + "valence": 0.175 + }, + { + "track_name": "Doin' Time", + "track_id": "0Oqc0kKFsQ6MhFOLBNZIGX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 202192, + "explicit": true, + "popularity": 83, + "acousticness": 0.404, + "danceability": 0.641, + "energy": 0.559, + "instrumentalness": 0.00402, + "key": 7, + "liveness": 0.0937, + "loudness": -11.132, + "mode": 0, + "speechiness": 0.0355, + "tempo": 144.982, + "time_signature": 4, + "valence": 0.523 + }, + { + "track_name": "Love song", + "track_id": "5tyMJlMqaggzvuX7TtlrTe", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 229325, + "explicit": true, + "popularity": 70, + "acousticness": 0.966, + "danceability": 0.384, + "energy": 0.0701, + "instrumentalness": 0.00017, + "key": 9, + "liveness": 0.0805, + "loudness": -16.512, + "mode": 1, + "speechiness": 0.0367, + "tempo": 63.425, + "time_signature": 4, + "valence": 0.288 + }, + { + "track_name": "Cinnamon Girl", + "track_id": "2mdEsXPu8ZmkHRRtAdC09e", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 300683, + "explicit": false, + "popularity": 85, + "acousticness": 0.814, + "danceability": 0.294, + "energy": 0.337, + "instrumentalness": 0.414, + "key": 6, + "liveness": 0.14, + "loudness": -10.614, + "mode": 0, + "speechiness": 0.036, + "tempo": 91.781, + "time_signature": 5, + "valence": 0.135 + }, + { + "track_name": "How to disappear", + "track_id": "4qUtC2BwFC154Ha8YQRrkk", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 228071, + "explicit": false, + "popularity": 76, + "acousticness": 0.613, + "danceability": 0.538, + "energy": 0.304, + "instrumentalness": 0.000631, + "key": 9, + "liveness": 0.164, + "loudness": -11.79, + "mode": 1, + "speechiness": 0.0352, + "tempo": 78.997, + "time_signature": 3, + "valence": 0.065 + }, + { + "track_name": "California", + "track_id": "7oTE1KmtU2ml9zBhv9Reao", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 305899, + "explicit": false, + "popularity": 68, + "acousticness": 0.761, + "danceability": 0.449, + "energy": 0.41, + "instrumentalness": 0, + "key": 9, + "liveness": 0.0631, + "loudness": -8.067, + "mode": 0, + "speechiness": 0.0317, + "tempo": 123.758, + "time_signature": 4, + "valence": 0.195 + }, + { + "track_name": "The Next Best American Record", + "track_id": "7vRfxLcDDwgYW2WTrtEgUV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 349347, + "explicit": false, + "popularity": 64, + "acousticness": 0.616, + "danceability": 0.569, + "energy": 0.354, + "instrumentalness": 2.75e-05, + "key": 2, + "liveness": 0.112, + "loudness": -9.862, + "mode": 1, + "speechiness": 0.0315, + "tempo": 108.083, + "time_signature": 4, + "valence": 0.118 + }, + { + "track_name": "The greatest", + "track_id": "6ERZ30cRjVWGtVLhczX9aL", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 300360, + "explicit": true, + "popularity": 68, + "acousticness": 0.939, + "danceability": 0.443, + "energy": 0.226, + "instrumentalness": 0.0201, + "key": 2, + "liveness": 0.14, + "loudness": -12.507, + "mode": 0, + "speechiness": 0.0359, + "tempo": 79.142, + "time_signature": 3, + "valence": 0.196 + }, + { + "track_name": "Bartender", + "track_id": "5USsRaiqL1RNKRm1fTJ3JM", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 263441, + "explicit": false, + "popularity": 64, + "acousticness": 0.924, + "danceability": 0.582, + "energy": 0.102, + "instrumentalness": 0, + "key": 9, + "liveness": 0.174, + "loudness": -14.712, + "mode": 0, + "speechiness": 0.0391, + "tempo": 131.773, + "time_signature": 3, + "valence": 0.494 + }, + { + "track_name": "Happiness is a butterfly", + "track_id": "3lG6OtGDsYAOALxEmubQQm", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 272485, + "explicit": false, + "popularity": 79, + "acousticness": 0.969, + "danceability": 0.467, + "energy": 0.119, + "instrumentalness": 1.4e-06, + "key": 2, + "liveness": 0.0973, + "loudness": -10.99, + "mode": 1, + "speechiness": 0.0401, + "tempo": 70.499, + "time_signature": 4, + "valence": 0.156 + }, + { + "track_name": "hope is a dangerous thing for a woman like me to have - but I have it", + "track_id": "0fB77VOZ2FkQeKLv1DuEwp", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5XpEKORZ4y6OrCZSKsi46A" + ], + "duration_ms": 324498, + "explicit": true, + "popularity": 68, + "acousticness": 0.964, + "danceability": 0.49, + "energy": 0.104, + "instrumentalness": 0, + "key": 4, + "liveness": 0.162, + "loudness": -13.208, + "mode": 0, + "speechiness": 0.0635, + "tempo": 86.675, + "time_signature": 4, + "valence": 0.278 + }, + { + "track_name": "Love", + "track_id": "2Kerz9H9IejzeIpjhDJoYG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 272742, + "explicit": false, + "popularity": 71, + "acousticness": 0.487, + "danceability": 0.527, + "energy": 0.366, + "instrumentalness": 0.0023, + "key": 10, + "liveness": 0.11, + "loudness": -10.943, + "mode": 1, + "speechiness": 0.0277, + "tempo": 98.994, + "time_signature": 4, + "valence": 0.234 + }, + { + "track_name": "Lust For Life (with The Weeknd)", + "track_id": "0mt02gJ425Xjm7c3jYkOBn", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1Xyo4u8uXC1ZmMpatF05PJ" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 264066, + "explicit": false, + "popularity": 74, + "acousticness": 0.604, + "danceability": 0.504, + "energy": 0.655, + "instrumentalness": 0.00193, + "key": 0, + "liveness": 0.364, + "loudness": -8.644, + "mode": 0, + "speechiness": 0.0542, + "tempo": 99.982, + "time_signature": 4, + "valence": 0.262 + }, + { + "track_name": "13 Beaches", + "track_id": "3ZKRAzNAsiJrBGUM2BX9av", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 295569, + "explicit": false, + "popularity": 65, + "acousticness": 0.539, + "danceability": 0.333, + "energy": 0.389, + "instrumentalness": 0.0772, + "key": 7, + "liveness": 0.163, + "loudness": -9.132, + "mode": 1, + "speechiness": 0.0364, + "tempo": 144.204, + "time_signature": 4, + "valence": 0.25 + }, + { + "track_name": "Cherry", + "track_id": "1Ym6aMuT5bliaZMC67AmPp", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 180902, + "explicit": true, + "popularity": 77, + "acousticness": 0.048, + "danceability": 0.449, + "energy": 0.534, + "instrumentalness": 0.0011, + "key": 8, + "liveness": 0.384, + "loudness": -9.493, + "mode": 0, + "speechiness": 0.0494, + "tempo": 94.261, + "time_signature": 3, + "valence": 0.342 + }, + { + "track_name": "White Mustang", + "track_id": "6eygbzyL6hY8jFQTARDuo9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 164710, + "explicit": false, + "popularity": 70, + "acousticness": 0.456, + "danceability": 0.658, + "energy": 0.46, + "instrumentalness": 0.00111, + "key": 6, + "liveness": 0.0963, + "loudness": -8.646, + "mode": 0, + "speechiness": 0.0444, + "tempo": 114.801, + "time_signature": 4, + "valence": 0.223 + }, + { + "track_name": "Summer Bummer (feat. A$AP Rocky & Playboi Carti)", + "track_id": "5QqyRUZeBE04yJxsD1OC0I", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "13ubrt8QOOCPljQ2FL1Kca", + "699OTQXzgjhIYAHMy9RyPD" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 260672, + "explicit": true, + "popularity": 68, + "acousticness": 0.0155, + "danceability": 0.76, + "energy": 0.574, + "instrumentalness": 2.02e-05, + "key": 1, + "liveness": 0.199, + "loudness": -8.57, + "mode": 1, + "speechiness": 0.126, + "tempo": 134.981, + "time_signature": 4, + "valence": 0.137 + }, + { + "track_name": "Groupie Love (feat. A$AP Rocky)", + "track_id": "03hqMhmCZiNKMSPmVabPLP", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "13ubrt8QOOCPljQ2FL1Kca" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 264037, + "explicit": true, + "popularity": 66, + "acousticness": 0.113, + "danceability": 0.359, + "energy": 0.6, + "instrumentalness": 1.32e-06, + "key": 9, + "liveness": 0.0952, + "loudness": -7.317, + "mode": 1, + "speechiness": 0.0398, + "tempo": 175.894, + "time_signature": 4, + "valence": 0.195 + }, + { + "track_name": "In My Feelings", + "track_id": "269xqcgGTN9PlivhUkOLhX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 238718, + "explicit": true, + "popularity": 70, + "acousticness": 0.0553, + "danceability": 0.54, + "energy": 0.674, + "instrumentalness": 0.0608, + "key": 2, + "liveness": 0.112, + "loudness": -6.351, + "mode": 1, + "speechiness": 0.0802, + "tempo": 89.933, + "time_signature": 4, + "valence": 0.309 + }, + { + "track_name": "Coachella - Woodstock In My Mind", + "track_id": "5UPHeuDP0AnG830Yf3bJJD", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 258397, + "explicit": false, + "popularity": 58, + "acousticness": 0.189, + "danceability": 0.535, + "energy": 0.658, + "instrumentalness": 4.11e-05, + "key": 7, + "liveness": 0.0683, + "loudness": -7.425, + "mode": 1, + "speechiness": 0.0998, + "tempo": 129.835, + "time_signature": 4, + "valence": 0.413 + }, + { + "track_name": "God Bless America - And All The Beautiful Women In It", + "track_id": "7nns9KjsadA1Cx7as2eGNG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 276437, + "explicit": false, + "popularity": 57, + "acousticness": 0.411, + "danceability": 0.374, + "energy": 0.697, + "instrumentalness": 0.211, + "key": 9, + "liveness": 0.122, + "loudness": -6.544, + "mode": 1, + "speechiness": 0.0637, + "tempo": 87.96, + "time_signature": 4, + "valence": 0.244 + }, + { + "track_name": "When The World Was At War We Kept Dancing", + "track_id": "0dssTLrqY79Klk6jx2RXCj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 275616, + "explicit": true, + "popularity": 60, + "acousticness": 0.097, + "danceability": 0.616, + "energy": 0.605, + "instrumentalness": 0.00812, + "key": 7, + "liveness": 0.165, + "loudness": -7.234, + "mode": 1, + "speechiness": 0.0343, + "tempo": 116.031, + "time_signature": 4, + "valence": 0.185 + }, + { + "track_name": "Beautiful People Beautiful Problems (feat. Stevie Nicks)", + "track_id": "3O7p9Itz8PXUoAjD2vmuM6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "7crPfGd2k81ekOoSqQKWWz" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 253531, + "explicit": false, + "popularity": 63, + "acousticness": 0.834, + "danceability": 0.509, + "energy": 0.43, + "instrumentalness": 0.000854, + "key": 5, + "liveness": 0.0927, + "loudness": -8.387, + "mode": 1, + "speechiness": 0.0325, + "tempo": 122.919, + "time_signature": 4, + "valence": 0.128 + }, + { + "track_name": "Tomorrow Never Came (feat. Sean Ono Lennon)", + "track_id": "6VZwnDUMkAZs36g6v9MVQX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5JUYSPkis2Mk6HUbmMqk1m" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 307540, + "explicit": false, + "popularity": 64, + "acousticness": 0.819, + "danceability": 0.297, + "energy": 0.402, + "instrumentalness": 0.000181, + "key": 0, + "liveness": 0.109, + "loudness": -9.757, + "mode": 1, + "speechiness": 0.0346, + "tempo": 138.019, + "time_signature": 4, + "valence": 0.177 + }, + { + "track_name": "Heroin", + "track_id": "7lSdUlVf8k6kxklKkskb1m", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 355184, + "explicit": true, + "popularity": 63, + "acousticness": 0.556, + "danceability": 0.352, + "energy": 0.41, + "instrumentalness": 0.0113, + "key": 11, + "liveness": 0.114, + "loudness": -8.796, + "mode": 0, + "speechiness": 0.0388, + "tempo": 118.721, + "time_signature": 4, + "valence": 0.0952 + }, + { + "track_name": "Change", + "track_id": "3fx5ozORvvTGnSnOhUqrgj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 321200, + "explicit": false, + "popularity": 58, + "acousticness": 0.942, + "danceability": 0.558, + "energy": 0.246, + "instrumentalness": 0.00875, + "key": 9, + "liveness": 0.106, + "loudness": -10.914, + "mode": 0, + "speechiness": 0.0409, + "tempo": 85.672, + "time_signature": 4, + "valence": 0.303 + }, + { + "track_name": "Get Free", + "track_id": "761QvVHTibYjEi2r6A4g4Q", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xYiTrbTL57QO0bb4hXIKo" + ], + "duration_ms": 334294, + "explicit": false, + "popularity": 68, + "acousticness": 0.498, + "danceability": 0.205, + "energy": 0.472, + "instrumentalness": 0.000792, + "key": 10, + "liveness": 0.0953, + "loudness": -10.45, + "mode": 1, + "speechiness": 0.0718, + "tempo": 203.944, + "time_signature": 4, + "valence": 0.0392 + }, + { + "track_name": "Honeymoon", + "track_id": "4X5zaUdlRhvBWYnyQIKmH8", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 350058, + "explicit": false, + "popularity": 65, + "acousticness": 0.953, + "danceability": 0.169, + "energy": 0.269, + "instrumentalness": 0.00828, + "key": 5, + "liveness": 0.111, + "loudness": -13.265, + "mode": 0, + "speechiness": 0.036, + "tempo": 74.847, + "time_signature": 3, + "valence": 0.173 + }, + { + "track_name": "Music To Watch Boys To", + "track_id": "34rRFl0bz9PocxWuO2ca5J", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 290625, + "explicit": false, + "popularity": 67, + "acousticness": 0.713, + "danceability": 0.4, + "energy": 0.494, + "instrumentalness": 0.000334, + "key": 1, + "liveness": 0.238, + "loudness": -8.04, + "mode": 0, + "speechiness": 0.0367, + "tempo": 132.016, + "time_signature": 4, + "valence": 0.134 + }, + { + "track_name": "Terrence Loves You", + "track_id": "44JxL1qNXXQYniZ5T3MUs9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 290636, + "explicit": false, + "popularity": 61, + "acousticness": 0.975, + "danceability": 0.296, + "energy": 0.25, + "instrumentalness": 0.0187, + "key": 7, + "liveness": 0.0988, + "loudness": -10.088, + "mode": 1, + "speechiness": 0.0314, + "tempo": 102.031, + "time_signature": 1, + "valence": 0.0898 + }, + { + "track_name": "God Knows I Tried", + "track_id": "5R65WfxdtxpTNSIloTfIdM", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 280653, + "explicit": false, + "popularity": 62, + "acousticness": 0.846, + "danceability": 0.398, + "energy": 0.428, + "instrumentalness": 0.0338, + "key": 5, + "liveness": 0.185, + "loudness": -8.292, + "mode": 0, + "speechiness": 0.0275, + "tempo": 81.017, + "time_signature": 3, + "valence": 0.111 + }, + { + "track_name": "High By The Beach", + "track_id": "7g3htkaLz4ETFn0cifwM3y", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 257573, + "explicit": true, + "popularity": 72, + "acousticness": 0.244, + "danceability": 0.536, + "energy": 0.486, + "instrumentalness": 0.00788, + "key": 11, + "liveness": 0.12, + "loudness": -11.067, + "mode": 0, + "speechiness": 0.0346, + "tempo": 131.988, + "time_signature": 4, + "valence": 0.0968 + }, + { + "track_name": "Freak", + "track_id": "3sYDVtqO35oRSOIMx7dOqR", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 295093, + "explicit": false, + "popularity": 70, + "acousticness": 0.269, + "danceability": 0.287, + "energy": 0.43, + "instrumentalness": 0.000579, + "key": 5, + "liveness": 0.32, + "loudness": -10.014, + "mode": 0, + "speechiness": 0.033, + "tempo": 93.984, + "time_signature": 4, + "valence": 0.109 + }, + { + "track_name": "Art Deco", + "track_id": "5jqNQZBwbZWQXPWfo0ygZF", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 295066, + "explicit": false, + "popularity": 80, + "acousticness": 0.544, + "danceability": 0.282, + "energy": 0.464, + "instrumentalness": 0.215, + "key": 11, + "liveness": 0.111, + "loudness": -11.112, + "mode": 0, + "speechiness": 0.0533, + "tempo": 148.345, + "time_signature": 5, + "valence": 0.0596 + }, + { + "track_name": "Burnt Norton - Interlude", + "track_id": "14Oj2lH9MMI761zeGgnsyR", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 81960, + "explicit": false, + "popularity": 56, + "acousticness": 0.9, + "danceability": 0.28, + "energy": 0.304, + "instrumentalness": 0.806, + "key": 8, + "liveness": 0.135, + "loudness": -18.57, + "mode": 1, + "speechiness": 0.0359, + "tempo": 85.765, + "time_signature": 3, + "valence": 0.523 + }, + { + "track_name": "Religion", + "track_id": "1Yh4lOCbcskjSfYPDnn7EW", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 323280, + "explicit": false, + "popularity": 65, + "acousticness": 0.813, + "danceability": 0.416, + "energy": 0.459, + "instrumentalness": 0.0428, + "key": 9, + "liveness": 0.102, + "loudness": -9.977, + "mode": 0, + "speechiness": 0.0366, + "tempo": 135.689, + "time_signature": 4, + "valence": 0.175 + }, + { + "track_name": "Salvatore", + "track_id": "21qg0IBZf8R12qHd9A3AA4", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 281093, + "explicit": false, + "popularity": 75, + "acousticness": 0.675, + "danceability": 0.304, + "energy": 0.311, + "instrumentalness": 0.00195, + "key": 11, + "liveness": 0.12, + "loudness": -9.647, + "mode": 0, + "speechiness": 0.0344, + "tempo": 117.68, + "time_signature": 4, + "valence": 0.115 + }, + { + "track_name": "The Blackest Day", + "track_id": "45pI8224KKX9Gx5fiyvEAh", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 365760, + "explicit": false, + "popularity": 71, + "acousticness": 0.363, + "danceability": 0.445, + "energy": 0.522, + "instrumentalness": 0.000487, + "key": 2, + "liveness": 0.0797, + "loudness": -8.007, + "mode": 1, + "speechiness": 0.0331, + "tempo": 107.752, + "time_signature": 4, + "valence": 0.162 + }, + { + "track_name": "24", + "track_id": "302ZEWd1TDXvA4PLz0UQhj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 295960, + "explicit": false, + "popularity": 60, + "acousticness": 0.782, + "danceability": 0.284, + "energy": 0.372, + "instrumentalness": 0.000183, + "key": 8, + "liveness": 0.103, + "loudness": -9.821, + "mode": 0, + "speechiness": 0.0356, + "tempo": 98.181, + "time_signature": 4, + "valence": 0.0853 + }, + { + "track_name": "Swan Song", + "track_id": "1DYRRZ5rSlc1PopnB7azLZ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 323475, + "explicit": false, + "popularity": 60, + "acousticness": 0.636, + "danceability": 0.34, + "energy": 0.361, + "instrumentalness": 0.421, + "key": 1, + "liveness": 0.259, + "loudness": -11.567, + "mode": 0, + "speechiness": 0.0294, + "tempo": 81.765, + "time_signature": 4, + "valence": 0.0392 + }, + { + "track_name": "Don't Let Me Be Misunderstood", + "track_id": "0iq0P0HYtpChhUNH5KuqQK", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2DpEBrjCur1ythIZ10gJWw" + ], + "duration_ms": 181897, + "explicit": false, + "popularity": 57, + "acousticness": 0.316, + "danceability": 0.327, + "energy": 0.351, + "instrumentalness": 5.93e-06, + "key": 9, + "liveness": 0.107, + "loudness": -10.488, + "mode": 0, + "speechiness": 0.0327, + "tempo": 80.386, + "time_signature": 4, + "valence": 0.063 + }, + { + "track_name": "Cruel World", + "track_id": "6ayKgleoMF26lvU1Z7wVm7", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 399083, + "explicit": true, + "popularity": 66, + "acousticness": 0.274, + "danceability": 0.33, + "energy": 0.507, + "instrumentalness": 4.65e-06, + "key": 5, + "liveness": 0.122, + "loudness": -6.368, + "mode": 0, + "speechiness": 0.0339, + "tempo": 122.164, + "time_signature": 4, + "valence": 0.177 + }, + { + "track_name": "Ultraviolence", + "track_id": "1y3r6RXiJZNBV1EI0NggpS", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 251480, + "explicit": false, + "popularity": 77, + "acousticness": 0.278, + "danceability": 0.144, + "energy": 0.541, + "instrumentalness": 1.01e-05, + "key": 0, + "liveness": 0.101, + "loudness": -7.076, + "mode": 1, + "speechiness": 0.038, + "tempo": 79.262, + "time_signature": 3, + "valence": 0.0899 + }, + { + "track_name": "Shades Of Cool", + "track_id": "4VSg5K1hnbmIg4PwRdY6wV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 342093, + "explicit": false, + "popularity": 70, + "acousticness": 0.554, + "danceability": 0.262, + "energy": 0.482, + "instrumentalness": 0.0161, + "key": 2, + "liveness": 0.244, + "loudness": -6.863, + "mode": 0, + "speechiness": 0.0302, + "tempo": 137.918, + "time_signature": 3, + "valence": 0.0878 + }, + { + "track_name": "Brooklyn Baby", + "track_id": "1NZs6n6hl8UuMaX0UC0YTz", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 351640, + "explicit": true, + "popularity": 84, + "acousticness": 0.542, + "danceability": 0.404, + "energy": 0.664, + "instrumentalness": 0.00402, + "key": 1, + "liveness": 0.11, + "loudness": -6.698, + "mode": 1, + "speechiness": 0.0407, + "tempo": 107.747, + "time_signature": 4, + "valence": 0.0949 + }, + { + "track_name": "West Coast", + "track_id": "5Y6nVaayzitvsD5F7nr3DV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 256760, + "explicit": false, + "popularity": 85, + "acousticness": 0.194, + "danceability": 0.527, + "energy": 0.591, + "instrumentalness": 0.0194, + "key": 6, + "liveness": 0.0907, + "loudness": -7.664, + "mode": 0, + "speechiness": 0.0396, + "tempo": 123.167, + "time_signature": 4, + "valence": 0.461 + }, + { + "track_name": "Sad Girl", + "track_id": "11MyiSGZSYSmhhqwGUTtAq", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 317760, + "explicit": false, + "popularity": 79, + "acousticness": 0.539, + "danceability": 0.345, + "energy": 0.587, + "instrumentalness": 0.0731, + "key": 5, + "liveness": 0.119, + "loudness": -8.346, + "mode": 1, + "speechiness": 0.0364, + "tempo": 119.479, + "time_signature": 4, + "valence": 0.258 + }, + { + "track_name": "Pretty When You Cry", + "track_id": "6PnluwP0fjGnpIBsqTdUTq", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 234146, + "explicit": true, + "popularity": 79, + "acousticness": 0.399, + "danceability": 0.509, + "energy": 0.547, + "instrumentalness": 0, + "key": 10, + "liveness": 0.215, + "loudness": -6.548, + "mode": 0, + "speechiness": 0.0417, + "tempo": 109.436, + "time_signature": 4, + "valence": 0.197 + }, + { + "track_name": "Money Power Glory", + "track_id": "7Ms58r8G6Y0r1XLtpwoGxN", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 270680, + "explicit": false, + "popularity": 68, + "acousticness": 0.583, + "danceability": 0.349, + "energy": 0.525, + "instrumentalness": 0, + "key": 8, + "liveness": 0.35, + "loudness": -6.829, + "mode": 0, + "speechiness": 0.0451, + "tempo": 136.762, + "time_signature": 5, + "valence": 0.288 + }, + { + "track_name": "Fucked My Way Up To The Top", + "track_id": "70Laus6ozJIHDpfTtUSmAZ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 212226, + "explicit": true, + "popularity": 67, + "acousticness": 0.601, + "danceability": 0.52, + "energy": 0.69, + "instrumentalness": 0.201, + "key": 5, + "liveness": 0.137, + "loudness": -5.919, + "mode": 1, + "speechiness": 0.0554, + "tempo": 129.839, + "time_signature": 4, + "valence": 0.182 + }, + { + "track_name": "Old Money", + "track_id": "6IfPyMb0Sxptpx6jBUATOS", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 271480, + "explicit": false, + "popularity": 70, + "acousticness": 0.888, + "danceability": 0.312, + "energy": 0.168, + "instrumentalness": 6.59e-06, + "key": 10, + "liveness": 0.147, + "loudness": -12.476, + "mode": 0, + "speechiness": 0.0332, + "tempo": 108.115, + "time_signature": 1, + "valence": 0.154 + }, + { + "track_name": "The Other Woman", + "track_id": "1KuVEZR4xuQVNr1KkanAV4", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 181960, + "explicit": false, + "popularity": 78, + "acousticness": 0.822, + "danceability": 0.255, + "energy": 0.468, + "instrumentalness": 0.248, + "key": 7, + "liveness": 0.339, + "loudness": -6.43, + "mode": 0, + "speechiness": 0.0317, + "tempo": 111.67, + "time_signature": 4, + "valence": 0.175 + }, + { + "track_name": "Black Beauty", + "track_id": "63hHlajVLQnlFMAqSyePxO", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 314533, + "explicit": false, + "popularity": 70, + "acousticness": 0.27, + "danceability": 0.32, + "energy": 0.529, + "instrumentalness": 0.0136, + "key": 5, + "liveness": 0.0942, + "loudness": -7.595, + "mode": 1, + "speechiness": 0.0436, + "tempo": 119.898, + "time_signature": 4, + "valence": 0.103 + }, + { + "track_name": "Guns And Roses", + "track_id": "0vfPEfQk0ZCHExTZ007Ryr", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 270640, + "explicit": false, + "popularity": 62, + "acousticness": 0.3, + "danceability": 0.533, + "energy": 0.666, + "instrumentalness": 0.00862, + "key": 8, + "liveness": 0.115, + "loudness": -8.957, + "mode": 0, + "speechiness": 0.0448, + "tempo": 108.928, + "time_signature": 4, + "valence": 0.343 + }, + { + "track_name": "Florida Kilos", + "track_id": "0iQPnK3bi7O27c5T2HBTdr", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1ORxRsK3MrSLvh7VQTF01F" + ], + "duration_ms": 256040, + "explicit": false, + "popularity": 68, + "acousticness": 0.28, + "danceability": 0.266, + "energy": 0.513, + "instrumentalness": 5.98e-05, + "key": 0, + "liveness": 0.11, + "loudness": -7.852, + "mode": 1, + "speechiness": 0.0388, + "tempo": 200.781, + "time_signature": 4, + "valence": 0.579 + }, + { + "track_name": "Ride", + "track_id": "4RnVVU2wewkcPYEZAMFBrr", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 289080, + "explicit": true, + "popularity": 51, + "acousticness": 0.128, + "danceability": 0.373, + "energy": 0.686, + "instrumentalness": 1.96e-06, + "key": 0, + "liveness": 0.383, + "loudness": -5.52, + "mode": 1, + "speechiness": 0.034, + "tempo": 93.763, + "time_signature": 4, + "valence": 0.189 + }, + { + "track_name": "American", + "track_id": "3B5zfx7WDlIzoLephvyrfc", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 248907, + "explicit": false, + "popularity": 45, + "acousticness": 0.535, + "danceability": 0.397, + "energy": 0.585, + "instrumentalness": 0.000438, + "key": 7, + "liveness": 0.0976, + "loudness": -6.518, + "mode": 1, + "speechiness": 0.0359, + "tempo": 143.983, + "time_signature": 4, + "valence": 0.18 + }, + { + "track_name": "Cola", + "track_id": "29ryZ3PkPU9SKe3ZAIwnrJ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 260893, + "explicit": true, + "popularity": 47, + "acousticness": 0.0699, + "danceability": 0.298, + "energy": 0.668, + "instrumentalness": 2.44e-05, + "key": 1, + "liveness": 0.59, + "loudness": -5.536, + "mode": 0, + "speechiness": 0.0478, + "tempo": 110.063, + "time_signature": 4, + "valence": 0.121 + }, + { + "track_name": "Body Electric", + "track_id": "1ApG71dw2jb1wDnFvc8BIg", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 233440, + "explicit": false, + "popularity": 45, + "acousticness": 0.466, + "danceability": 0.245, + "energy": 0.492, + "instrumentalness": 0, + "key": 1, + "liveness": 0.0851, + "loudness": -9.397, + "mode": 0, + "speechiness": 0.0593, + "tempo": 167.7, + "time_signature": 3, + "valence": 0.104 + }, + { + "track_name": "Blue Velvet", + "track_id": "1aWMKK349BWlQYuwJWUlc8", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 158653, + "explicit": false, + "popularity": 45, + "acousticness": 0.812, + "danceability": 0.189, + "energy": 0.317, + "instrumentalness": 0.0719, + "key": 10, + "liveness": 0.214, + "loudness": -8.631, + "mode": 1, + "speechiness": 0.028, + "tempo": 84.809, + "time_signature": 4, + "valence": 0.251 + }, + { + "track_name": "Gods & Monsters", + "track_id": "2Yk8tgWVPzpEm0seo3xle6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 237640, + "explicit": true, + "popularity": 47, + "acousticness": 0.00193, + "danceability": 0.352, + "energy": 0.725, + "instrumentalness": 2.73e-06, + "key": 8, + "liveness": 0.22, + "loudness": -6.463, + "mode": 0, + "speechiness": 0.0656, + "tempo": 189.767, + "time_signature": 4, + "valence": 0.339 + }, + { + "track_name": "Yayo", + "track_id": "0DMjfjjSarASsvf4VheeHY", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 321053, + "explicit": false, + "popularity": 43, + "acousticness": 0.926, + "danceability": 0.506, + "energy": 0.201, + "instrumentalness": 0.000411, + "key": 3, + "liveness": 0.253, + "loudness": -12.931, + "mode": 0, + "speechiness": 0.0294, + "tempo": 71.925, + "time_signature": 4, + "valence": 0.145 + }, + { + "track_name": "Bel Air", + "track_id": "0e53YdXW9rJSxAI07UpO1s", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3Sn5DDHo0l6lxSYVo8CqdK" + ], + "duration_ms": 237640, + "explicit": false, + "popularity": 43, + "acousticness": 0.864, + "danceability": 0.346, + "energy": 0.42, + "instrumentalness": 0.0875, + "key": 2, + "liveness": 0.901, + "loudness": -11.506, + "mode": 0, + "speechiness": 0.0298, + "tempo": 83.56, + "time_signature": 4, + "valence": 0.303 + }, + { + "track_name": "Born To Die", + "track_id": "5kMAugdkH2coRHRnW5FuDb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 286253, + "explicit": false, + "popularity": 58, + "acousticness": 0.186, + "danceability": 0.316, + "energy": 0.636, + "instrumentalness": 0.00016, + "key": 4, + "liveness": 0.198, + "loudness": -6.631, + "mode": 0, + "speechiness": 0.0424, + "tempo": 171.564, + "time_signature": 4, + "valence": 0.4 + }, + { + "track_name": "Off To The Races", + "track_id": "2MPXgW4JEswl0T70mI2Lli", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 299933, + "explicit": false, + "popularity": 53, + "acousticness": 0.0633, + "danceability": 0.392, + "energy": 0.724, + "instrumentalness": 0.00192, + "key": 4, + "liveness": 0.407, + "loudness": -5.566, + "mode": 0, + "speechiness": 0.0594, + "tempo": 160.09, + "time_signature": 4, + "valence": 0.129 + }, + { + "track_name": "Blue Jeans - Remastered 2011", + "track_id": "1NsczXihNwzVMRLxTehCmM", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 209440, + "explicit": true, + "popularity": 52, + "acousticness": 0.437, + "danceability": 0.55, + "energy": 0.829, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0801, + "loudness": -4.399, + "mode": 1, + "speechiness": 0.0629, + "tempo": 117.956, + "time_signature": 4, + "valence": 0.493 + }, + { + "track_name": "Video Games", + "track_id": "3SSdi65qoBl2FdsBWtccre", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 281946, + "explicit": false, + "popularity": 56, + "acousticness": 0.812, + "danceability": 0.251, + "energy": 0.256, + "instrumentalness": 0, + "key": 6, + "liveness": 0.0884, + "loudness": -9.682, + "mode": 0, + "speechiness": 0.0311, + "tempo": 82.29, + "time_signature": 5, + "valence": 0.168 + }, + { + "track_name": "Diet Mountain Dew", + "track_id": "21xo9jhNSsYyNk8TRKBkY0", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 222920, + "explicit": false, + "popularity": 58, + "acousticness": 0.285, + "danceability": 0.459, + "energy": 0.684, + "instrumentalness": 0, + "key": 10, + "liveness": 0.425, + "loudness": -5.971, + "mode": 0, + "speechiness": 0.0881, + "tempo": 175.728, + "time_signature": 4, + "valence": 0.605 + }, + { + "track_name": "National Anthem", + "track_id": "5JyDveG5JnK2PqEXtETUp1", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 230533, + "explicit": false, + "popularity": 60, + "acousticness": 0.542, + "danceability": 0.538, + "energy": 0.901, + "instrumentalness": 0.000152, + "key": 0, + "liveness": 0.101, + "loudness": -5.999, + "mode": 0, + "speechiness": 0.215, + "tempo": 84.951, + "time_signature": 4, + "valence": 0.423 + }, + { + "track_name": "Dark Paradise", + "track_id": "2wObnNMZce8ntVt8fckSuX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 243173, + "explicit": false, + "popularity": 52, + "acousticness": 0.117, + "danceability": 0.579, + "energy": 0.636, + "instrumentalness": 0, + "key": 1, + "liveness": 0.172, + "loudness": -8.354, + "mode": 0, + "speechiness": 0.0649, + "tempo": 120.041, + "time_signature": 4, + "valence": 0.403 + }, + { + "track_name": "Radio", + "track_id": "7tk7sKS35NTjOPCKsh9Y7f", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 214586, + "explicit": true, + "popularity": 54, + "acousticness": 0.219, + "danceability": 0.326, + "energy": 0.843, + "instrumentalness": 2.63e-05, + "key": 2, + "liveness": 0.0877, + "loudness": -5.242, + "mode": 1, + "speechiness": 0.0893, + "tempo": 75.139, + "time_signature": 4, + "valence": 0.167 + }, + { + "track_name": "Carmen", + "track_id": "4px9Zlkyc0YvabKt11kQaX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 248720, + "explicit": false, + "popularity": 51, + "acousticness": 0.0864, + "danceability": 0.506, + "energy": 0.424, + "instrumentalness": 0.000376, + "key": 1, + "liveness": 0.127, + "loudness": -9.568, + "mode": 0, + "speechiness": 0.0317, + "tempo": 100.017, + "time_signature": 4, + "valence": 0.038 + }, + { + "track_name": "Million Dollar Man", + "track_id": "5CKtWWyUYLYOXr720B8eT2", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 230120, + "explicit": false, + "popularity": 52, + "acousticness": 0.494, + "danceability": 0.201, + "energy": 0.586, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0662, + "loudness": -5.979, + "mode": 0, + "speechiness": 0.0566, + "tempo": 195.767, + "time_signature": 3, + "valence": 0.532 + }, + { + "track_name": "Summertime Sadness", + "track_id": "61ZGyX8OgIlxJZkZn64IjO", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 264773, + "explicit": false, + "popularity": 55, + "acousticness": 0.051, + "danceability": 0.564, + "energy": 0.649, + "instrumentalness": 0, + "key": 1, + "liveness": 0.121, + "loudness": -6.811, + "mode": 0, + "speechiness": 0.0333, + "tempo": 111.949, + "time_signature": 4, + "valence": 0.201 + }, + { + "track_name": "This Is What Makes Us Girls", + "track_id": "3o5qyByGDqCLLt9yDR0LsH", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4vXt6IpMcSnqonljffWlMI" + ], + "duration_ms": 240306, + "explicit": false, + "popularity": 50, + "acousticness": 0.101, + "danceability": 0.534, + "energy": 0.837, + "instrumentalness": 0.0211, + "key": 2, + "liveness": 0.19, + "loudness": -6.9, + "mode": 0, + "speechiness": 0.104, + "tempo": 138.04, + "time_signature": 4, + "valence": 0.423 + }, + { + "track_name": "Born To Die", + "track_id": "5wEreUfwxZxWnEol61ulIi", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 286253, + "explicit": false, + "popularity": 69, + "acousticness": 0.2, + "danceability": 0.393, + "energy": 0.634, + "instrumentalness": 0.000166, + "key": 4, + "liveness": 0.198, + "loudness": -6.629, + "mode": 0, + "speechiness": 0.0378, + "tempo": 85.767, + "time_signature": 4, + "valence": 0.395 + }, + { + "track_name": "Off To The Races", + "track_id": "4dtbA0yooUSB9wLisRuJby", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 299933, + "explicit": false, + "popularity": 57, + "acousticness": 0.0601, + "danceability": 0.398, + "energy": 0.724, + "instrumentalness": 0.00205, + "key": 4, + "liveness": 0.406, + "loudness": -5.566, + "mode": 0, + "speechiness": 0.0604, + "tempo": 160.068, + "time_signature": 4, + "valence": 0.126 + }, + { + "track_name": "Blue Jeans - Remastered 2011", + "track_id": "77XvocHaWXkG39G4qag6BG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 209440, + "explicit": true, + "popularity": 59, + "acousticness": 0.432, + "danceability": 0.553, + "energy": 0.828, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0801, + "loudness": -4.399, + "mode": 1, + "speechiness": 0.0635, + "tempo": 117.948, + "time_signature": 4, + "valence": 0.504 + }, + { + "track_name": "Video Games", + "track_id": "3WD91HQDBIavSapet3ZpjG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 281946, + "explicit": false, + "popularity": 72, + "acousticness": 0.808, + "danceability": 0.39, + "energy": 0.252, + "instrumentalness": 0, + "key": 6, + "liveness": 0.0887, + "loudness": -9.666, + "mode": 0, + "speechiness": 0.0298, + "tempo": 122.053, + "time_signature": 4, + "valence": 0.181 + }, + { + "track_name": "Diet Mountain Dew", + "track_id": "6BFnRhvKCclDQOajt8dBGi", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 222920, + "explicit": false, + "popularity": 73, + "acousticness": 0.284, + "danceability": 0.442, + "energy": 0.68, + "instrumentalness": 0, + "key": 10, + "liveness": 0.421, + "loudness": -5.971, + "mode": 0, + "speechiness": 0.0858, + "tempo": 176.09, + "time_signature": 4, + "valence": 0.601 + }, + { + "track_name": "National Anthem", + "track_id": "2nvXyajLAAV9Iwy8K9EbUd", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 230533, + "explicit": false, + "popularity": 68, + "acousticness": 0.566, + "danceability": 0.533, + "energy": 0.901, + "instrumentalness": 0.000147, + "key": 0, + "liveness": 0.102, + "loudness": -6.008, + "mode": 0, + "speechiness": 0.24, + "tempo": 84.959, + "time_signature": 4, + "valence": 0.432 + }, + { + "track_name": "Dark Paradise", + "track_id": "349XIp8EgHWJiIg5K0CUft", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 243173, + "explicit": false, + "popularity": 64, + "acousticness": 0.114, + "danceability": 0.582, + "energy": 0.637, + "instrumentalness": 0, + "key": 11, + "liveness": 0.155, + "loudness": -8.347, + "mode": 0, + "speechiness": 0.0621, + "tempo": 119.996, + "time_signature": 4, + "valence": 0.411 + }, + { + "track_name": "Radio", + "track_id": "3QhfFRPkhPCR1RMJWV1gde", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 214586, + "explicit": true, + "popularity": 76, + "acousticness": 0.215, + "danceability": 0.42, + "energy": 0.837, + "instrumentalness": 2.96e-05, + "key": 2, + "liveness": 0.0876, + "loudness": -5.24, + "mode": 1, + "speechiness": 0.061, + "tempo": 75.043, + "time_signature": 4, + "valence": 0.196 + }, + { + "track_name": "Carmen", + "track_id": "5wmkKoVBUuXt6Iemn9Xnwe", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 248720, + "explicit": false, + "popularity": 55, + "acousticness": 0.0878, + "danceability": 0.514, + "energy": 0.426, + "instrumentalness": 0.000334, + "key": 1, + "liveness": 0.13, + "loudness": -9.557, + "mode": 0, + "speechiness": 0.0303, + "tempo": 100.029, + "time_signature": 4, + "valence": 0.0377 + }, + { + "track_name": "Million Dollar Man", + "track_id": "4fdalZcclcvcx5N1lytlNL", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 230120, + "explicit": false, + "popularity": 57, + "acousticness": 0.502, + "danceability": 0.201, + "energy": 0.589, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0663, + "loudness": -5.97, + "mode": 0, + "speechiness": 0.0458, + "tempo": 197.847, + "time_signature": 3, + "valence": 0.55 + }, + { + "track_name": "Summertime Sadness", + "track_id": "1Ist6PR2BZR3n2z2Y5R6S1", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 264773, + "explicit": false, + "popularity": 78, + "acousticness": 0.0477, + "danceability": 0.566, + "energy": 0.647, + "instrumentalness": 0, + "key": 1, + "liveness": 0.121, + "loudness": -6.815, + "mode": 0, + "speechiness": 0.0335, + "tempo": 111.96, + "time_signature": 4, + "valence": 0.22 + }, + { + "track_name": "This Is What Makes Us Girls", + "track_id": "2oYbXLPGYQvSv6RjSh6t7R", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 238373, + "explicit": false, + "popularity": 56, + "acousticness": 0.103, + "danceability": 0.533, + "energy": 0.835, + "instrumentalness": 0.0203, + "key": 2, + "liveness": 0.189, + "loudness": -6.897, + "mode": 0, + "speechiness": 0.101, + "tempo": 138.023, + "time_signature": 4, + "valence": 0.438 + }, + { + "track_name": "Without You", + "track_id": "4r3v5fSWyEoZR7HQVUcYYb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 228933, + "explicit": false, + "popularity": 53, + "acousticness": 0.693, + "danceability": 0.586, + "energy": 0.575, + "instrumentalness": 0.00022, + "key": 3, + "liveness": 0.126, + "loudness": -8.404, + "mode": 0, + "speechiness": 0.0372, + "tempo": 111.948, + "time_signature": 4, + "valence": 0.595 + }, + { + "track_name": "Lolita", + "track_id": "611HJpx18KLwj4yAR9loYk", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 219026, + "explicit": false, + "popularity": 57, + "acousticness": 0.0821, + "danceability": 0.503, + "energy": 0.94, + "instrumentalness": 4.74e-05, + "key": 0, + "liveness": 0.339, + "loudness": -4.28, + "mode": 0, + "speechiness": 0.107, + "tempo": 136.001, + "time_signature": 4, + "valence": 0.151 + }, + { + "track_name": "Lucky Ones", + "track_id": "4GemDvQ88hjDKT1hWDJcLf", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 227306, + "explicit": false, + "popularity": 50, + "acousticness": 0.792, + "danceability": 0.321, + "energy": 0.425, + "instrumentalness": 7.16e-06, + "key": 0, + "liveness": 0.146, + "loudness": -7.19, + "mode": 1, + "speechiness": 0.0286, + "tempo": 134.436, + "time_signature": 4, + "valence": 0.319 + }, + { + "track_name": "Ride", + "track_id": "0ZyfiFudK9Si2n2G9RkiWj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 289080, + "explicit": true, + "popularity": 64, + "acousticness": 0.128, + "danceability": 0.373, + "energy": 0.686, + "instrumentalness": 1.96e-06, + "key": 0, + "liveness": 0.383, + "loudness": -5.52, + "mode": 1, + "speechiness": 0.034, + "tempo": 93.763, + "time_signature": 4, + "valence": 0.189 + }, + { + "track_name": "American", + "track_id": "7uwOtFROjnFIhozLrqbp4R", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 248907, + "explicit": false, + "popularity": 51, + "acousticness": 0.535, + "danceability": 0.397, + "energy": 0.585, + "instrumentalness": 0.000438, + "key": 7, + "liveness": 0.0976, + "loudness": -6.518, + "mode": 1, + "speechiness": 0.0359, + "tempo": 143.983, + "time_signature": 4, + "valence": 0.18 + }, + { + "track_name": "Cola", + "track_id": "4XjYVIweUldL23o4wsgQ3c", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 260893, + "explicit": true, + "popularity": 59, + "acousticness": 0.0699, + "danceability": 0.298, + "energy": 0.668, + "instrumentalness": 2.44e-05, + "key": 1, + "liveness": 0.59, + "loudness": -5.536, + "mode": 0, + "speechiness": 0.0478, + "tempo": 110.063, + "time_signature": 4, + "valence": 0.121 + }, + { + "track_name": "Body Electric", + "track_id": "3mCftPkn17Jyn2j116sWWc", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 233440, + "explicit": false, + "popularity": 52, + "acousticness": 0.466, + "danceability": 0.245, + "energy": 0.492, + "instrumentalness": 0, + "key": 1, + "liveness": 0.0851, + "loudness": -9.397, + "mode": 0, + "speechiness": 0.0593, + "tempo": 167.7, + "time_signature": 3, + "valence": 0.104 + }, + { + "track_name": "Blue Velvet", + "track_id": "6ad3ZfAQ6zYiRCdXYXoOrG", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 158653, + "explicit": false, + "popularity": 51, + "acousticness": 0.812, + "danceability": 0.189, + "energy": 0.317, + "instrumentalness": 0.0719, + "key": 10, + "liveness": 0.214, + "loudness": -8.631, + "mode": 1, + "speechiness": 0.028, + "tempo": 84.808, + "time_signature": 4, + "valence": 0.251 + }, + { + "track_name": "Gods & Monsters", + "track_id": "6sGaavvDeGTY3wV9hzIEOP", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 237640, + "explicit": true, + "popularity": 56, + "acousticness": 0.00193, + "danceability": 0.352, + "energy": 0.725, + "instrumentalness": 2.73e-06, + "key": 8, + "liveness": 0.22, + "loudness": -6.463, + "mode": 0, + "speechiness": 0.0656, + "tempo": 189.767, + "time_signature": 4, + "valence": 0.339 + }, + { + "track_name": "Yayo", + "track_id": "34l2nKu9kSj0BZahVIAT3L", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 321053, + "explicit": false, + "popularity": 50, + "acousticness": 0.926, + "danceability": 0.506, + "energy": 0.201, + "instrumentalness": 0.000411, + "key": 3, + "liveness": 0.253, + "loudness": -12.931, + "mode": 0, + "speechiness": 0.0294, + "tempo": 71.925, + "time_signature": 4, + "valence": 0.145 + }, + { + "track_name": "Bel Air", + "track_id": "5PBQHazfwCEZSopxLOLXmF", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 237640, + "explicit": false, + "popularity": 49, + "acousticness": 0.864, + "danceability": 0.346, + "energy": 0.42, + "instrumentalness": 0.0875, + "key": 2, + "liveness": 0.901, + "loudness": -11.506, + "mode": 0, + "speechiness": 0.0298, + "tempo": 83.56, + "time_signature": 4, + "valence": 0.303 + }, + { + "track_name": "Burning Desire", + "track_id": "2Za7Yhteh4XcUXnNYxTIHH", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0Dt3FbpMQwjoT5KNAw0IXR" + ], + "duration_ms": 231132, + "explicit": false, + "popularity": 63, + "acousticness": 0.842, + "danceability": 0.481, + "energy": 0.641, + "instrumentalness": 0.00454, + "key": 7, + "liveness": 0.134, + "loudness": -10.8, + "mode": 1, + "speechiness": 0.132, + "tempo": 131.812, + "time_signature": 4, + "valence": 0.161 + }, + { + "track_name": "Born To Die", + "track_id": "4Ouhoi2lAhrLJKFzUqEzwl", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 285400, + "explicit": false, + "popularity": 77, + "acousticness": 0.222, + "danceability": 0.428, + "energy": 0.626, + "instrumentalness": 8.22e-05, + "key": 4, + "liveness": 0.277, + "loudness": -6.639, + "mode": 0, + "speechiness": 0.0339, + "tempo": 86.02, + "time_signature": 4, + "valence": 0.379 + }, + { + "track_name": "Off To The Races", + "track_id": "3uUCgL0cbSd0isnqhHCm1f", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 299933, + "explicit": false, + "popularity": 66, + "acousticness": 0.0621, + "danceability": 0.399, + "energy": 0.721, + "instrumentalness": 0.00282, + "key": 4, + "liveness": 0.278, + "loudness": -5.562, + "mode": 0, + "speechiness": 0.0523, + "tempo": 160.125, + "time_signature": 4, + "valence": 0.113 + }, + { + "track_name": "Blue Jeans", + "track_id": "4RyK6N4IQ85xxLgguQAFH5", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 209440, + "explicit": true, + "popularity": 71, + "acousticness": 0.418, + "danceability": 0.558, + "energy": 0.837, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0821, + "loudness": -4.405, + "mode": 1, + "speechiness": 0.0633, + "tempo": 117.963, + "time_signature": 4, + "valence": 0.488 + }, + { + "track_name": "Video Games", + "track_id": "0fBSs3fRoh1yJcne77fdu9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 281960, + "explicit": false, + "popularity": 79, + "acousticness": 0.811, + "danceability": 0.236, + "energy": 0.249, + "instrumentalness": 1e-06, + "key": 6, + "liveness": 0.087, + "loudness": -9.595, + "mode": 0, + "speechiness": 0.0348, + "tempo": 72.847, + "time_signature": 5, + "valence": 0.181 + }, + { + "track_name": "Diet Mountain Dew", + "track_id": "2vtmY2mSccRzKGjtcHSzI3", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 222920, + "explicit": false, + "popularity": 80, + "acousticness": 0.276, + "danceability": 0.595, + "energy": 0.696, + "instrumentalness": 0, + "key": 10, + "liveness": 0.411, + "loudness": -5.921, + "mode": 0, + "speechiness": 0.0417, + "tempo": 88.013, + "time_signature": 4, + "valence": 0.533 + }, + { + "track_name": "National Anthem", + "track_id": "7cNz65PfCatRXoX7QtqM2A", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 230520, + "explicit": false, + "popularity": 76, + "acousticness": 0.531, + "danceability": 0.532, + "energy": 0.899, + "instrumentalness": 0.000146, + "key": 0, + "liveness": 0.0957, + "loudness": -5.935, + "mode": 0, + "speechiness": 0.244, + "tempo": 85.0, + "time_signature": 4, + "valence": 0.436 + }, + { + "track_name": "Dark Paradise", + "track_id": "6qqdFWe7C4LsBjWbXQdsHA", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 243187, + "explicit": false, + "popularity": 72, + "acousticness": 0.0953, + "danceability": 0.6, + "energy": 0.653, + "instrumentalness": 0, + "key": 1, + "liveness": 0.122, + "loudness": -8.309, + "mode": 0, + "speechiness": 0.0594, + "tempo": 119.994, + "time_signature": 4, + "valence": 0.43 + }, + { + "track_name": "Radio", + "track_id": "3taCbWWTilb7eNMsAzOBq4", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 214573, + "explicit": true, + "popularity": 83, + "acousticness": 0.188, + "danceability": 0.423, + "energy": 0.857, + "instrumentalness": 2.63e-05, + "key": 2, + "liveness": 0.105, + "loudness": -5.173, + "mode": 1, + "speechiness": 0.0687, + "tempo": 75.024, + "time_signature": 4, + "valence": 0.196 + }, + { + "track_name": "Carmen", + "track_id": "1FaHPLv48VjsTkPCQOH7bv", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 248720, + "explicit": false, + "popularity": 65, + "acousticness": 0.098, + "danceability": 0.524, + "energy": 0.427, + "instrumentalness": 0.000273, + "key": 1, + "liveness": 0.129, + "loudness": -9.57, + "mode": 0, + "speechiness": 0.0297, + "tempo": 100.024, + "time_signature": 4, + "valence": 0.0379 + }, + { + "track_name": "Million Dollar Man", + "track_id": "7LQKuOaqJrNgVIGLFnfvdn", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 231573, + "explicit": false, + "popularity": 66, + "acousticness": 0.484, + "danceability": 0.382, + "energy": 0.589, + "instrumentalness": 0, + "key": 6, + "liveness": 0.131, + "loudness": -5.991, + "mode": 1, + "speechiness": 0.0359, + "tempo": 65.627, + "time_signature": 4, + "valence": 0.511 + }, + { + "track_name": "Summertime Sadness", + "track_id": "3BJe4B8zGnqEdQPMvfVjuS", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 265427, + "explicit": false, + "popularity": 86, + "acousticness": 0.0542, + "danceability": 0.565, + "energy": 0.654, + "instrumentalness": 1.8e-06, + "key": 1, + "liveness": 0.122, + "loudness": -6.826, + "mode": 0, + "speechiness": 0.0335, + "tempo": 111.968, + "time_signature": 4, + "valence": 0.235 + }, + { + "track_name": "This Is What Makes Us Girls", + "track_id": "1Lw2xRuW5fcieRPfoskgog", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 238427, + "explicit": false, + "popularity": 62, + "acousticness": 0.0904, + "danceability": 0.534, + "energy": 0.842, + "instrumentalness": 0.0388, + "key": 2, + "liveness": 0.203, + "loudness": -7.031, + "mode": 0, + "speechiness": 0.0925, + "tempo": 138.004, + "time_signature": 4, + "valence": 0.441 + }, + { + "track_name": "Without You", + "track_id": "6g4RVB6qiuySTw9FCV1HEM", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 229293, + "explicit": false, + "popularity": 61, + "acousticness": 0.636, + "danceability": 0.586, + "energy": 0.593, + "instrumentalness": 0.000131, + "key": 6, + "liveness": 0.115, + "loudness": -8.394, + "mode": 1, + "speechiness": 0.0329, + "tempo": 111.942, + "time_signature": 4, + "valence": 0.668 + }, + { + "track_name": "Lolita", + "track_id": "4MDpkzAyG2X0dmtOU0ZESX", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 220040, + "explicit": false, + "popularity": 64, + "acousticness": 0.0744, + "danceability": 0.493, + "energy": 0.946, + "instrumentalness": 4.89e-05, + "key": 0, + "liveness": 0.351, + "loudness": -4.304, + "mode": 0, + "speechiness": 0.124, + "tempo": 135.955, + "time_signature": 4, + "valence": 0.134 + }, + { + "track_name": "Lucky Ones", + "track_id": "24h1notzzKOcLZSdRYa7yn", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 225069, + "explicit": false, + "popularity": 58, + "acousticness": 0.778, + "danceability": 0.375, + "energy": 0.416, + "instrumentalness": 2.48e-06, + "key": 0, + "liveness": 0.23, + "loudness": -7.149, + "mode": 1, + "speechiness": 0.0283, + "tempo": 134.923, + "time_signature": 4, + "valence": 0.271 + }, + { + "track_name": "Ride", + "track_id": "7yFMhCJOsH7khgpdnyrZAZ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 289080, + "explicit": true, + "popularity": 71, + "acousticness": 0.128, + "danceability": 0.373, + "energy": 0.686, + "instrumentalness": 1.96e-06, + "key": 0, + "liveness": 0.383, + "loudness": -5.52, + "mode": 1, + "speechiness": 0.034, + "tempo": 93.763, + "time_signature": 4, + "valence": 0.189 + }, + { + "track_name": "American", + "track_id": "1Yfgbr2kZrb3u0NP8ioyuk", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 248907, + "explicit": false, + "popularity": 58, + "acousticness": 0.535, + "danceability": 0.397, + "energy": 0.585, + "instrumentalness": 0.000438, + "key": 7, + "liveness": 0.0976, + "loudness": -6.518, + "mode": 1, + "speechiness": 0.0359, + "tempo": 143.983, + "time_signature": 4, + "valence": 0.18 + }, + { + "track_name": "Cola", + "track_id": "3I5azi0831uNpYQsfYsW7G", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 260893, + "explicit": true, + "popularity": 67, + "acousticness": 0.0699, + "danceability": 0.298, + "energy": 0.668, + "instrumentalness": 2.44e-05, + "key": 1, + "liveness": 0.59, + "loudness": -5.536, + "mode": 0, + "speechiness": 0.0478, + "tempo": 110.063, + "time_signature": 4, + "valence": 0.121 + }, + { + "track_name": "Body Electric", + "track_id": "5ZyM4VMzHSaz8OlIZRuZBH", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 233440, + "explicit": false, + "popularity": 59, + "acousticness": 0.466, + "danceability": 0.245, + "energy": 0.492, + "instrumentalness": 0, + "key": 1, + "liveness": 0.0851, + "loudness": -9.397, + "mode": 0, + "speechiness": 0.0593, + "tempo": 167.7, + "time_signature": 3, + "valence": 0.104 + }, + { + "track_name": "Blue Velvet", + "track_id": "5SzoFexynLVceTLggJTZZM", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 158653, + "explicit": false, + "popularity": 57, + "acousticness": 0.812, + "danceability": 0.189, + "energy": 0.317, + "instrumentalness": 0.0719, + "key": 10, + "liveness": 0.214, + "loudness": -8.631, + "mode": 1, + "speechiness": 0.028, + "tempo": 84.809, + "time_signature": 4, + "valence": 0.251 + }, + { + "track_name": "Gods & Monsters", + "track_id": "4uhSo9cVBVpdDCNxf4MBaP", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 237640, + "explicit": true, + "popularity": 62, + "acousticness": 0.00193, + "danceability": 0.352, + "energy": 0.725, + "instrumentalness": 2.73e-06, + "key": 8, + "liveness": 0.22, + "loudness": -6.463, + "mode": 0, + "speechiness": 0.0656, + "tempo": 189.767, + "time_signature": 4, + "valence": 0.339 + }, + { + "track_name": "Yayo", + "track_id": "2rldjI2fK6nYwlMgaITluf", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 321053, + "explicit": false, + "popularity": 56, + "acousticness": 0.926, + "danceability": 0.506, + "energy": 0.201, + "instrumentalness": 0.000411, + "key": 3, + "liveness": 0.253, + "loudness": -12.931, + "mode": 0, + "speechiness": 0.0294, + "tempo": 71.925, + "time_signature": 4, + "valence": 0.145 + }, + { + "track_name": "Bel Air", + "track_id": "7E8A5k5VOhPmt6pGPDJhxQ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5VoeRuTrGhTbKelUfwymwu" + ], + "duration_ms": 237640, + "explicit": false, + "popularity": 56, + "acousticness": 0.864, + "danceability": 0.346, + "energy": 0.42, + "instrumentalness": 0.0875, + "key": 2, + "liveness": 0.901, + "loudness": -11.506, + "mode": 0, + "speechiness": 0.0298, + "tempo": 83.56, + "time_signature": 4, + "valence": 0.303 + }, + { + "track_name": "Born To Die", + "track_id": "2wMby9pciuGUIP8q7y4Yn6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 286253, + "explicit": false, + "popularity": 63, + "acousticness": 0.209, + "danceability": 0.18, + "energy": 0.636, + "instrumentalness": 0.000133, + "key": 4, + "liveness": 0.217, + "loudness": -6.591, + "mode": 0, + "speechiness": 0.0439, + "tempo": 75.223, + "time_signature": 3, + "valence": 0.39 + }, + { + "track_name": "Off To The Races", + "track_id": "6W6EcslYX6aPakNdE0mgOb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 299933, + "explicit": false, + "popularity": 52, + "acousticness": 0.061, + "danceability": 0.4, + "energy": 0.722, + "instrumentalness": 0.00171, + "key": 4, + "liveness": 0.4, + "loudness": -5.566, + "mode": 0, + "speechiness": 0.062, + "tempo": 160.065, + "time_signature": 4, + "valence": 0.136 + }, + { + "track_name": "Blue Jeans - Remastered 2011", + "track_id": "10phyolyNLD2NXl0l2ou2x", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 209440, + "explicit": true, + "popularity": 53, + "acousticness": 0.439, + "danceability": 0.553, + "energy": 0.827, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0801, + "loudness": -4.391, + "mode": 1, + "speechiness": 0.0589, + "tempo": 117.956, + "time_signature": 4, + "valence": 0.528 + }, + { + "track_name": "Video Games", + "track_id": "7FDHI71Z3IInsEKuUn7Df8", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 281946, + "explicit": false, + "popularity": 61, + "acousticness": 0.806, + "danceability": 0.39, + "energy": 0.255, + "instrumentalness": 1.14e-06, + "key": 6, + "liveness": 0.0887, + "loudness": -9.676, + "mode": 0, + "speechiness": 0.0299, + "tempo": 122.056, + "time_signature": 4, + "valence": 0.179 + }, + { + "track_name": "Diet Mountain Dew", + "track_id": "3liOnWUe0m0bi4gjaBIkAu", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 222920, + "explicit": false, + "popularity": 56, + "acousticness": 0.282, + "danceability": 0.46, + "energy": 0.683, + "instrumentalness": 0, + "key": 10, + "liveness": 0.425, + "loudness": -5.97, + "mode": 0, + "speechiness": 0.0891, + "tempo": 175.743, + "time_signature": 4, + "valence": 0.592 + }, + { + "track_name": "National Anthem", + "track_id": "5yn5uVJVsp7zZq1nWJWeJ3", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 230533, + "explicit": false, + "popularity": 59, + "acousticness": 0.548, + "danceability": 0.535, + "energy": 0.902, + "instrumentalness": 0.000163, + "key": 0, + "liveness": 0.109, + "loudness": -6.001, + "mode": 0, + "speechiness": 0.234, + "tempo": 84.929, + "time_signature": 4, + "valence": 0.415 + }, + { + "track_name": "Dark Paradise", + "track_id": "4TJkBJ9S2YCD6ZvvL0Xxac", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 243173, + "explicit": false, + "popularity": 53, + "acousticness": 0.12, + "danceability": 0.586, + "energy": 0.641, + "instrumentalness": 0, + "key": 1, + "liveness": 0.168, + "loudness": -8.342, + "mode": 0, + "speechiness": 0.0634, + "tempo": 120.015, + "time_signature": 4, + "valence": 0.402 + }, + { + "track_name": "Radio", + "track_id": "5AsqDGKlZ7fGC6oeRIiPWx", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 214586, + "explicit": true, + "popularity": 56, + "acousticness": 0.217, + "danceability": 0.312, + "energy": 0.841, + "instrumentalness": 2.38e-05, + "key": 2, + "liveness": 0.0876, + "loudness": -5.244, + "mode": 1, + "speechiness": 0.0846, + "tempo": 75.112, + "time_signature": 4, + "valence": 0.185 + }, + { + "track_name": "Carmen", + "track_id": "6LLkQ3Y2AwclM0tHzxiYAb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 248720, + "explicit": false, + "popularity": 49, + "acousticness": 0.0879, + "danceability": 0.487, + "energy": 0.426, + "instrumentalness": 0.000392, + "key": 1, + "liveness": 0.128, + "loudness": -9.56, + "mode": 0, + "speechiness": 0.0317, + "tempo": 100.056, + "time_signature": 4, + "valence": 0.0376 + }, + { + "track_name": "Million Dollar Man", + "track_id": "0P11XLoH1nch5dDuYjYbnP", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 230120, + "explicit": false, + "popularity": 52, + "acousticness": 0.481, + "danceability": 0.2, + "energy": 0.581, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0662, + "loudness": -6.004, + "mode": 0, + "speechiness": 0.0462, + "tempo": 197.098, + "time_signature": 3, + "valence": 0.53 + }, + { + "track_name": "Summertime Sadness", + "track_id": "33CeM8NI7tfrNgciVOFMoo", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 264773, + "explicit": false, + "popularity": 62, + "acousticness": 0.0456, + "danceability": 0.565, + "energy": 0.647, + "instrumentalness": 0, + "key": 1, + "liveness": 0.121, + "loudness": -6.789, + "mode": 0, + "speechiness": 0.0334, + "tempo": 111.931, + "time_signature": 4, + "valence": 0.216 + }, + { + "track_name": "This Is What Makes Us Girls", + "track_id": "3PpoiQRu8eHNekbsrUKfPh", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 238373, + "explicit": false, + "popularity": 48, + "acousticness": 0.107, + "danceability": 0.531, + "energy": 0.829, + "instrumentalness": 0.0175, + "key": 2, + "liveness": 0.197, + "loudness": -6.889, + "mode": 0, + "speechiness": 0.108, + "tempo": 137.965, + "time_signature": 4, + "valence": 0.417 + }, + { + "track_name": "Without You", + "track_id": "5VwSqxGYSJSOiTdx9uJsMQ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 228933, + "explicit": false, + "popularity": 48, + "acousticness": 0.685, + "danceability": 0.587, + "energy": 0.578, + "instrumentalness": 0.000252, + "key": 3, + "liveness": 0.126, + "loudness": -8.424, + "mode": 0, + "speechiness": 0.0368, + "tempo": 111.939, + "time_signature": 4, + "valence": 0.593 + }, + { + "track_name": "Lolita", + "track_id": "2xGDnyckxU8v9C3100XoV3", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 219026, + "explicit": false, + "popularity": 49, + "acousticness": 0.0811, + "danceability": 0.504, + "energy": 0.942, + "instrumentalness": 3.17e-05, + "key": 0, + "liveness": 0.339, + "loudness": -4.28, + "mode": 0, + "speechiness": 0.102, + "tempo": 135.992, + "time_signature": 4, + "valence": 0.148 + }, + { + "track_name": "Lucky Ones", + "track_id": "7IJBUdmGhekulOkhct3WGD", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4F5dVhgk569Du5cLfal3t5" + ], + "duration_ms": 227306, + "explicit": false, + "popularity": 46, + "acousticness": 0.784, + "danceability": 0.23, + "energy": 0.423, + "instrumentalness": 6.52e-06, + "key": 0, + "liveness": 0.166, + "loudness": -7.195, + "mode": 1, + "speechiness": 0.0358, + "tempo": 74.221, + "time_signature": 1, + "valence": 0.308 + }, + { + "track_name": "Suburban House", + "track_id": "676TvM26wVq88afbYDPRO3", + "artists": [ + "2E51tnARTxTvmYznDHfE5V", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4rFmHomF53LoM6DGOSeOwA" + ], + "duration_ms": 229878, + "explicit": false, + "popularity": 71, + "acousticness": 0.927, + "danceability": 0.323, + "energy": 0.228, + "instrumentalness": 0.000413, + "key": 0, + "liveness": 0.11, + "loudness": -10.601, + "mode": 1, + "speechiness": 0.0308, + "tempo": 130.941, + "time_signature": 3, + "valence": 0.189 + }, + { + "track_name": "Hollywood Bowl", + "track_id": "1DAIGVQoOruWmlVYmpC0B7", + "artists": [ + "5Y1ry2fgj4VzEjWndZu8Rw", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7plBFX9EbmkHZnBbRtzKkA" + ], + "duration_ms": 253240, + "explicit": false, + "popularity": 54, + "acousticness": 0.983, + "danceability": 0.21, + "energy": 0.231, + "instrumentalness": 0.161, + "key": 6, + "liveness": 0.104, + "loudness": -11.669, + "mode": 1, + "speechiness": 0.0318, + "tempo": 174.645, + "time_signature": 3, + "valence": 0.398 + }, + { + "track_name": "Lost at Sea", + "track_id": "6N7NO9Z1Hi6la8dqG3Aoew", + "artists": [ + "5Y1ry2fgj4VzEjWndZu8Rw", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5z82RVDMCeczopEXA5JghQ" + ], + "duration_ms": 187906, + "explicit": false, + "popularity": 55, + "acousticness": 0.957, + "danceability": 0.142, + "energy": 0.188, + "instrumentalness": 0.67, + "key": 3, + "liveness": 0.118, + "loudness": -13.704, + "mode": 0, + "speechiness": 0.0344, + "tempo": 167.87, + "time_signature": 4, + "valence": 0.114 + }, + { + "track_name": "Say Yes To Heaven - Dot Major Remix", + "track_id": "0aVp8gdrXFsidPm0r0NggP", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "02KPkbCJoF0txgF3MN7KIh", + "3Bd1cgCjtCI32PYvDC3ynO" + ], + "albums": [ + "5lo8DzG3dfVN0BHD5cdFpV" + ], + "duration_ms": 243270, + "explicit": false, + "popularity": 43, + "acousticness": 0.0379, + "danceability": 0.699, + "energy": 0.754, + "instrumentalness": 0.00773, + "key": 6, + "liveness": 0.109, + "loudness": -7.145, + "mode": 0, + "speechiness": 0.0423, + "tempo": 127.016, + "time_signature": 4, + "valence": 0.319 + }, + { + "track_name": "Say Yes To Heaven - Anyma Remix", + "track_id": "6YzWNNWyxVGC0eczvuUtmF", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4iBwchw0U0GZv5RfVYSMxN" + ], + "albums": [ + "35ZI8inROOaI4YkvOmCSLq" + ], + "duration_ms": 222076, + "explicit": false, + "popularity": 62, + "acousticness": 0.00272, + "danceability": 0.702, + "energy": 0.716, + "instrumentalness": 0.399, + "key": 6, + "liveness": 0.108, + "loudness": -6.09, + "mode": 0, + "speechiness": 0.0444, + "tempo": 127.003, + "time_signature": 4, + "valence": 0.347 + }, + { + "track_name": "Say Yes To Heaven - AMANDUS 99 +++ DANZINGER 99 Remix", + "track_id": "7FpBzp5R4mE2Oxw0zCfOSV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5cM1C6lpKNN5jKiJewIJJW", + "2PBBBcDggmGWyvOY9HXmKZ" + ], + "albums": [ + "0BLw5pRPVDT5GrkbvIEKV6" + ], + "duration_ms": 131517, + "explicit": false, + "popularity": 38, + "acousticness": 0.235, + "danceability": 0.584, + "energy": 0.536, + "instrumentalness": 0.272, + "key": 6, + "liveness": 0.111, + "loudness": -9.096, + "mode": 0, + "speechiness": 0.0343, + "tempo": 132.877, + "time_signature": 4, + "valence": 0.625 + }, + { + "track_name": "Say Yes To Heaven - sim0ne & Melo Nada Remix", + "track_id": "2A7n6aoRd0pxfwasvN4Fh9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "68sBUNLfzCGR5n2nImhFCV", + "7axOBN2EOcKsN9mRnvTKmI" + ], + "albums": [ + "7xIg7rC6R80DJqV0001u2J" + ], + "duration_ms": 253981, + "explicit": false, + "popularity": 60, + "acousticness": 0.0121, + "danceability": 0.635, + "energy": 0.869, + "instrumentalness": 0.526, + "key": 9, + "liveness": 0.0877, + "loudness": -5.99, + "mode": 0, + "speechiness": 0.06, + "tempo": 150.999, + "time_signature": 4, + "valence": 0.738 + }, + { + "track_name": "Say Yes To Heaven", + "track_id": "03wOsqNRdFZAgwo708sjw2", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7xIg7rC6R80DJqV0001u2J" + ], + "duration_ms": 209156, + "explicit": false, + "popularity": 46, + "acousticness": 0.749, + "danceability": 0.497, + "energy": 0.359, + "instrumentalness": 0.0923, + "key": 6, + "liveness": 0.117, + "loudness": -11.532, + "mode": 0, + "speechiness": 0.0259, + "tempo": 99.922, + "time_signature": 4, + "valence": 0.179 + }, + { + "track_name": "Say Yes To Heaven", + "track_id": "6GGtHZgBycCgGBUhZo81xe", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6jVg0POvGYH1Pt6lISl3ok" + ], + "duration_ms": 209156, + "explicit": false, + "popularity": 89, + "acousticness": 0.709, + "danceability": 0.49, + "energy": 0.352, + "instrumentalness": 0.0856, + "key": 6, + "liveness": 0.114, + "loudness": -11.577, + "mode": 0, + "speechiness": 0.0254, + "tempo": 99.992, + "time_signature": 4, + "valence": 0.166 + }, + { + "track_name": "Say Yes To Heaven - Sped Up", + "track_id": "2f5WkystuejnBzgV18GTGa", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6jVg0POvGYH1Pt6lISl3ok" + ], + "duration_ms": 156116, + "explicit": false, + "popularity": 69, + "acousticness": 0.856, + "danceability": 0.499, + "energy": 0.448, + "instrumentalness": 0.0544, + "key": 10, + "liveness": 0.126, + "loudness": -9.961, + "mode": 0, + "speechiness": 0.0287, + "tempo": 133.891, + "time_signature": 4, + "valence": 0.183 + }, + { + "track_name": "Summertime Sadness - Sped Up", + "track_id": "78dtqFPt7cvYgS2zTXtZKV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1YzaVDzA3EdEipDSUeNQER" + ], + "albums": [ + "29PibmV31F3q6DRVq7gzZc" + ], + "duration_ms": 197353, + "explicit": false, + "popularity": 71, + "acousticness": 0.0311, + "danceability": 0.509, + "energy": 0.84, + "instrumentalness": 0.000169, + "key": 5, + "liveness": 0.0969, + "loudness": -4.984, + "mode": 0, + "speechiness": 0.0441, + "tempo": 149.907, + "time_signature": 4, + "valence": 0.336 + }, + { + "track_name": "Summertime Sadness", + "track_id": "0KOzUGf4micLPI5Salxn5i", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "29PibmV31F3q6DRVq7gzZc" + ], + "duration_ms": 264773, + "explicit": false, + "popularity": 48, + "acousticness": 0.051, + "danceability": 0.572, + "energy": 0.637, + "instrumentalness": 1.26e-06, + "key": 1, + "liveness": 0.118, + "loudness": -6.802, + "mode": 0, + "speechiness": 0.032, + "tempo": 111.975, + "time_signature": 4, + "valence": 0.245 + }, + { + "track_name": "Buddy's Rendezvous", + "track_id": "5SOfvpsZh4GSTCNysVh6hW", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 301480, + "explicit": false, + "popularity": 49, + "acousticness": 0.852, + "danceability": 0.355, + "energy": 0.322, + "instrumentalness": 0.00326, + "key": 5, + "liveness": 0.111, + "loudness": -9.864, + "mode": 1, + "speechiness": 0.03, + "tempo": 77.657, + "time_signature": 4, + "valence": 0.245 + }, + { + "track_name": "Goodbye Mr Blue", + "track_id": "3bUtyNPvjhEvUIASbRf4ei", + "artists": [ + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 300240, + "explicit": false, + "popularity": 24, + "acousticness": 0.743, + "danceability": 0.5, + "energy": 0.441, + "instrumentalness": 0.579, + "key": 2, + "liveness": 0.125, + "loudness": -9.865, + "mode": 1, + "speechiness": 0.0288, + "tempo": 104.958, + "time_signature": 4, + "valence": 0.476 + }, + { + "track_name": "Kiss Me (I Loved You)", + "track_id": "0Q96dk5tPPkXlki4bsLWYn", + "artists": [ + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 237360, + "explicit": false, + "popularity": 23, + "acousticness": 0.929, + "danceability": 0.454, + "energy": 0.382, + "instrumentalness": 0.575, + "key": 2, + "liveness": 0.119, + "loudness": -10.5, + "mode": 0, + "speechiness": 0.0332, + "tempo": 76.937, + "time_signature": 4, + "valence": 0.412 + }, + { + "track_name": "(Everything But) Her Love", + "track_id": "2VfFvMbzJNvnqkVfrsxfyV", + "artists": [ + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 256226, + "explicit": false, + "popularity": 21, + "acousticness": 0.776, + "danceability": 0.609, + "energy": 0.469, + "instrumentalness": 0.767, + "key": 2, + "liveness": 0.118, + "loudness": -8.072, + "mode": 0, + "speechiness": 0.025, + "tempo": 111.947, + "time_signature": 3, + "valence": 0.396 + }, + { + "track_name": "Chloë", + "track_id": "7lsT8csZ761ZARcGIlYHHq", + "artists": [ + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 208453, + "explicit": false, + "popularity": 21, + "acousticness": 0.773, + "danceability": 0.562, + "energy": 0.455, + "instrumentalness": 0.00184, + "key": 0, + "liveness": 0.0911, + "loudness": -8.886, + "mode": 0, + "speechiness": 0.0239, + "tempo": 77.988, + "time_signature": 4, + "valence": 0.541 + }, + { + "track_name": "Buddy's Rendezvous", + "track_id": "1ZGoyeSnCOlTM9ewnyvou5", + "artists": [ + "2kGBy2WHvF0VdZyqiVCkDT" + ], + "albums": [ + "0ekjYczCwlKOsTR7Zp6NS4" + ], + "duration_ms": 299733, + "explicit": false, + "popularity": 23, + "acousticness": 0.922, + "danceability": 0.414, + "energy": 0.34, + "instrumentalness": 0.307, + "key": 5, + "liveness": 0.0956, + "loudness": -10.685, + "mode": 1, + "speechiness": 0.0273, + "tempo": 77.022, + "time_signature": 4, + "valence": 0.272 + }, + { + "track_name": "Dayglo Reflection - Orchestral Version", + "track_id": "3TPjX6hEANO8qGrxYtabkh", + "artists": [ + "0vqkz1b2qBkoYrGMj2CUWq", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5RavdrN0me6xkp4okXQWNI" + ], + "duration_ms": 232917, + "explicit": false, + "popularity": 46, + "acousticness": 0.647, + "danceability": 0.28, + "energy": 0.337, + "instrumentalness": 0.00314, + "key": 3, + "liveness": 0.134, + "loudness": -8.385, + "mode": 0, + "speechiness": 0.0406, + "tempo": 89.126, + "time_signature": 4, + "valence": 0.251 + }, + { + "track_name": "Watercolor Eyes - From “Euphoria” An HBO Original Series", + "track_id": "1G1R0XgChe18Zr1o6tlmN6", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "12fNudihprFoc3Jj5nGFkF" + ], + "duration_ms": 211613, + "explicit": false, + "popularity": 70, + "acousticness": 0.964, + "danceability": 0.444, + "energy": 0.26, + "instrumentalness": 0.0815, + "key": 7, + "liveness": 0.125, + "loudness": -10.045, + "mode": 1, + "speechiness": 0.0316, + "tempo": 120.443, + "time_signature": 4, + "valence": 0.121 + }, + { + "track_name": "Arcadia", + "track_id": "5mqVdt50q0fYvyz3gd6eKe", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "2AVn0YgzBtqsa0d6R5QD95" + ], + "duration_ms": 263280, + "explicit": false, + "popularity": 52, + "acousticness": 0.97, + "danceability": 0.293, + "energy": 0.105, + "instrumentalness": 0.000107, + "key": 10, + "liveness": 0.105, + "loudness": -10.558, + "mode": 1, + "speechiness": 0.0335, + "tempo": 81.826, + "time_signature": 4, + "valence": 0.191 + }, + { + "track_name": "Wildflower Wildfire", + "track_id": "5WhzJEUErG4gdSqxNCB9ED", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "761oXL0XFzpRE36GF1wn89" + ], + "duration_ms": 286740, + "explicit": false, + "popularity": 47, + "acousticness": 0.876, + "danceability": 0.352, + "energy": 0.224, + "instrumentalness": 0.0327, + "key": 7, + "liveness": 0.113, + "loudness": -10.026, + "mode": 0, + "speechiness": 0.0323, + "tempo": 79.592, + "time_signature": 5, + "valence": 0.211 + }, + { + "track_name": "Text Book", + "track_id": "50J98YfyIUVLWbXoQZambN", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "66crHVaecDZMH5QHd5r2xy" + ], + "duration_ms": 303845, + "explicit": false, + "popularity": 46, + "acousticness": 0.824, + "danceability": 0.424, + "energy": 0.318, + "instrumentalness": 0.000542, + "key": 2, + "liveness": 0.114, + "loudness": -9.916, + "mode": 0, + "speechiness": 0.0427, + "tempo": 119.433, + "time_signature": 3, + "valence": 0.102 + }, + { + "track_name": "Blue Banisters", + "track_id": "6FpdEqPmZ9aXIXiDi0Ke0f", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1C5RVpJJ2IAn92JeZwFF8j" + ], + "duration_ms": 292840, + "explicit": false, + "popularity": 48, + "acousticness": 0.938, + "danceability": 0.384, + "energy": 0.111, + "instrumentalness": 6.02e-05, + "key": 5, + "liveness": 0.104, + "loudness": -13.179, + "mode": 1, + "speechiness": 0.0415, + "tempo": 85.986, + "time_signature": 3, + "valence": 0.177 + }, + { + "track_name": "Summertime The Gershwin Version", + "track_id": "25Mld9UGdMqXYDU2x8l3ld", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "27Iu7uGNcJMgxsNCvILZt1" + ], + "duration_ms": 186000, + "explicit": false, + "popularity": 68, + "acousticness": 0.968, + "danceability": 0.234, + "energy": 0.114, + "instrumentalness": 0.00391, + "key": 11, + "liveness": 0.103, + "loudness": -19.136, + "mode": 0, + "speechiness": 0.0366, + "tempo": 189.986, + "time_signature": 3, + "valence": 0.21 + }, + { + "track_name": "Hallucinogenics (feat. Lana Del Rey)", + "track_id": "4A8pBxx0of2Y8r56dT0atf", + "artists": [ + "7gHscNMDI8FF8pcgrV8eIn", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "41tUnMTVSyImoq1Dyr5UhX" + ], + "duration_ms": 186626, + "explicit": true, + "popularity": 64, + "acousticness": 0.499, + "danceability": 0.59, + "energy": 0.597, + "instrumentalness": 0, + "key": 0, + "liveness": 0.175, + "loudness": -7.183, + "mode": 1, + "speechiness": 0.0527, + "tempo": 121.843, + "time_signature": 4, + "valence": 0.313 + }, + { + "track_name": "Season Of The Witch", + "track_id": "5DSi7heBC8eTIFROBvttnp", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4K7RKXggxezOmccv1Uuviq" + ], + "duration_ms": 247147, + "explicit": false, + "popularity": 73, + "acousticness": 0.896, + "danceability": 0.674, + "energy": 0.205, + "instrumentalness": 0.0272, + "key": 2, + "liveness": 0.114, + "loudness": -14.173, + "mode": 1, + "speechiness": 0.0399, + "tempo": 95.984, + "time_signature": 4, + "valence": 0.355 + }, + { + "track_name": "Looking For America", + "track_id": "31FBEeTXpaeCncCbCmS7ax", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6HTt2MmerBVW0TjGUwfzBD" + ], + "duration_ms": 162326, + "explicit": false, + "popularity": 54, + "acousticness": 0.959, + "danceability": 0.417, + "energy": 0.0909, + "instrumentalness": 4.59e-05, + "key": 7, + "liveness": 0.14, + "loudness": -15.526, + "mode": 1, + "speechiness": 0.0373, + "tempo": 90.075, + "time_signature": 3, + "valence": 0.101 + }, + { + "track_name": "Doin' Time", + "track_id": "6ECwimRuwOxwQv5VXoN5Mt", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "3MWgjF21GhWr8fWExwnyMu" + ], + "duration_ms": 201996, + "explicit": false, + "popularity": 61, + "acousticness": 0.342, + "danceability": 0.622, + "energy": 0.693, + "instrumentalness": 0.000708, + "key": 7, + "liveness": 0.0876, + "loudness": -5.812, + "mode": 0, + "speechiness": 0.0434, + "tempo": 144.936, + "time_signature": 4, + "valence": 0.446 + }, + { + "track_name": "God Save Our Young Blood (with Lana Del Rey)", + "track_id": "69bW8sXMYTa2iwfoRyZT5Y", + "artists": [ + "1KP6TWI40m7p3QBTU6u2xo", + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "6AnnYEaCTnWkbPo4ni5vic" + ], + "duration_ms": 232597, + "explicit": false, + "popularity": 44, + "acousticness": 0.74, + "danceability": 0.623, + "energy": 0.55, + "instrumentalness": 1.32e-06, + "key": 9, + "liveness": 0.13, + "loudness": -7.594, + "mode": 1, + "speechiness": 0.0527, + "tempo": 130.973, + "time_signature": 4, + "valence": 0.396 + }, + { + "track_name": "Summer Bummer - Snakehips Remix", + "track_id": "3zUhzxygBLNN1HZQhkDqRT", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "13ubrt8QOOCPljQ2FL1Kca", + "699OTQXzgjhIYAHMy9RyPD", + "2FwJwEswyIUAljqgjNSHgP" + ], + "albums": [ + "7tSNHl6gCeuLj81GZO43Xn" + ], + "duration_ms": 248906, + "explicit": true, + "popularity": 41, + "acousticness": 0.455, + "danceability": 0.65, + "energy": 0.583, + "instrumentalness": 0.000114, + "key": 10, + "liveness": 0.647, + "loudness": -7.535, + "mode": 0, + "speechiness": 0.223, + "tempo": 135.026, + "time_signature": 4, + "valence": 0.335 + }, + { + "track_name": "Summer Bummer - Clams Casino Remix", + "track_id": "4fFk2OkDtAjLwh9xSLJ0Bq", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5vSQUyT33qxr1xAX2Tkf3A", + "13ubrt8QOOCPljQ2FL1Kca", + "699OTQXzgjhIYAHMy9RyPD" + ], + "albums": [ + "3gY2PiLHPaOmYApYJYPpIi" + ], + "duration_ms": 270226, + "explicit": true, + "popularity": 39, + "acousticness": 0.0388, + "danceability": 0.213, + "energy": 0.503, + "instrumentalness": 0.00257, + "key": 11, + "liveness": 0.114, + "loudness": -10.06, + "mode": 1, + "speechiness": 0.109, + "tempo": 34.562, + "time_signature": 4, + "valence": 0.0947 + }, + { + "track_name": "Lust For Life - The Avener Rework", + "track_id": "0d8gjVOq4aLA9E6wCm7H3a", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "0e6qzpphJHtObTSwD75mi0", + "1Xyo4u8uXC1ZmMpatF05PJ" + ], + "albums": [ + "76TKxZW1oXXhl6W2EP68An" + ], + "duration_ms": 252447, + "explicit": false, + "popularity": 43, + "acousticness": 0.234, + "danceability": 0.609, + "energy": 0.597, + "instrumentalness": 0.0227, + "key": 8, + "liveness": 0.164, + "loudness": -8.222, + "mode": 1, + "speechiness": 0.0398, + "tempo": 102.007, + "time_signature": 4, + "valence": 0.455 + }, + { + "track_name": "Lust For Life - BloodPop® Remix", + "track_id": "0TUHBulhcckjtljAxJrRNg", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1okJ4NC308qbtY9LyHn6DO", + "1Xyo4u8uXC1ZmMpatF05PJ" + ], + "albums": [ + "3RQdSuT8Y2WGynwlFrJI58" + ], + "duration_ms": 202891, + "explicit": false, + "popularity": 45, + "acousticness": 0.00902, + "danceability": 0.635, + "energy": 0.76, + "instrumentalness": 2.33e-06, + "key": 8, + "liveness": 0.131, + "loudness": -3.831, + "mode": 1, + "speechiness": 0.0319, + "tempo": 99.991, + "time_signature": 4, + "valence": 0.498 + }, + { + "track_name": "Lust for Life (with The Weeknd)", + "track_id": "5hzey1kBGjy3B8tDGcyRTY", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1Xyo4u8uXC1ZmMpatF05PJ" + ], + "albums": [ + "0NSognr1k6PH6SZZ6uv44G" + ], + "duration_ms": 264011, + "explicit": false, + "popularity": 52, + "acousticness": 0.58, + "danceability": 0.505, + "energy": 0.673, + "instrumentalness": 0.00336, + "key": 0, + "liveness": 0.362, + "loudness": -8.59, + "mode": 0, + "speechiness": 0.0554, + "tempo": 99.919, + "time_signature": 4, + "valence": 0.267 + }, + { + "track_name": "Ultraviolence - Hook N Sling Remix", + "track_id": "2fbVjOH8FOW60FDD5umpV9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "3iN9k8uvm4WrgdlOigOH8D" + ], + "albums": [ + "6nrsjfNwukTPOcybYfoN57" + ], + "duration_ms": 329003, + "explicit": false, + "popularity": 38, + "acousticness": 0.00175, + "danceability": 0.683, + "energy": 0.871, + "instrumentalness": 0.00391, + "key": 0, + "liveness": 0.712, + "loudness": -5.576, + "mode": 1, + "speechiness": 0.0442, + "tempo": 128.01, + "time_signature": 4, + "valence": 0.461 + }, + { + "track_name": "West Coast", + "track_id": "5JEAsA9QPvt3sB2leHNhfa", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4QFIONlzC0kTAkrJFP8Z0R" + ], + "duration_ms": 256768, + "explicit": false, + "popularity": 54, + "acousticness": 0.206, + "danceability": 0.359, + "energy": 0.611, + "instrumentalness": 0.0256, + "key": 6, + "liveness": 0.0898, + "loudness": -7.676, + "mode": 0, + "speechiness": 0.039, + "tempo": 93.05, + "time_signature": 4, + "valence": 0.428 + }, + { + "track_name": "West Coast - ZHU Remix", + "track_id": "6MvEnS4hoEjzrAxuJIvj5S", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "28j8lBWDdDSHSSt5oPlsX2" + ], + "albums": [ + "1DV1nkL7LYsPepkX2C5E2C" + ], + "duration_ms": 264396, + "explicit": false, + "popularity": 46, + "acousticness": 0.0214, + "danceability": 0.837, + "energy": 0.647, + "instrumentalness": 0.408, + "key": 6, + "liveness": 0.24, + "loudness": -6.288, + "mode": 0, + "speechiness": 0.0613, + "tempo": 116.009, + "time_signature": 4, + "valence": 0.368 + }, + { + "track_name": "West Coast - Ten Ven Remix", + "track_id": "2va7mH3RbnqDUdb42abI48", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "0ZSLz27xUnI816MMtYfLMI" + ], + "albums": [ + "1DV1nkL7LYsPepkX2C5E2C" + ], + "duration_ms": 271532, + "explicit": false, + "popularity": 34, + "acousticness": 0.00229, + "danceability": 0.731, + "energy": 0.675, + "instrumentalness": 0.39, + "key": 7, + "liveness": 0.0758, + "loudness": -8.249, + "mode": 1, + "speechiness": 0.0417, + "tempo": 123.304, + "time_signature": 4, + "valence": 0.487 + }, + { + "track_name": "West Coast - The GRADES Icon Mix", + "track_id": "11QaOjnjCsuQ4orbGJCNdp", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5xtS6AoBUHhaAhxC1JN3PY" + ], + "albums": [ + "1DV1nkL7LYsPepkX2C5E2C" + ], + "duration_ms": 257853, + "explicit": false, + "popularity": 40, + "acousticness": 0.137, + "danceability": 0.681, + "energy": 0.661, + "instrumentalness": 0.00167, + "key": 6, + "liveness": 0.147, + "loudness": -7.559, + "mode": 0, + "speechiness": 0.175, + "tempo": 110.021, + "time_signature": 4, + "valence": 0.475 + }, + { + "track_name": "West Coast - MK Remix", + "track_id": "2mHjYyZJT7eoDBZrJpzKEn", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4rIKOF7RT4PNxyhd3ZzLtE" + ], + "albums": [ + "1DV1nkL7LYsPepkX2C5E2C" + ], + "duration_ms": 326153, + "explicit": false, + "popularity": 36, + "acousticness": 0.00224, + "danceability": 0.899, + "energy": 0.4, + "instrumentalness": 0.00741, + "key": 6, + "liveness": 0.0548, + "loudness": -9.901, + "mode": 0, + "speechiness": 0.0606, + "tempo": 123.007, + "time_signature": 4, + "valence": 0.405 + }, + { + "track_name": "Ultraviolence", + "track_id": "1T5Zpn2kOSd1PelIIUphmd", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "4bDu16cUgbNS4bWrkomHpo" + ], + "duration_ms": 251480, + "explicit": false, + "popularity": 44, + "acousticness": 0.279, + "danceability": 0.222, + "energy": 0.534, + "instrumentalness": 9.35e-06, + "key": 0, + "liveness": 0.114, + "loudness": -7.104, + "mode": 1, + "speechiness": 0.0324, + "tempo": 83.994, + "time_signature": 3, + "valence": 0.103 + }, + { + "track_name": "Summertime Sadness - Monsieur Adi Remix", + "track_id": "1j58RGUIitzCN2D4f0X3xj", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4KF0B66rZU4yV2hruz7YN4" + ], + "albums": [ + "4ix4RQK08GQGb62FFWMJII" + ], + "duration_ms": 289574, + "explicit": false, + "popularity": 27, + "acousticness": 0.00168, + "danceability": 0.567, + "energy": 0.809, + "instrumentalness": 0.0028, + "key": 1, + "liveness": 0.0508, + "loudness": -6.487, + "mode": 0, + "speechiness": 0.237, + "tempo": 122.972, + "time_signature": 4, + "valence": 0.485 + }, + { + "track_name": "Shades Of Cool", + "track_id": "6tHrSaKHAayOzJlHTbYW47", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5i9CoHStfX7f1ZMM43eVbc" + ], + "duration_ms": 342093, + "explicit": false, + "popularity": 43, + "acousticness": 0.554, + "danceability": 0.262, + "energy": 0.482, + "instrumentalness": 0.0161, + "key": 2, + "liveness": 0.244, + "loudness": -6.863, + "mode": 0, + "speechiness": 0.0302, + "tempo": 137.918, + "time_signature": 3, + "valence": 0.0878 + }, + { + "track_name": "Once Upon a Dream - From \"Maleficent\" / Pop Version", + "track_id": "3liiZRlJxa8GeLUgWMoIeu", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "293ydefC5qpqZ65JYZTbUi" + ], + "duration_ms": 203080, + "explicit": false, + "popularity": 70, + "acousticness": 0.659, + "danceability": 0.289, + "energy": 0.274, + "instrumentalness": 0.0166, + "key": 5, + "liveness": 0.109, + "loudness": -16.574, + "mode": 1, + "speechiness": 0.0353, + "tempo": 119.997, + "time_signature": 3, + "valence": 0.167 + }, + { + "track_name": "Once Upon a Dream - From “Maleficent”/Young Ruffian Remix", + "track_id": "0YNJrxyZXfHstBF1Hshk6l", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0BeZnMAHzbklVlde4eRpMm" + ], + "duration_ms": 224693, + "explicit": false, + "popularity": 41, + "acousticness": 0.108, + "danceability": 0.433, + "energy": 0.485, + "instrumentalness": 0.000274, + "key": 2, + "liveness": 0.0912, + "loudness": -9.236, + "mode": 0, + "speechiness": 0.0805, + "tempo": 119.895, + "time_signature": 3, + "valence": 0.229 + }, + { + "track_name": "Brooklyn Baby", + "track_id": "5bAlvENAUf8KMn2ckmQwsZ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7FBVipPDz4SsTn7L8J3O1d" + ], + "duration_ms": 351640, + "explicit": true, + "popularity": 50, + "acousticness": 0.542, + "danceability": 0.404, + "energy": 0.664, + "instrumentalness": 0.00402, + "key": 1, + "liveness": 0.11, + "loudness": -6.698, + "mode": 1, + "speechiness": 0.0407, + "tempo": 107.747, + "time_signature": 4, + "valence": 0.0949 + }, + { + "track_name": "Summertime Sadness - Asadinho Vocal Mix", + "track_id": "3jMh9sR3WEnSS8bYnKIEZU", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "24EM06t8FHF2hyDdHurfrf" + ], + "duration_ms": 514737, + "explicit": false, + "popularity": 42, + "acousticness": 0.00326, + "danceability": 0.855, + "energy": 0.516, + "instrumentalness": 0.151, + "key": 1, + "liveness": 0.265, + "loudness": -7.461, + "mode": 1, + "speechiness": 0.0557, + "tempo": 118.01, + "time_signature": 4, + "valence": 0.413 + }, + { + "track_name": "Summertime Sadness - Asadinho Dub", + "track_id": "5yfJb5xk5xAK3GBxNxJBmp", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "24EM06t8FHF2hyDdHurfrf" + ], + "duration_ms": 465929, + "explicit": false, + "popularity": 37, + "acousticness": 0.00018, + "danceability": 0.839, + "energy": 0.433, + "instrumentalness": 0.795, + "key": 8, + "liveness": 0.066, + "loudness": -8.184, + "mode": 1, + "speechiness": 0.0565, + "tempo": 118.024, + "time_signature": 4, + "valence": 0.281 + }, + { + "track_name": "Summertime Sadness - Asadinho Instrumental", + "track_id": "7zzGnQSum6nb0hwqFM8opQ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "24EM06t8FHF2hyDdHurfrf" + ], + "duration_ms": 420316, + "explicit": false, + "popularity": 35, + "acousticness": 0.000104, + "danceability": 0.808, + "energy": 0.459, + "instrumentalness": 0.938, + "key": 8, + "liveness": 0.714, + "loudness": -8.802, + "mode": 1, + "speechiness": 0.0539, + "tempo": 118.018, + "time_signature": 4, + "valence": 0.293 + }, + { + "track_name": "Summertime Sadness - Ryan Hemsworth Remix", + "track_id": "6TqhdpjFllfk11YygjtXcr", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2CgysNw5B7rFNRtRjQbPZ9" + ], + "albums": [ + "5zqWpGJJrOQqOoZ8czODIc" + ], + "duration_ms": 249680, + "explicit": false, + "popularity": 36, + "acousticness": 0.0133, + "danceability": 0.707, + "energy": 0.668, + "instrumentalness": 0.304, + "key": 1, + "liveness": 0.0874, + "loudness": -6.538, + "mode": 0, + "speechiness": 0.0335, + "tempo": 123.996, + "time_signature": 4, + "valence": 0.126 + }, + { + "track_name": "Summertime - Imanbek Remix", + "track_id": "0f3cLpriwmAnZu5kRrssc5", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5rGrDvrLOV2VV8SCFVGWlj" + ], + "albums": [ + "5XRtJEsQ1jLvOkQZdBjPZZ" + ], + "duration_ms": 265997, + "explicit": false, + "popularity": 59, + "acousticness": 0.0667, + "danceability": 0.894, + "energy": 0.864, + "instrumentalness": 0.00061, + "key": 1, + "liveness": 0.137, + "loudness": -5.036, + "mode": 0, + "speechiness": 0.17, + "tempo": 121.995, + "time_signature": 4, + "valence": 0.827 + }, + { + "track_name": "Dark Paradise - Parov Stelar Remix", + "track_id": "5lmBgvRintvH12jvlLtMMH", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "65EXuYHVoehCKqp0kOS6px" + ], + "albums": [ + "2CqXYroRq34v3SeLBBp84u" + ], + "duration_ms": 261667, + "explicit": false, + "popularity": 39, + "acousticness": 0.08, + "danceability": 0.635, + "energy": 0.586, + "instrumentalness": 0.0022, + "key": 1, + "liveness": 0.0997, + "loudness": -8.345, + "mode": 0, + "speechiness": 0.0391, + "tempo": 119.992, + "time_signature": 4, + "valence": 0.486 + }, + { + "track_name": "Summertime Sadness (Lana Del Rey Vs. Cedric Gervais) - Cedric Gervais Remix", + "track_id": "6PUIzlqotEmPuBfjbwYWOB", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4Wjf8diP59VmPG7fi4y724" + ], + "albums": [ + "1fXwOvaqIdkhp5F3fiFbCv" + ], + "duration_ms": 214912, + "explicit": false, + "popularity": 77, + "acousticness": 0.0157, + "danceability": 0.572, + "energy": 0.81, + "instrumentalness": 6.53e-06, + "key": 1, + "liveness": 0.13, + "loudness": -5.791, + "mode": 0, + "speechiness": 0.0558, + "tempo": 126.052, + "time_signature": 4, + "valence": 0.11 + }, + { + "track_name": "Young And Beautiful", + "track_id": "2nMeu6UenVvwUktBCpLMK9", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "1D92WOHWUI2AGQCCdplcXL" + ], + "duration_ms": 236053, + "explicit": false, + "popularity": 87, + "acousticness": 0.262, + "danceability": 0.324, + "energy": 0.416, + "instrumentalness": 3.69e-05, + "key": 11, + "liveness": 0.11, + "loudness": -8.92, + "mode": 0, + "speechiness": 0.0368, + "tempo": 113.986, + "time_signature": 4, + "valence": 0.151 + }, + { + "track_name": "Ride", + "track_id": "3hp8RR49EJbku9VAPkVSol", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "5gXcOVOPrENSGTzv8X2LJl" + ], + "duration_ms": 289080, + "explicit": true, + "popularity": 39, + "acousticness": 0.128, + "danceability": 0.373, + "energy": 0.686, + "instrumentalness": 1.96e-06, + "key": 0, + "liveness": 0.383, + "loudness": -5.52, + "mode": 1, + "speechiness": 0.034, + "tempo": 93.763, + "time_signature": 4, + "valence": 0.189 + }, + { + "track_name": "Ride - Active Child Remix", + "track_id": "4wNTEzMfWI529WYAk0ARIY", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "54KTsBl98buzGkELjGlnuU" + ], + "albums": [ + "5gXcOVOPrENSGTzv8X2LJl" + ], + "duration_ms": 222829, + "explicit": true, + "popularity": 27, + "acousticness": 0.203, + "danceability": 0.5, + "energy": 0.378, + "instrumentalness": 0.649, + "key": 9, + "liveness": 0.192, + "loudness": -9.374, + "mode": 0, + "speechiness": 0.0252, + "tempo": 140.952, + "time_signature": 3, + "valence": 0.373 + }, + { + "track_name": "Blue Velvet - Penguin Prison Remix", + "track_id": "4nQA8eqfBz4IJq9mxQ9gfb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5VsOThWOagH8C8gCvIy13k" + ], + "albums": [ + "5gXcOVOPrENSGTzv8X2LJl" + ], + "duration_ms": 302504, + "explicit": false, + "popularity": 22, + "acousticness": 0.000298, + "danceability": 0.771, + "energy": 0.606, + "instrumentalness": 0.853, + "key": 0, + "liveness": 0.081, + "loudness": -10.154, + "mode": 1, + "speechiness": 0.0478, + "tempo": 112.004, + "time_signature": 4, + "valence": 0.515 + }, + { + "track_name": "Blue Velvet - Lindstrom Remix", + "track_id": "6e7CR5IHhtLPr5uizkBmIE", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "0eoL9yfbhhpevgDpEUIKon" + ], + "albums": [ + "5gXcOVOPrENSGTzv8X2LJl" + ], + "duration_ms": 566975, + "explicit": false, + "popularity": 22, + "acousticness": 0.008, + "danceability": 0.825, + "energy": 0.7, + "instrumentalness": 0.893, + "key": 7, + "liveness": 0.0551, + "loudness": -7.082, + "mode": 1, + "speechiness": 0.0797, + "tempo": 120.0, + "time_signature": 4, + "valence": 0.318 + }, + { + "track_name": "Blue Jeans - Kris Menace Remix", + "track_id": "2koJ0BWiquijyRNAq7Ksxb", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5P5i4EeZfrKrcRGHRTqJr0" + ], + "albums": [ + "17ljo4CKnztmlTbeUTjhxk" + ], + "duration_ms": 402122, + "explicit": false, + "popularity": 34, + "acousticness": 0.00938, + "danceability": 0.638, + "energy": 0.795, + "instrumentalness": 0.178, + "key": 3, + "liveness": 0.0994, + "loudness": -7.299, + "mode": 1, + "speechiness": 0.0744, + "tempo": 118.005, + "time_signature": 4, + "valence": 0.569 + }, + { + "track_name": "Blue Jeans - Kris Menace Instrumental", + "track_id": "1D6zOIVkGKDyfTiGq1S5GK", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5P5i4EeZfrKrcRGHRTqJr0" + ], + "albums": [ + "17ljo4CKnztmlTbeUTjhxk" + ], + "duration_ms": 384913, + "explicit": false, + "popularity": 36, + "acousticness": 0.000201, + "danceability": 0.645, + "energy": 0.698, + "instrumentalness": 0.867, + "key": 3, + "liveness": 0.114, + "loudness": -9.294, + "mode": 1, + "speechiness": 0.044, + "tempo": 117.972, + "time_signature": 4, + "valence": 0.559 + }, + { + "track_name": "Blue Jeans - Remastered 2011", + "track_id": "6QvhcruRZpR7V3HYklyFCg", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "7vH5XKMPhSWNkrTzdzFjEa" + ], + "duration_ms": 210067, + "explicit": true, + "popularity": 37, + "acousticness": 0.382, + "danceability": 0.576, + "energy": 0.836, + "instrumentalness": 0, + "key": 3, + "liveness": 0.0758, + "loudness": -4.458, + "mode": 1, + "speechiness": 0.0615, + "tempo": 117.973, + "time_signature": 4, + "valence": 0.471 + }, + { + "track_name": "Blue Jeans - Gesaffelstein Remix", + "track_id": "2qTDX9vvhc4oQWqGCsFf5p", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "3hteYQFiMFbJY7wS0xDymP" + ], + "albums": [ + "7vH5XKMPhSWNkrTzdzFjEa" + ], + "duration_ms": 275618, + "explicit": true, + "popularity": 32, + "acousticness": 0.000841, + "danceability": 0.693, + "energy": 0.719, + "instrumentalness": 0.000829, + "key": 5, + "liveness": 0.0705, + "loudness": -5.134, + "mode": 0, + "speechiness": 0.0578, + "tempo": 118.134, + "time_signature": 4, + "valence": 0.412 + }, + { + "track_name": "Blue Jeans - Odd Future's The Internet Mix", + "track_id": "5MsrjP9RZbwurR8XF7kTAk", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "7GN9PivdemQRKjDt4z5Zv8", + "7ycsWk9ae4pTAlWH8j6Hf9", + "1AKNroq6zJX4DlJaA0dcKw" + ], + "albums": [ + "7vH5XKMPhSWNkrTzdzFjEa" + ], + "duration_ms": 240501, + "explicit": true, + "popularity": 22, + "acousticness": 0.17, + "danceability": 0.623, + "energy": 0.699, + "instrumentalness": 0.00461, + "key": 5, + "liveness": 0.144, + "loudness": -8.849, + "mode": 0, + "speechiness": 0.0352, + "tempo": 117.971, + "time_signature": 4, + "valence": 0.569 + }, + { + "track_name": "Blue Jeans - Blood Orange Remix", + "track_id": "0AxADfB2KtnUoXXLXHpPVS", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "6LEeAFiJF8OuPx747e1wxR" + ], + "albums": [ + "7vH5XKMPhSWNkrTzdzFjEa" + ], + "duration_ms": 211059, + "explicit": true, + "popularity": 25, + "acousticness": 0.376, + "danceability": 0.612, + "energy": 0.531, + "instrumentalness": 1.95e-05, + "key": 10, + "liveness": 0.111, + "loudness": -9.793, + "mode": 1, + "speechiness": 0.0477, + "tempo": 117.931, + "time_signature": 4, + "valence": 0.225 + }, + { + "track_name": "Born To Die", + "track_id": "6eFmEwPGFlSSau4yMUEaqN", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0wjZLB37I9YAcvlMf86eM9" + ], + "duration_ms": 285716, + "explicit": false, + "popularity": 41, + "acousticness": 0.192, + "danceability": 0.245, + "energy": 0.594, + "instrumentalness": 4.27e-05, + "key": 4, + "liveness": 0.245, + "loudness": -7.715, + "mode": 0, + "speechiness": 0.0362, + "tempo": 85.487, + "time_signature": 4, + "valence": 0.402 + }, + { + "track_name": "Born To Die - PDP / 13 Remix", + "track_id": "2UNnxHIzBj2ygDQk3BZAxs", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "40NhswmboSiY7lb364xoW8" + ], + "albums": [ + "0wjZLB37I9YAcvlMf86eM9" + ], + "duration_ms": 382502, + "explicit": false, + "popularity": 23, + "acousticness": 0.00946, + "danceability": 0.763, + "energy": 0.846, + "instrumentalness": 0.52, + "key": 11, + "liveness": 0.0433, + "loudness": -7.93, + "mode": 0, + "speechiness": 0.0827, + "tempo": 149.999, + "time_signature": 4, + "valence": 0.766 + }, + { + "track_name": "Born To Die - Woodkid & The Shoes Remix", + "track_id": "6FRpGXrKgXpPeR3vUF5SzE", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "44TGR1CzjKBxSHsSEy7bi9", + "6buUuVTdxxAe5ODJtKZ4hP" + ], + "albums": [ + "0wjZLB37I9YAcvlMf86eM9" + ], + "duration_ms": 240891, + "explicit": false, + "popularity": 37, + "acousticness": 0.115, + "danceability": 0.574, + "energy": 0.677, + "instrumentalness": 0.199, + "key": 4, + "liveness": 0.413, + "loudness": -8.843, + "mode": 0, + "speechiness": 0.0456, + "tempo": 93.009, + "time_signature": 4, + "valence": 0.192 + }, + { + "track_name": "Born To Die - Clams Casino Remix", + "track_id": "5RYMOgHY3ah9e83Bf3DZr0", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5vSQUyT33qxr1xAX2Tkf3A" + ], + "albums": [ + "0wjZLB37I9YAcvlMf86eM9" + ], + "duration_ms": 187509, + "explicit": false, + "popularity": 23, + "acousticness": 0.647, + "danceability": 0.455, + "energy": 0.485, + "instrumentalness": 0.859, + "key": 7, + "liveness": 0.111, + "loudness": -11.733, + "mode": 1, + "speechiness": 0.0621, + "tempo": 86.007, + "time_signature": 4, + "valence": 0.19 + }, + { + "track_name": "Video Games - Club Clique For The Bad Girls Remix", + "track_id": "4KmtER3ibPlEHMw2CtU6Ba", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1EnozkTUyiBieU9iagUUZu" + ], + "albums": [ + "5xQF02P2MtoIIqMCB1MOoM" + ], + "duration_ms": 297720, + "explicit": false, + "popularity": 34, + "acousticness": 0.192, + "danceability": 0.662, + "energy": 0.786, + "instrumentalness": 0.0268, + "key": 2, + "liveness": 0.144, + "loudness": -6.758, + "mode": 1, + "speechiness": 0.0413, + "tempo": 122.478, + "time_signature": 4, + "valence": 0.473 + }, + { + "track_name": "Video Games - Jakwob and Etherwood Remix", + "track_id": "5FtPuqpCjMjkQ6hTg5rkhZ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4S5yXnFzWvHu16wfuDjjfM", + "3GEUIa3Z0Qlivy3EcJm5RX" + ], + "albums": [ + "5xQF02P2MtoIIqMCB1MOoM" + ], + "duration_ms": 222560, + "explicit": false, + "popularity": 26, + "acousticness": 0.00131, + "danceability": 0.524, + "energy": 0.982, + "instrumentalness": 0.453, + "key": 2, + "liveness": 0.33, + "loudness": -3.597, + "mode": 1, + "speechiness": 0.0452, + "tempo": 155.028, + "time_signature": 4, + "valence": 0.39 + }, + { + "track_name": "Video Games - White Lies C-Mix", + "track_id": "74AyVnSemwIaGnpuJVnh1l", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "7axvMzOst7QzyypY9HjYwq" + ], + "albums": [ + "5xQF02P2MtoIIqMCB1MOoM" + ], + "duration_ms": 452026, + "explicit": false, + "popularity": 29, + "acousticness": 8.54e-05, + "danceability": 0.597, + "energy": 0.674, + "instrumentalness": 0.14, + "key": 2, + "liveness": 0.0768, + "loudness": -6.105, + "mode": 1, + "speechiness": 0.0358, + "tempo": 122.501, + "time_signature": 4, + "valence": 0.364 + }, + { + "track_name": "Video Games - Jamie Woon Remix", + "track_id": "5XcHGTbys5DFUA35CmgcGw", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1fUMEn4Yk7ZUloozE0fRLL" + ], + "albums": [ + "5xQF02P2MtoIIqMCB1MOoM" + ], + "duration_ms": 314253, + "explicit": false, + "popularity": 24, + "acousticness": 0.267, + "danceability": 0.67, + "energy": 0.735, + "instrumentalness": 0.505, + "key": 6, + "liveness": 0.167, + "loudness": -9.696, + "mode": 0, + "speechiness": 0.0867, + "tempo": 139.959, + "time_signature": 4, + "valence": 0.808 + }, + { + "track_name": "Video Games - We Don’t Belong In Pacha Remix", + "track_id": "1mQ0Qyj147Pmd6jyVvWoMV", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "2FPOWD1PQrknL2h1t6wf8w" + ], + "albums": [ + "5xQF02P2MtoIIqMCB1MOoM" + ], + "duration_ms": 319840, + "explicit": false, + "popularity": 27, + "acousticness": 0.419, + "danceability": 0.687, + "energy": 0.741, + "instrumentalness": 0.0235, + "key": 6, + "liveness": 0.0655, + "loudness": -8.928, + "mode": 0, + "speechiness": 0.0561, + "tempo": 128.004, + "time_signature": 4, + "valence": 0.615 + }, + { + "track_name": "Blue Jeans - Smims & Belle Remix", + "track_id": "7ADy9yJrXpirn1IrWo6jBq", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "7gRhy3MIPHQo5CXYfWaw9I", + "01HaDEWYoJwaJcMmZFxb6n" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 181573, + "explicit": true, + "popularity": 37, + "acousticness": 0.115, + "danceability": 0.741, + "energy": 0.717, + "instrumentalness": 0.124, + "key": 5, + "liveness": 0.181, + "loudness": -6.348, + "mode": 0, + "speechiness": 0.134, + "tempo": 117.948, + "time_signature": 4, + "valence": 0.501 + }, + { + "track_name": "Blue Jeans - Gesaffelstein Remix", + "track_id": "5EyZKVNSF2GVg6GhrlmtBh", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "3hteYQFiMFbJY7wS0xDymP" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 275640, + "explicit": true, + "popularity": 41, + "acousticness": 0.000966, + "danceability": 0.691, + "energy": 0.729, + "instrumentalness": 0.000444, + "key": 10, + "liveness": 0.0639, + "loudness": -5.111, + "mode": 0, + "speechiness": 0.0547, + "tempo": 118.153, + "time_signature": 4, + "valence": 0.407 + }, + { + "track_name": "Blue Jeans - RAC Mix", + "track_id": "7JVNRVPeXFAOdMrxOHNjVv", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "4AGwPDdh1y8hochNzHy5HC" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 218213, + "explicit": true, + "popularity": 50, + "acousticness": 0.399, + "danceability": 0.694, + "energy": 0.841, + "instrumentalness": 0.00652, + "key": 3, + "liveness": 0.1, + "loudness": -3.889, + "mode": 1, + "speechiness": 0.0524, + "tempo": 117.968, + "time_signature": 4, + "valence": 0.416 + }, + { + "track_name": "Blue Jeans - Club Clique Nothing Is Real Remix", + "track_id": "2bAD41U8RQh4Z7rJinqzNy", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "1EnozkTUyiBieU9iagUUZu" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 251880, + "explicit": true, + "popularity": 28, + "acousticness": 0.0758, + "danceability": 0.641, + "energy": 0.756, + "instrumentalness": 4.05e-06, + "key": 3, + "liveness": 0.131, + "loudness": -5.651, + "mode": 1, + "speechiness": 0.0537, + "tempo": 121.98, + "time_signature": 4, + "valence": 0.832 + }, + { + "track_name": "Blue Jeans - Kris Menace Remix", + "track_id": "7CLWX894gh7Ev4Bckaz4cJ", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5P5i4EeZfrKrcRGHRTqJr0" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 401786, + "explicit": true, + "popularity": 39, + "acousticness": 0.0133, + "danceability": 0.604, + "energy": 0.854, + "instrumentalness": 0.0413, + "key": 3, + "liveness": 0.087, + "loudness": -6.128, + "mode": 1, + "speechiness": 0.104, + "tempo": 118.007, + "time_signature": 4, + "valence": 0.553 + }, + { + "track_name": "Blue Jeans - Penguin Prison Remix", + "track_id": "58iEhaCUXldfjDvNhjn7E3", + "artists": [ + "00FQb4jTyendYWaN8pK0wa", + "5VsOThWOagH8C8gCvIy13k" + ], + "albums": [ + "6IQC6W4qrTWIQmUmNGFyKo" + ], + "duration_ms": 336920, + "explicit": true, + "popularity": 37, + "acousticness": 0.0677, + "danceability": 0.816, + "energy": 0.744, + "instrumentalness": 0.0186, + "key": 5, + "liveness": 0.128, + "loudness": -5.822, + "mode": 0, + "speechiness": 0.0341, + "tempo": 120.017, + "time_signature": 4, + "valence": 0.744 + }, + { + "track_name": "Video Games", + "track_id": "5xTEkzHycz81QTcqCS9oVv", + "artists": [ + "00FQb4jTyendYWaN8pK0wa" + ], + "albums": [ + "0V3HJ3D9LsXlqzuXu6jx39" + ], + "duration_ms": 284500, + "explicit": false, + "popularity": 56, + "acousticness": 0.791, + "danceability": 0.336, + "energy": 0.298, + "instrumentalness": 2.6e-06, + "key": 6, + "liveness": 0.0858, + "loudness": -8.547, + "mode": 0, + "speechiness": 0.0324, + "tempo": 123.856, + "time_signature": 4, + "valence": 0.203 + } ] } \ 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 54df643..e10bc7b 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": 129240, + "followers": 129280, "genres": [ "synthwave" ], @@ -41,7 +41,7 @@ "release_date": "2023-11-03", "genres": [], "label": "M.O.O.N. Holdings", - "popularity": 24 + "popularity": 25 }, { "album_name": "Trackmania NEO-CUPRA: District 1 // Velocity (Original Game Soundtrack)", @@ -144,1812 +144,1782 @@ } ], "tracks": [ - [ - { - "track_name": "Kintsugi", - "track_id": "5OILFfuKykbUDiFKJRXP5w", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 246323, - "explicit": false, - "popularity": 20, - "acousticness": 0.00949, - "danceability": 0.642, - "energy": 0.411, - "instrumentalness": 0.927, - "key": 11, - "liveness": 0.113, - "loudness": -16.091, - "mode": 1, - "speechiness": 0.0385, - "tempo": 99.992, - "time_signature": 4, - "valence": 0.376 - }, - { - "track_name": "Grift", - "track_id": "2rrv17Q9OdF7AIBvCtLbVm", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 283285, - "explicit": false, - "popularity": 21, - "acousticness": 0.018, - "danceability": 0.809, - "energy": 0.325, - "instrumentalness": 0.882, - "key": 8, - "liveness": 0.212, - "loudness": -14.666, - "mode": 0, - "speechiness": 0.0708, - "tempo": 122.006, - "time_signature": 4, - "valence": 0.621 - }, - { - "track_name": "Carin's Locked Groove", - "track_id": "0TIyof8hMUMvXNcKsA8pM9", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 225231, - "explicit": false, - "popularity": 16, - "acousticness": 0.0126, - "danceability": 0.725, - "energy": 0.465, - "instrumentalness": 0.83, - "key": 1, - "liveness": 0.108, - "loudness": -14.6, - "mode": 1, - "speechiness": 0.154, - "tempo": 130.109, - "time_signature": 4, - "valence": 0.108 - }, - { - "track_name": "To Have Trust In You", - "track_id": "7CqGvxJZ3FWd9HMYS8bz19", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 281558, - "explicit": false, - "popularity": 19, - "acousticness": 0.0267, - "danceability": 0.524, - "energy": 0.466, - "instrumentalness": 0.919, - "key": 10, - "liveness": 0.125, - "loudness": -15.677, - "mode": 1, - "speechiness": 0.1, - "tempo": 74.636, - "time_signature": 4, - "valence": 0.422 - }, - { - "track_name": "Come Alone", - "track_id": "5ODZQl3PUd2KDqJnz3o7Qd", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 262545, - "explicit": false, - "popularity": 19, - "acousticness": 0.00172, - "danceability": 0.788, - "energy": 0.53, - "instrumentalness": 0.831, - "key": 7, - "liveness": 0.0516, - "loudness": -11.282, - "mode": 1, - "speechiness": 0.083, - "tempo": 118.045, - "time_signature": 4, - "valence": 0.77 - }, - { - "track_name": "Mains Hum", - "track_id": "0CMqu3UmOjniHh8Wvi6RO6", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 178000, - "explicit": false, - "popularity": 16, - "acousticness": 0.98, - "danceability": 0.701, - "energy": 0.145, - "instrumentalness": 0.956, - "key": 1, - "liveness": 0.0961, - "loudness": -28.005, - "mode": 1, - "speechiness": 0.0573, - "tempo": 122.924, - "time_signature": 4, - "valence": 0.583 - }, - { - "track_name": "LS7 Swap", - "track_id": "6qe7o8W840BmhrFreQgrYt", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 387272, - "explicit": false, - "popularity": 14, - "acousticness": 0.0985, - "danceability": 0.661, - "energy": 0.842, - "instrumentalness": 0.814, - "key": 1, - "liveness": 0.0909, - "loudness": -18.146, - "mode": 1, - "speechiness": 0.0545, - "tempo": 132.013, - "time_signature": 4, - "valence": 0.411 - }, - { - "track_name": "Sometimes Love", - "track_id": "2kAQhR9AniHcmxSU3K04h8", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 245647, - "explicit": false, - "popularity": 15, - "acousticness": 0.0463, - "danceability": 0.589, - "energy": 0.354, - "instrumentalness": 0.857, - "key": 0, - "liveness": 0.0896, - "loudness": -19.959, - "mode": 0, - "speechiness": 0.0564, - "tempo": 170.043, - "time_signature": 4, - "valence": 0.795 - }, - { - "track_name": "Patapon", - "track_id": "6eAX612OyOnkgeRbVv1R97", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 314441, - "explicit": false, - "popularity": 14, - "acousticness": 0.00121, - "danceability": 0.845, - "energy": 0.571, - "instrumentalness": 0.869, - "key": 9, - "liveness": 0.118, - "loudness": -15.374, - "mode": 1, - "speechiness": 0.0544, - "tempo": 129.003, - "time_signature": 4, - "valence": 0.18 - }, - { - "track_name": "Would U?", - "track_id": "70eOl4kc0nLDwV7KYx0kKw", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 145463, - "explicit": false, - "popularity": 19, - "acousticness": 0.0171, - "danceability": 0.782, - "energy": 0.476, - "instrumentalness": 0.943, - "key": 1, - "liveness": 0.252, - "loudness": -14.638, - "mode": 1, - "speechiness": 0.0646, - "tempo": 131.981, - "time_signature": 4, - "valence": 0.777 - }, - { - "track_name": "Locked", - "track_id": "5mUmxmQLb3g0gyxJcqi34k", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4UYc1NrDWoMpPV68It9Obh" - ], - "duration_ms": 279686, - "explicit": false, - "popularity": 13, - "acousticness": 0.00739, - "danceability": 0.689, - "energy": 0.544, - "instrumentalness": 0.401, - "key": 1, - "liveness": 0.193, - "loudness": -15.611, - "mode": 0, - "speechiness": 0.0645, - "tempo": 127.008, - "time_signature": 4, - "valence": 0.327 - } - ], - [ - { - "track_name": "justavoice8_21_17.wav", - "track_id": "42BNjnmtRyBexBmK0dqCls", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 188160, - "explicit": false, - "popularity": 19, - "acousticness": 0.00278, - "danceability": 0.56, - "energy": 0.585, - "instrumentalness": 0.75, - "key": 11, - "liveness": 0.171, - "loudness": -16.524, - "mode": 1, - "speechiness": 0.0411, - "tempo": 124.996, - "time_signature": 4, - "valence": 0.107 - }, - { - "track_name": "savemesomeofdat7_14_17v2.wav", - "track_id": "43SjgCZ3AVwVrIrhffBBAT", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 412258, - "explicit": false, - "popularity": 12, - "acousticness": 0.0337, - "danceability": 0.764, - "energy": 0.434, - "instrumentalness": 0.666, - "key": 5, - "liveness": 0.12, - "loudness": -15.323, - "mode": 1, - "speechiness": 0.0479, - "tempo": 124.024, - "time_signature": 4, - "valence": 0.132 - }, - { - "track_name": "a lil surfer baby6_30_17-1.wav", - "track_id": "4QiLLpbUs1eU5cfD4MFaD5", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 116363, - "explicit": false, - "popularity": 17, - "acousticness": 0.41, - "danceability": 0.812, - "energy": 0.337, - "instrumentalness": 0.78, - "key": 2, - "liveness": 0.166, - "loudness": -16.652, - "mode": 1, - "speechiness": 0.0595, - "tempo": 132.128, - "time_signature": 4, - "valence": 0.265 - }, - { - "track_name": "NEWIDEA6_1_17.wav", - "track_id": "7owb72rB9joeKcfpR95XvE", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 280615, - "explicit": false, - "popularity": 9, - "acousticness": 0.00296, - "danceability": 0.683, - "energy": 0.516, - "instrumentalness": 0.895, - "key": 4, - "liveness": 0.405, - "loudness": -13.635, - "mode": 0, - "speechiness": 0.0609, - "tempo": 130.017, - "time_signature": 4, - "valence": 0.565 - }, - { - "track_name": "90guy5_31_17v2.wav", - "track_id": "4OboJX3At8HVV5p5ZmOtkm", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 206666, - "explicit": false, - "popularity": 13, - "acousticness": 0.0333, - "danceability": 0.706, - "energy": 0.322, - "instrumentalness": 0.923, - "key": 8, - "liveness": 0.106, - "loudness": -20.778, - "mode": 1, - "speechiness": 0.0635, - "tempo": 89.975, - "time_signature": 4, - "valence": 0.391 - }, - { - "track_name": "bells5_31_17.wav", - "track_id": "1hdXvbbvZ0PtqClNXy2xxD", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 266344, - "explicit": false, - "popularity": 7, - "acousticness": 0.0064, - "danceability": 0.466, - "energy": 0.462, - "instrumentalness": 1.77e-05, - "key": 2, - "liveness": 0.701, - "loudness": -16.91, - "mode": 1, - "speechiness": 0.0363, - "tempo": 108.978, - "time_signature": 4, - "valence": 0.111 - }, - { - "track_name": "takeitdownWITHOUT3_23_17.wav", - "track_id": "7gHL9KCyClOQF67CjaqX0K", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 147760, - "explicit": false, - "popularity": 15, - "acousticness": 6.73e-05, - "danceability": 0.73, - "energy": 0.462, - "instrumentalness": 0.607, - "key": 10, - "liveness": 0.189, - "loudness": -17.102, - "mode": 0, - "speechiness": 0.0567, - "tempo": 129.999, - "time_signature": 4, - "valence": 0.345 - }, - { - "track_name": "baleric nonsensenew2_15_17-1.wav", - "track_id": "6XszAWfIxSTztwjeOxY7WR", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 400952, - "explicit": false, - "popularity": 7, - "acousticness": 0.0124, - "danceability": 0.705, - "energy": 0.488, - "instrumentalness": 0.846, - "key": 1, - "liveness": 0.106, - "loudness": -20.879, - "mode": 1, - "speechiness": 0.0615, - "tempo": 126.01, - "time_signature": 3, - "valence": 0.111 - }, - { - "track_name": "fleur2_2_17.wav", - "track_id": "0wBHGoHEygQXoauRLZ95BM", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 158769, - "explicit": false, - "popularity": 8, - "acousticness": 0.00278, - "danceability": 0.741, - "energy": 0.484, - "instrumentalness": 0.891, - "key": 9, - "liveness": 0.115, - "loudness": -18.804, - "mode": 0, - "speechiness": 0.0411, - "tempo": 129.995, - "time_signature": 4, - "valence": 0.771 - }, - { - "track_name": "3amideasnew1_16_17.wav", - "track_id": "0z2LRDGUrIm7AYgJyFv4J7", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 157377, - "explicit": false, - "popularity": 13, - "acousticness": 2.13e-05, - "danceability": 0.801, - "energy": 0.482, - "instrumentalness": 0.894, - "key": 1, - "liveness": 0.139, - "loudness": -14.24, - "mode": 1, - "speechiness": 0.0845, - "tempo": 122.006, - "time_signature": 4, - "valence": 0.373 - }, - { - "track_name": "another1new12_30_16.wav", - "track_id": "5zVlxWV2Uz3YgyX1mHl1J7", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 295384, - "explicit": false, - "popularity": 11, - "acousticness": 0.000104, - "danceability": 0.502, - "energy": 0.767, - "instrumentalness": 0.919, - "key": 8, - "liveness": 0.0631, - "loudness": -12.705, - "mode": 0, - "speechiness": 0.0332, - "tempo": 130.016, - "time_signature": 4, - "valence": 0.653 - }, - { - "track_name": "ucant4_6_16.wav", - "track_id": "5h1vFPD7pvXqiBROOngYw6", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 299016, - "explicit": false, - "popularity": 8, - "acousticness": 0.0734, - "danceability": 0.559, - "energy": 0.387, - "instrumentalness": 0.965, - "key": 0, - "liveness": 0.122, - "loudness": -12.339, - "mode": 0, - "speechiness": 0.0621, - "tempo": 121.972, - "time_signature": 4, - "valence": 0.0397 - }, - { - "track_name": "OTHERweirdchordshit4_5_16.wav", - "track_id": "3gdnXcsjw02kTzX9dEngDo", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 451555, - "explicit": false, - "popularity": 7, - "acousticness": 0.0234, - "danceability": 0.597, - "energy": 0.427, - "instrumentalness": 0.893, - "key": 3, - "liveness": 0.111, - "loudness": -17.333, - "mode": 1, - "speechiness": 0.033, - "tempo": 135.004, - "time_signature": 4, - "valence": 0.163 - }, - { - "track_name": "arp2600jam.wav", - "track_id": "0gqJzCLk5Gl23BI0Eqx3yq", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 292096, - "explicit": false, - "popularity": 9, - "acousticness": 0.0375, - "danceability": 0.925, - "energy": 0.365, - "instrumentalness": 0.891, - "key": 2, - "liveness": 0.11, - "loudness": -13.31, - "mode": 1, - "speechiness": 0.13, - "tempo": 126.038, - "time_signature": 4, - "valence": 0.0355 - }, - { - "track_name": "crystalsreprise2_2_15.wav", - "track_id": "1huiBVo1GVE1Ihzlt02Z0Y", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 100000, - "explicit": false, - "popularity": 15, - "acousticness": 0.734, - "danceability": 0.289, - "energy": 0.173, - "instrumentalness": 0.939, - "key": 6, - "liveness": 0.105, - "loudness": -25.844, - "mode": 0, - "speechiness": 0.895, - "tempo": 191.225, - "time_signature": 4, - "valence": 0.318 - }, - { - "track_name": "acidsketch2.wav", - "track_id": "5EJkq1WOBqnhQpHqXw0WRO", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 259047, - "explicit": false, - "popularity": 5, - "acousticness": 8.4e-05, - "danceability": 0.627, - "energy": 0.672, - "instrumentalness": 0.822, - "key": 1, - "liveness": 0.184, - "loudness": -13.881, - "mode": 1, - "speechiness": 0.065, - "tempo": 125.994, - "time_signature": 4, - "valence": 0.372 - }, - { - "track_name": "acidsketch1.wav", - "track_id": "2GdDU2IFQ0TbIBrxfjUxXt", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 160143, - "explicit": false, - "popularity": 7, - "acousticness": 0.0151, - "danceability": 0.778, - "energy": 0.57, - "instrumentalness": 0, - "key": 0, - "liveness": 0.53, - "loudness": -10.072, - "mode": 1, - "speechiness": 0.0786, - "tempo": 126.051, - "time_signature": 4, - "valence": 0.333 - }, - { - "track_name": "interlude11_14_14.wav", - "track_id": "3vleYlc4TQyOXH4SZGoquQ", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 235714, - "explicit": false, - "popularity": 5, - "acousticness": 0.00212, - "danceability": 0.401, - "energy": 0.422, - "instrumentalness": 0.819, - "key": 7, - "liveness": 0.175, - "loudness": -18.232, - "mode": 1, - "speechiness": 0.121, - "tempo": 138.835, - "time_signature": 4, - "valence": 0.0686 - }, - { - "track_name": "chvmpisadumbname10_26_14.wav", - "track_id": "7zIG6Vfo7jEgSy3OCefUWn", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 217846, - "explicit": false, - "popularity": 5, - "acousticness": 0.0377, - "danceability": 0.515, - "energy": 0.62, - "instrumentalness": 0.885, - "key": 11, - "liveness": 0.138, - "loudness": -11.009, - "mode": 0, - "speechiness": 0.114, - "tempo": 129.945, - "time_signature": 4, - "valence": 0.215 - }, - { - "track_name": "bigthing6_22_14.wav", - "track_id": "5fujUHDWhPc0yxZCxxYXo9", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 533333, - "explicit": false, - "popularity": 6, - "acousticness": 0.241, - "danceability": 0.115, - "energy": 0.432, - "instrumentalness": 0.64, - "key": 4, - "liveness": 0.0714, - "loudness": -13.328, - "mode": 0, - "speechiness": 0.0618, - "tempo": 170.98, - "time_signature": 5, - "valence": 0.0314 - }, - { - "track_name": "thing4omar6_2_14.wav", - "track_id": "33ZijWf1nVmQRuR3pJbhD7", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "07MrYAsQRWlV8DqfvvZ2Ku" - ], - "duration_ms": 268474, - "explicit": false, - "popularity": 7, - "acousticness": 0.0656, - "danceability": 0.766, - "energy": 0.304, - "instrumentalness": 0.864, - "key": 7, - "liveness": 0.125, - "loudness": -17.447, - "mode": 1, - "speechiness": 0.0821, - "tempo": 118.029, - "time_signature": 4, - "valence": 0.0395 - } - ], - [ - { - "track_name": "Pilot", - "track_id": "15fr2nL1KAKaXItOPoO15w", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 157090, - "explicit": false, - "popularity": 20, - "acousticness": 0.915, - "danceability": 0.49, - "energy": 0.271, - "instrumentalness": 0.835, - "key": 1, - "liveness": 0.0719, - "loudness": -13.984, - "mode": 1, - "speechiness": 0.0345, - "tempo": 110.113, - "time_signature": 4, - "valence": 0.416 - }, - { - "track_name": "Time", - "track_id": "4DF3X5IL04G7G6OG2twPEs", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 340005, - "explicit": false, - "popularity": 28, - "acousticness": 0.0921, - "danceability": 0.332, - "energy": 0.351, - "instrumentalness": 0.924, - "key": 10, - "liveness": 0.094, - "loudness": -11.025, - "mode": 1, - "speechiness": 0.0294, - "tempo": 103.874, - "time_signature": 4, - "valence": 0.0842 - }, - { - "track_name": "Jon F", - "track_id": "4LoIpdfcx9U69dlOr58jt2", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 447815, - "explicit": false, - "popularity": 14, - "acousticness": 0.00062, - "danceability": 0.607, - "energy": 0.746, - "instrumentalness": 0.879, - "key": 2, - "liveness": 0.092, - "loudness": -9.885, - "mode": 0, - "speechiness": 0.0361, - "tempo": 130.002, - "time_signature": 4, - "valence": 0.648 - }, - { - "track_name": "Episode One", - "track_id": "5uqsfLNA1jlF8rtQHY7c2s", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 59238, - "explicit": false, - "popularity": 24, - "acousticness": 0.888, - "danceability": 0.265, - "energy": 0.57, - "instrumentalness": 0.925, - "key": 8, - "liveness": 0.358, - "loudness": -13.968, - "mode": 1, - "speechiness": 0.0513, - "tempo": 121.255, - "time_signature": 4, - "valence": 0.0866 - }, - { - "track_name": "Medium Cool", - "track_id": "5FD4xUsukyAqVe1GCf2POU", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 233828, - "explicit": false, - "popularity": 30, - "acousticness": 0.0115, - "danceability": 0.786, - "energy": 0.55, - "instrumentalness": 0.874, - "key": 1, - "liveness": 0.114, - "loudness": -10.561, - "mode": 1, - "speechiness": 0.0441, - "tempo": 116.031, - "time_signature": 4, - "valence": 0.0378 - }, - { - "track_name": "Alicia", - "track_id": "3VMxdZIJ3JoVpCNVe456lD", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 383662, - "explicit": false, - "popularity": 19, - "acousticness": 0.0336, - "danceability": 0.647, - "energy": 0.663, - "instrumentalness": 0.918, - "key": 10, - "liveness": 0.111, - "loudness": -10.83, - "mode": 0, - "speechiness": 0.0326, - "tempo": 115.013, - "time_signature": 4, - "valence": 0.63 - }, - { - "track_name": "The Fens", - "track_id": "0blcyWD6B2Ium1JEsWJVHl", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 323535, - "explicit": false, - "popularity": 17, - "acousticness": 0.0373, - "danceability": 0.767, - "energy": 0.553, - "instrumentalness": 0.855, - "key": 0, - "liveness": 0.102, - "loudness": -13.402, - "mode": 1, - "speechiness": 0.0685, - "tempo": 117.998, - "time_signature": 4, - "valence": 0.138 - }, - { - "track_name": "Episode Two", - "track_id": "1HcH4ynKvJy2QnH1wWMhLQ", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 122328, - "explicit": false, - "popularity": 11, - "acousticness": 0.932, - "danceability": 0.463, - "energy": 0.196, - "instrumentalness": 0.0357, - "key": 5, - "liveness": 0.144, - "loudness": -16.074, - "mode": 0, - "speechiness": 0.148, - "tempo": 78.67, - "time_signature": 4, - "valence": 0.425 - }, - { - "track_name": "Leaning In", - "track_id": "0CyKlXjjSVckg1T5RHqx4H", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 341147, - "explicit": false, - "popularity": 28, - "acousticness": 4.07e-05, - "danceability": 0.656, - "energy": 0.646, - "instrumentalness": 0.724, - "key": 9, - "liveness": 0.0761, - "loudness": -10.89, - "mode": 0, - "speechiness": 0.0315, - "tempo": 121.994, - "time_signature": 4, - "valence": 0.175 - }, - { - "track_name": "Finale", - "track_id": "4DvyveQ9Fr1imfbkYstvku", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0i7uCXTDefj9D30hF5MHZU" - ], - "duration_ms": 186000, - "explicit": false, - "popularity": 13, - "acousticness": 0.856, - "danceability": 0.299, - "energy": 0.3, - "instrumentalness": 0.92, - "key": 9, - "liveness": 0.173, - "loudness": -13.658, - "mode": 0, - "speechiness": 0.0307, - "tempo": 96.658, - "time_signature": 4, - "valence": 0.156 - } - ], - [ - { - "track_name": "To Live and Lie in LA", - "track_id": "04BFbnssIcyBMU8yGSicqL", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4gJGLHD6lK1vJE89Y7Tidf" - ], - "duration_ms": 423722, - "explicit": false, - "popularity": 32, - "acousticness": 0.000919, - "danceability": 0.754, - "energy": 0.73, - "instrumentalness": 0.592, - "key": 11, - "liveness": 0.862, - "loudness": -8.259, - "mode": 0, - "speechiness": 0.0656, - "tempo": 117.006, - "time_signature": 4, - "valence": 0.605 - }, - { - "track_name": "Smoke Machine", - "track_id": "6FJTkdQBwpcAm9PR7xszQS", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4gJGLHD6lK1vJE89Y7Tidf" - ], - "duration_ms": 360932, - "explicit": false, - "popularity": 18, - "acousticness": 0.00232, - "danceability": 0.676, - "energy": 0.892, - "instrumentalness": 0.844, - "key": 3, - "liveness": 0.114, - "loudness": -9.161, - "mode": 0, - "speechiness": 0.0363, - "tempo": 129.05, - "time_signature": 4, - "valence": 0.53 - }, - { - "track_name": "Happiness is for Beautiful People", - "track_id": "2yQaozz77Gp8pgGTNhiTEK", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4gJGLHD6lK1vJE89Y7Tidf" - ], - "duration_ms": 261818, - "explicit": false, - "popularity": 17, - "acousticness": 0.00449, - "danceability": 0.653, - "energy": 0.428, - "instrumentalness": 0.378, - "key": 9, - "liveness": 0.12, - "loudness": -7.85, - "mode": 1, - "speechiness": 0.36, - "tempo": 121.009, - "time_signature": 4, - "valence": 0.0672 - }, - { - "track_name": "A Song for Fred", - "track_id": "6eA6vTiUmaBJORow4nPfmN", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "4gJGLHD6lK1vJE89Y7Tidf" - ], - "duration_ms": 337914, - "explicit": false, - "popularity": 18, - "acousticness": 0.0932, - "danceability": 0.665, - "energy": 0.677, - "instrumentalness": 0.95, - "key": 5, - "liveness": 0.113, - "loudness": -9.282, - "mode": 0, - "speechiness": 0.0648, - "tempo": 122.998, - "time_signature": 4, - "valence": 0.36 - } - ], - [ - { - "track_name": "Broker Fee", - "track_id": "4cTn3bowCXPNxkMBoWWu4e", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "55aHmQQ6fvu9fFVvE6vbV0" - ], - "duration_ms": 117677, - "explicit": false, - "popularity": 33, - "acousticness": 0.357, - "danceability": 0.7, - "energy": 0.857, - "instrumentalness": 0.0401, - "key": 5, - "liveness": 0.38, - "loudness": -8.252, - "mode": 0, - "speechiness": 0.0596, - "tempo": 155.029, - "time_signature": 4, - "valence": 0.554 - }, - { - "track_name": "Attachment", - "track_id": "5FLnlXbUybCWpCTCxHEH0Y", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "55aHmQQ6fvu9fFVvE6vbV0" - ], - "duration_ms": 128000, - "explicit": false, - "popularity": 20, - "acousticness": 0.000178, - "danceability": 0.691, - "energy": 0.892, - "instrumentalness": 0.823, - "key": 1, - "liveness": 0.327, - "loudness": -8.993, - "mode": 0, - "speechiness": 0.0456, - "tempo": 150.01, - "time_signature": 4, - "valence": 0.664 - }, - { - "track_name": "Bleach", - "track_id": "3kq2P6FrOI7Xe48T4pPcts", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "55aHmQQ6fvu9fFVvE6vbV0" - ], - "duration_ms": 121690, - "explicit": false, - "popularity": 26, - "acousticness": 0.00144, - "danceability": 0.631, - "energy": 0.852, - "instrumentalness": 0.874, - "key": 1, - "liveness": 0.464, - "loudness": -9.001, - "mode": 1, - "speechiness": 0.0403, - "tempo": 142.015, - "time_signature": 4, - "valence": 0.877 - }, - { - "track_name": "Never Work", - "track_id": "1QKqlFp3L3RI40a3Tq4anC", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "55aHmQQ6fvu9fFVvE6vbV0" - ], - "duration_ms": 129229, - "explicit": false, - "popularity": 19, - "acousticness": 0.00538, - "danceability": 0.575, - "energy": 0.955, - "instrumentalness": 0.468, - "key": 5, - "liveness": 0.399, - "loudness": -9.417, - "mode": 0, - "speechiness": 0.101, - "tempo": 142.959, - "time_signature": 4, - "valence": 0.304 - } - ], - [ - { - "track_name": "Come Alone", - "track_id": "3qApu7boy4hcwhkSAqhuok", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "63C9RxopoJAnguV9P2CQ4J" - ], - "duration_ms": 262545, - "explicit": false, - "popularity": 14, - "acousticness": 0.00199, - "danceability": 0.786, - "energy": 0.529, - "instrumentalness": 0.835, - "key": 7, - "liveness": 0.0517, - "loudness": -11.283, - "mode": 1, - "speechiness": 0.0819, - "tempo": 118.05, - "time_signature": 4, - "valence": 0.764 - } - ], - [ - { - "track_name": "Grift", - "track_id": "3A1pY0zdVbOCX4jvoRV1xj", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "7fN83h2Lyn5FpyU4eVcAiq" - ], - "duration_ms": 283285, - "explicit": false, - "popularity": 16, - "acousticness": 0.018, - "danceability": 0.809, - "energy": 0.325, - "instrumentalness": 0.882, - "key": 8, - "liveness": 0.212, - "loudness": -14.666, - "mode": 0, - "speechiness": 0.0708, - "tempo": 122.006, - "time_signature": 4, - "valence": 0.621 - } - ], - [ - { - "track_name": "Alicia - Single Version", - "track_id": "7pojHOx74bYR8ZaokFmmMP", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0XlVbAVRohgSTOtoQcCkWp" - ], - "duration_ms": 568652, - "explicit": false, - "popularity": 29, - "acousticness": 0.0718, - "danceability": 0.672, - "energy": 0.515, - "instrumentalness": 0.879, - "key": 10, - "liveness": 0.1, - "loudness": -13.788, - "mode": 0, - "speechiness": 0.0338, - "tempo": 115.017, - "time_signature": 4, - "valence": 0.496 - }, - { - "track_name": "Alicia - Juan Maclean Remix", - "track_id": "4zgtlmGwob4ZGmbOaN7UxQ", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0XlVbAVRohgSTOtoQcCkWp" - ], - "duration_ms": 476720, - "explicit": false, - "popularity": 9, - "acousticness": 0.0342, - "danceability": 0.641, - "energy": 0.881, - "instrumentalness": 0.854, - "key": 8, - "liveness": 0.0943, - "loudness": -9.047, - "mode": 0, - "speechiness": 0.0432, - "tempo": 115.0, - "time_signature": 4, - "valence": 0.558 - }, - { - "track_name": "Alicia - Sage Caswell Rezone", - "track_id": "2QfTpItQqBpS5qQokGCcWm", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0XlVbAVRohgSTOtoQcCkWp" - ], - "duration_ms": 440355, - "explicit": false, - "popularity": 4, - "acousticness": 1.52e-05, - "danceability": 0.652, - "energy": 0.918, - "instrumentalness": 0.889, - "key": 8, - "liveness": 0.086, - "loudness": -9.336, - "mode": 1, - "speechiness": 0.0536, - "tempo": 127.006, - "time_signature": 4, - "valence": 0.266 - }, - { - "track_name": "Alicia - David Scott Stone Remix", - "track_id": "734eyjIJmRM2aPuneC01WI", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "0XlVbAVRohgSTOtoQcCkWp" - ], - "duration_ms": 370972, - "explicit": false, - "popularity": 9, - "acousticness": 0.000172, - "danceability": 0.704, - "energy": 0.833, - "instrumentalness": 0.652, - "key": 6, - "liveness": 0.0428, - "loudness": -10.286, - "mode": 1, - "speechiness": 0.0554, - "tempo": 111.993, - "time_signature": 4, - "valence": 0.433 - } - ], - [ - { - "track_name": "Timestamp", - "track_id": "7flQcQqGZr5kg1zbdUfral", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT", - "0Z9Lb8rWpJxC275AwXwID8" - ], - "albums": [ - "11Jpi2nwR0Aye6pNNo8Pn3" - ], - "duration_ms": 303405, - "explicit": false, - "popularity": 26, - "acousticness": 0.221, - "danceability": 0.49, - "energy": 0.422, - "instrumentalness": 0.797, - "key": 6, - "liveness": 0.11, - "loudness": -10.384, - "mode": 1, - "speechiness": 0.0969, - "tempo": 179.437, - "time_signature": 4, - "valence": 0.145 - } - ], - [ - { - "track_name": "Chlorophyll", - "track_id": "3CUZjZSKubYC3TRI2irseV", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1txgs3qVIoiqBXs6FNM5WQ" - ], - "duration_ms": 309818, - "explicit": false, - "popularity": 16, - "acousticness": 0.292, - "danceability": 0.5, - "energy": 0.725, - "instrumentalness": 0.652, - "key": 7, - "liveness": 0.172, - "loudness": -7.822, - "mode": 1, - "speechiness": 0.0401, - "tempo": 109.788, - "time_signature": 4, - "valence": 0.0556 - } - ], - [ - { - "track_name": "Rubber", - "track_id": "1N7255yRNHW4mJBL2SWAl2", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "31KKb6U2cRjDPa3lc3A0x3" - ], - "duration_ms": 316800, - "explicit": false, - "popularity": 14, - "acousticness": 0.41, - "danceability": 0.549, - "energy": 0.272, - "instrumentalness": 0.838, - "key": 0, - "liveness": 0.326, - "loudness": -20.337, - "mode": 1, - "speechiness": 0.0556, - "tempo": 99.975, - "time_signature": 4, - "valence": 0.148 - } - ], - [ - { - "track_name": "Quixotic", - "track_id": "1pS4GeY3cyRGb9Sy8qU1Sq", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "3DiM1jUknWggjf70F5nZJr" - ], - "duration_ms": 345762, - "explicit": false, - "popularity": 46, - "acousticness": 0.0454, - "danceability": 0.709, - "energy": 0.45, - "instrumentalness": 0.882, - "key": 5, - "liveness": 0.0977, - "loudness": -14.079, - "mode": 1, - "speechiness": 0.052, - "tempo": 118.012, - "time_signature": 4, - "valence": 0.34 - } - ], - [ - { - "track_name": "Follow Me", - "track_id": "12kiQQbQsEzInkeLB0k7Bq", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "5fOTbqMq64St0yuxPd450v" - ], - "duration_ms": 253636, - "explicit": false, - "popularity": 21, - "acousticness": 0.249, - "danceability": 0.9, - "energy": 0.333, - "instrumentalness": 0.939, - "key": 1, - "liveness": 0.118, - "loudness": -18.656, - "mode": 1, - "speechiness": 0.101, - "tempo": 110.004, - "time_signature": 4, - "valence": 0.0758 - }, - { - "track_name": "Certainty", - "track_id": "3ix0biXMmeUyZ7tAC5B8D8", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "5fOTbqMq64St0yuxPd450v" - ], - "duration_ms": 250909, - "explicit": false, - "popularity": 23, - "acousticness": 0.0652, - "danceability": 0.792, - "energy": 0.295, - "instrumentalness": 0.61, - "key": 0, - "liveness": 0.0853, - "loudness": -10.922, - "mode": 1, - "speechiness": 0.141, - "tempo": 110.0, - "time_signature": 4, - "valence": 0.0719 - }, - { - "track_name": "Case Logic", - "track_id": "0AeSOMLf70onbvJv2Pzvd0", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "5fOTbqMq64St0yuxPd450v" - ], - "duration_ms": 331124, - "explicit": false, - "popularity": 20, - "acousticness": 0.198, - "danceability": 0.725, - "energy": 0.5, - "instrumentalness": 0.81, - "key": 1, - "liveness": 0.231, - "loudness": -8.602, - "mode": 1, - "speechiness": 0.146, - "tempo": 120.022, - "time_signature": 3, - "valence": 0.2 - } - ], - [ - { - "track_name": "Dust", - "track_id": "2BZYVqGyL1L1adBbq2ClVv", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1kvyU0WQNcenwnLRBwyWhB" - ], - "duration_ms": 302400, - "explicit": false, - "popularity": 56, - "acousticness": 0.0105, - "danceability": 0.418, - "energy": 0.659, - "instrumentalness": 0.878, - "key": 2, - "liveness": 0.0727, - "loudness": -7.958, - "mode": 0, - "speechiness": 0.0449, - "tempo": 100.007, - "time_signature": 4, - "valence": 0.241 - }, - { - "track_name": "Plus Four", - "track_id": "7ALUDRo47KnrNNAqnlDMMq", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1kvyU0WQNcenwnLRBwyWhB" - ], - "duration_ms": 477966, - "explicit": false, - "popularity": 32, - "acousticness": 0.0156, - "danceability": 0.649, - "energy": 0.725, - "instrumentalness": 0.887, - "key": 7, - "liveness": 0.0852, - "loudness": -11.884, - "mode": 0, - "speechiness": 0.0367, - "tempo": 117.993, - "time_signature": 4, - "valence": 0.036 - }, - { - "track_name": "Warehouse (feat. Glass Teeth)", - "track_id": "1vCo1Jnv2aods1l2P95VRT", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT", - "4cyi9yfsGcOM7IXkuHYRHn" - ], - "albums": [ - "1kvyU0WQNcenwnLRBwyWhB" - ], - "duration_ms": 224878, - "explicit": false, - "popularity": 33, - "acousticness": 0.0314, - "danceability": 0.571, - "energy": 0.887, - "instrumentalness": 0.872, - "key": 5, - "liveness": 0.0773, - "loudness": -8.877, - "mode": 0, - "speechiness": 0.0368, - "tempo": 123.005, - "time_signature": 4, - "valence": 0.269 - }, - { - "track_name": "Delay", - "track_id": "7g2mskmb0okRLDtx0vtobh", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1kvyU0WQNcenwnLRBwyWhB" - ], - "duration_ms": 496462, - "explicit": false, - "popularity": 39, - "acousticness": 0.341, - "danceability": 0.796, - "energy": 0.674, - "instrumentalness": 0.939, - "key": 7, - "liveness": 0.0891, - "loudness": -13.025, - "mode": 1, - "speechiness": 0.039, - "tempo": 127.993, - "time_signature": 4, - "valence": 0.353 - } - ], - [ - { - "track_name": "Paris", - "track_id": "5uDzCEn4Tzv9qKWiYNyTaQ", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1e0tqn3caRoNqZU6YosOLa" - ], - "duration_ms": 271200, - "explicit": false, - "popularity": 52, - "acousticness": 0.105, - "danceability": 0.65, - "energy": 0.666, - "instrumentalness": 0.945, - "key": 2, - "liveness": 0.096, - "loudness": -14.067, - "mode": 1, - "speechiness": 0.0463, - "tempo": 99.992, - "time_signature": 4, - "valence": 0.161 - }, - { - "track_name": "Crystals", - "track_id": "3KwzRfEeKhK5ADT9iPFHe2", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1e0tqn3caRoNqZU6YosOLa" - ], - "duration_ms": 289714, - "explicit": false, - "popularity": 53, - "acousticness": 0.366, - "danceability": 0.779, - "energy": 0.465, - "instrumentalness": 0.858, - "key": 9, - "liveness": 0.107, - "loudness": -16.555, - "mode": 0, - "speechiness": 0.191, - "tempo": 104.998, - "time_signature": 4, - "valence": 0.0373 - }, - { - "track_name": "Hydrogen", - "track_id": "6vc7GNW3FxMkgKuProVOoB", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1e0tqn3caRoNqZU6YosOLa" - ], - "duration_ms": 289523, - "explicit": false, - "popularity": 56, - "acousticness": 0.00514, - "danceability": 0.797, - "energy": 0.947, - "instrumentalness": 0.742, - "key": 10, - "liveness": 0.0695, - "loudness": -7.942, - "mode": 0, - "speechiness": 0.0524, - "tempo": 125.936, - "time_signature": 4, - "valence": 0.0447 - }, - { - "track_name": "Release", - "track_id": "7IwoJJ2bmzQULYOE89POMU", - "artists": [ - "0M2HHtY3OOQzIZxrHkbJLT" - ], - "albums": [ - "1e0tqn3caRoNqZU6YosOLa" - ], - "duration_ms": 362222, - "explicit": false, - "popularity": 44, - "acousticness": 7.89e-05, - "danceability": 0.717, - "energy": 0.457, - "instrumentalness": 0.809, - "key": 10, - "liveness": 0.117, - "loudness": -18.495, - "mode": 0, - "speechiness": 0.0608, - "tempo": 108.006, - "time_signature": 4, - "valence": 0.0735 - } - ] + { + "track_name": "Kintsugi", + "track_id": "5OILFfuKykbUDiFKJRXP5w", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 246323, + "explicit": false, + "popularity": 20, + "acousticness": 0.00949, + "danceability": 0.642, + "energy": 0.411, + "instrumentalness": 0.927, + "key": 11, + "liveness": 0.113, + "loudness": -16.091, + "mode": 1, + "speechiness": 0.0385, + "tempo": 99.992, + "time_signature": 4, + "valence": 0.376 + }, + { + "track_name": "Grift", + "track_id": "2rrv17Q9OdF7AIBvCtLbVm", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 283285, + "explicit": false, + "popularity": 21, + "acousticness": 0.018, + "danceability": 0.809, + "energy": 0.325, + "instrumentalness": 0.882, + "key": 8, + "liveness": 0.212, + "loudness": -14.666, + "mode": 0, + "speechiness": 0.0708, + "tempo": 122.006, + "time_signature": 4, + "valence": 0.621 + }, + { + "track_name": "Carin's Locked Groove", + "track_id": "0TIyof8hMUMvXNcKsA8pM9", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 225231, + "explicit": false, + "popularity": 16, + "acousticness": 0.0126, + "danceability": 0.725, + "energy": 0.465, + "instrumentalness": 0.83, + "key": 1, + "liveness": 0.108, + "loudness": -14.6, + "mode": 1, + "speechiness": 0.154, + "tempo": 130.109, + "time_signature": 4, + "valence": 0.108 + }, + { + "track_name": "To Have Trust In You", + "track_id": "7CqGvxJZ3FWd9HMYS8bz19", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 281558, + "explicit": false, + "popularity": 19, + "acousticness": 0.0267, + "danceability": 0.524, + "energy": 0.466, + "instrumentalness": 0.919, + "key": 10, + "liveness": 0.125, + "loudness": -15.677, + "mode": 1, + "speechiness": 0.1, + "tempo": 74.636, + "time_signature": 4, + "valence": 0.422 + }, + { + "track_name": "Come Alone", + "track_id": "5ODZQl3PUd2KDqJnz3o7Qd", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 262545, + "explicit": false, + "popularity": 19, + "acousticness": 0.00172, + "danceability": 0.788, + "energy": 0.53, + "instrumentalness": 0.831, + "key": 7, + "liveness": 0.0516, + "loudness": -11.282, + "mode": 1, + "speechiness": 0.083, + "tempo": 118.045, + "time_signature": 4, + "valence": 0.77 + }, + { + "track_name": "Mains Hum", + "track_id": "0CMqu3UmOjniHh8Wvi6RO6", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 178000, + "explicit": false, + "popularity": 16, + "acousticness": 0.98, + "danceability": 0.701, + "energy": 0.145, + "instrumentalness": 0.956, + "key": 1, + "liveness": 0.0961, + "loudness": -28.005, + "mode": 1, + "speechiness": 0.0573, + "tempo": 122.924, + "time_signature": 4, + "valence": 0.583 + }, + { + "track_name": "LS7 Swap", + "track_id": "6qe7o8W840BmhrFreQgrYt", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 387272, + "explicit": false, + "popularity": 14, + "acousticness": 0.0985, + "danceability": 0.661, + "energy": 0.842, + "instrumentalness": 0.814, + "key": 1, + "liveness": 0.0909, + "loudness": -18.146, + "mode": 1, + "speechiness": 0.0545, + "tempo": 132.013, + "time_signature": 4, + "valence": 0.411 + }, + { + "track_name": "Sometimes Love", + "track_id": "2kAQhR9AniHcmxSU3K04h8", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 245647, + "explicit": false, + "popularity": 15, + "acousticness": 0.0463, + "danceability": 0.589, + "energy": 0.354, + "instrumentalness": 0.857, + "key": 0, + "liveness": 0.0896, + "loudness": -19.959, + "mode": 0, + "speechiness": 0.0564, + "tempo": 170.043, + "time_signature": 4, + "valence": 0.795 + }, + { + "track_name": "Patapon", + "track_id": "6eAX612OyOnkgeRbVv1R97", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 314441, + "explicit": false, + "popularity": 14, + "acousticness": 0.00121, + "danceability": 0.845, + "energy": 0.571, + "instrumentalness": 0.869, + "key": 9, + "liveness": 0.118, + "loudness": -15.374, + "mode": 1, + "speechiness": 0.0544, + "tempo": 129.003, + "time_signature": 4, + "valence": 0.18 + }, + { + "track_name": "Would U?", + "track_id": "70eOl4kc0nLDwV7KYx0kKw", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 145463, + "explicit": false, + "popularity": 19, + "acousticness": 0.0171, + "danceability": 0.782, + "energy": 0.476, + "instrumentalness": 0.943, + "key": 1, + "liveness": 0.252, + "loudness": -14.638, + "mode": 1, + "speechiness": 0.0646, + "tempo": 131.981, + "time_signature": 4, + "valence": 0.777 + }, + { + "track_name": "Locked", + "track_id": "5mUmxmQLb3g0gyxJcqi34k", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4UYc1NrDWoMpPV68It9Obh" + ], + "duration_ms": 279686, + "explicit": false, + "popularity": 13, + "acousticness": 0.00739, + "danceability": 0.689, + "energy": 0.544, + "instrumentalness": 0.401, + "key": 1, + "liveness": 0.193, + "loudness": -15.611, + "mode": 0, + "speechiness": 0.0645, + "tempo": 127.008, + "time_signature": 4, + "valence": 0.327 + }, + { + "track_name": "justavoice8_21_17.wav", + "track_id": "42BNjnmtRyBexBmK0dqCls", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 188160, + "explicit": false, + "popularity": 19, + "acousticness": 0.00278, + "danceability": 0.56, + "energy": 0.585, + "instrumentalness": 0.75, + "key": 11, + "liveness": 0.171, + "loudness": -16.524, + "mode": 1, + "speechiness": 0.0411, + "tempo": 124.996, + "time_signature": 4, + "valence": 0.107 + }, + { + "track_name": "savemesomeofdat7_14_17v2.wav", + "track_id": "43SjgCZ3AVwVrIrhffBBAT", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 412258, + "explicit": false, + "popularity": 12, + "acousticness": 0.0337, + "danceability": 0.764, + "energy": 0.434, + "instrumentalness": 0.666, + "key": 5, + "liveness": 0.12, + "loudness": -15.323, + "mode": 1, + "speechiness": 0.0479, + "tempo": 124.024, + "time_signature": 4, + "valence": 0.132 + }, + { + "track_name": "a lil surfer baby6_30_17-1.wav", + "track_id": "4QiLLpbUs1eU5cfD4MFaD5", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 116363, + "explicit": false, + "popularity": 18, + "acousticness": 0.41, + "danceability": 0.812, + "energy": 0.337, + "instrumentalness": 0.78, + "key": 2, + "liveness": 0.166, + "loudness": -16.652, + "mode": 1, + "speechiness": 0.0595, + "tempo": 132.128, + "time_signature": 4, + "valence": 0.265 + }, + { + "track_name": "NEWIDEA6_1_17.wav", + "track_id": "7owb72rB9joeKcfpR95XvE", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 280615, + "explicit": false, + "popularity": 9, + "acousticness": 0.00296, + "danceability": 0.683, + "energy": 0.516, + "instrumentalness": 0.895, + "key": 4, + "liveness": 0.405, + "loudness": -13.635, + "mode": 0, + "speechiness": 0.0609, + "tempo": 130.017, + "time_signature": 4, + "valence": 0.565 + }, + { + "track_name": "90guy5_31_17v2.wav", + "track_id": "4OboJX3At8HVV5p5ZmOtkm", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 206666, + "explicit": false, + "popularity": 13, + "acousticness": 0.0333, + "danceability": 0.706, + "energy": 0.322, + "instrumentalness": 0.923, + "key": 8, + "liveness": 0.106, + "loudness": -20.778, + "mode": 1, + "speechiness": 0.0635, + "tempo": 89.975, + "time_signature": 4, + "valence": 0.391 + }, + { + "track_name": "bells5_31_17.wav", + "track_id": "1hdXvbbvZ0PtqClNXy2xxD", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 266344, + "explicit": false, + "popularity": 8, + "acousticness": 0.0064, + "danceability": 0.466, + "energy": 0.462, + "instrumentalness": 1.77e-05, + "key": 2, + "liveness": 0.701, + "loudness": -16.91, + "mode": 1, + "speechiness": 0.0363, + "tempo": 108.978, + "time_signature": 4, + "valence": 0.111 + }, + { + "track_name": "takeitdownWITHOUT3_23_17.wav", + "track_id": "7gHL9KCyClOQF67CjaqX0K", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 147760, + "explicit": false, + "popularity": 15, + "acousticness": 6.73e-05, + "danceability": 0.73, + "energy": 0.462, + "instrumentalness": 0.607, + "key": 10, + "liveness": 0.189, + "loudness": -17.102, + "mode": 0, + "speechiness": 0.0567, + "tempo": 129.999, + "time_signature": 4, + "valence": 0.345 + }, + { + "track_name": "baleric nonsensenew2_15_17-1.wav", + "track_id": "6XszAWfIxSTztwjeOxY7WR", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 400952, + "explicit": false, + "popularity": 7, + "acousticness": 0.0124, + "danceability": 0.705, + "energy": 0.488, + "instrumentalness": 0.846, + "key": 1, + "liveness": 0.106, + "loudness": -20.879, + "mode": 1, + "speechiness": 0.0615, + "tempo": 126.01, + "time_signature": 3, + "valence": 0.111 + }, + { + "track_name": "fleur2_2_17.wav", + "track_id": "0wBHGoHEygQXoauRLZ95BM", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 158769, + "explicit": false, + "popularity": 8, + "acousticness": 0.00278, + "danceability": 0.741, + "energy": 0.484, + "instrumentalness": 0.891, + "key": 9, + "liveness": 0.115, + "loudness": -18.804, + "mode": 0, + "speechiness": 0.0411, + "tempo": 129.995, + "time_signature": 4, + "valence": 0.771 + }, + { + "track_name": "3amideasnew1_16_17.wav", + "track_id": "0z2LRDGUrIm7AYgJyFv4J7", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 157377, + "explicit": false, + "popularity": 13, + "acousticness": 2.13e-05, + "danceability": 0.801, + "energy": 0.482, + "instrumentalness": 0.894, + "key": 1, + "liveness": 0.139, + "loudness": -14.24, + "mode": 1, + "speechiness": 0.0845, + "tempo": 122.006, + "time_signature": 4, + "valence": 0.373 + }, + { + "track_name": "another1new12_30_16.wav", + "track_id": "5zVlxWV2Uz3YgyX1mHl1J7", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 295384, + "explicit": false, + "popularity": 11, + "acousticness": 0.000104, + "danceability": 0.502, + "energy": 0.767, + "instrumentalness": 0.919, + "key": 8, + "liveness": 0.0631, + "loudness": -12.705, + "mode": 0, + "speechiness": 0.0332, + "tempo": 130.016, + "time_signature": 4, + "valence": 0.653 + }, + { + "track_name": "ucant4_6_16.wav", + "track_id": "5h1vFPD7pvXqiBROOngYw6", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 299016, + "explicit": false, + "popularity": 8, + "acousticness": 0.0734, + "danceability": 0.559, + "energy": 0.387, + "instrumentalness": 0.965, + "key": 0, + "liveness": 0.122, + "loudness": -12.339, + "mode": 0, + "speechiness": 0.0621, + "tempo": 121.972, + "time_signature": 4, + "valence": 0.0397 + }, + { + "track_name": "OTHERweirdchordshit4_5_16.wav", + "track_id": "3gdnXcsjw02kTzX9dEngDo", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 451555, + "explicit": false, + "popularity": 7, + "acousticness": 0.0234, + "danceability": 0.597, + "energy": 0.427, + "instrumentalness": 0.893, + "key": 3, + "liveness": 0.111, + "loudness": -17.333, + "mode": 1, + "speechiness": 0.033, + "tempo": 135.004, + "time_signature": 4, + "valence": 0.163 + }, + { + "track_name": "arp2600jam.wav", + "track_id": "0gqJzCLk5Gl23BI0Eqx3yq", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 292096, + "explicit": false, + "popularity": 9, + "acousticness": 0.0375, + "danceability": 0.925, + "energy": 0.365, + "instrumentalness": 0.891, + "key": 2, + "liveness": 0.11, + "loudness": -13.31, + "mode": 1, + "speechiness": 0.13, + "tempo": 126.038, + "time_signature": 4, + "valence": 0.0355 + }, + { + "track_name": "crystalsreprise2_2_15.wav", + "track_id": "1huiBVo1GVE1Ihzlt02Z0Y", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 100000, + "explicit": false, + "popularity": 15, + "acousticness": 0.734, + "danceability": 0.289, + "energy": 0.173, + "instrumentalness": 0.939, + "key": 6, + "liveness": 0.105, + "loudness": -25.844, + "mode": 0, + "speechiness": 0.895, + "tempo": 191.225, + "time_signature": 4, + "valence": 0.318 + }, + { + "track_name": "acidsketch2.wav", + "track_id": "5EJkq1WOBqnhQpHqXw0WRO", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 259047, + "explicit": false, + "popularity": 5, + "acousticness": 8.4e-05, + "danceability": 0.627, + "energy": 0.672, + "instrumentalness": 0.822, + "key": 1, + "liveness": 0.184, + "loudness": -13.881, + "mode": 1, + "speechiness": 0.065, + "tempo": 125.994, + "time_signature": 4, + "valence": 0.372 + }, + { + "track_name": "acidsketch1.wav", + "track_id": "2GdDU2IFQ0TbIBrxfjUxXt", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 160143, + "explicit": false, + "popularity": 7, + "acousticness": 0.0151, + "danceability": 0.778, + "energy": 0.57, + "instrumentalness": 0, + "key": 0, + "liveness": 0.53, + "loudness": -10.072, + "mode": 1, + "speechiness": 0.0786, + "tempo": 126.051, + "time_signature": 4, + "valence": 0.333 + }, + { + "track_name": "interlude11_14_14.wav", + "track_id": "3vleYlc4TQyOXH4SZGoquQ", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 235714, + "explicit": false, + "popularity": 5, + "acousticness": 0.00212, + "danceability": 0.401, + "energy": 0.422, + "instrumentalness": 0.819, + "key": 7, + "liveness": 0.175, + "loudness": -18.232, + "mode": 1, + "speechiness": 0.121, + "tempo": 138.835, + "time_signature": 4, + "valence": 0.0686 + }, + { + "track_name": "chvmpisadumbname10_26_14.wav", + "track_id": "7zIG6Vfo7jEgSy3OCefUWn", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 217846, + "explicit": false, + "popularity": 5, + "acousticness": 0.0377, + "danceability": 0.515, + "energy": 0.62, + "instrumentalness": 0.885, + "key": 11, + "liveness": 0.138, + "loudness": -11.009, + "mode": 0, + "speechiness": 0.114, + "tempo": 129.945, + "time_signature": 4, + "valence": 0.215 + }, + { + "track_name": "bigthing6_22_14.wav", + "track_id": "5fujUHDWhPc0yxZCxxYXo9", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 533333, + "explicit": false, + "popularity": 6, + "acousticness": 0.241, + "danceability": 0.115, + "energy": 0.432, + "instrumentalness": 0.64, + "key": 4, + "liveness": 0.0714, + "loudness": -13.328, + "mode": 0, + "speechiness": 0.0618, + "tempo": 170.98, + "time_signature": 5, + "valence": 0.0314 + }, + { + "track_name": "thing4omar6_2_14.wav", + "track_id": "33ZijWf1nVmQRuR3pJbhD7", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "07MrYAsQRWlV8DqfvvZ2Ku" + ], + "duration_ms": 268474, + "explicit": false, + "popularity": 7, + "acousticness": 0.0656, + "danceability": 0.766, + "energy": 0.304, + "instrumentalness": 0.864, + "key": 7, + "liveness": 0.125, + "loudness": -17.447, + "mode": 1, + "speechiness": 0.0821, + "tempo": 118.029, + "time_signature": 4, + "valence": 0.0395 + }, + { + "track_name": "Pilot", + "track_id": "15fr2nL1KAKaXItOPoO15w", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 157090, + "explicit": false, + "popularity": 20, + "acousticness": 0.915, + "danceability": 0.49, + "energy": 0.271, + "instrumentalness": 0.835, + "key": 1, + "liveness": 0.0719, + "loudness": -13.984, + "mode": 1, + "speechiness": 0.0345, + "tempo": 110.113, + "time_signature": 4, + "valence": 0.416 + }, + { + "track_name": "Time", + "track_id": "4DF3X5IL04G7G6OG2twPEs", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 340005, + "explicit": false, + "popularity": 28, + "acousticness": 0.0921, + "danceability": 0.332, + "energy": 0.351, + "instrumentalness": 0.924, + "key": 10, + "liveness": 0.094, + "loudness": -11.025, + "mode": 1, + "speechiness": 0.0294, + "tempo": 103.874, + "time_signature": 4, + "valence": 0.0842 + }, + { + "track_name": "Jon F", + "track_id": "4LoIpdfcx9U69dlOr58jt2", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 447815, + "explicit": false, + "popularity": 14, + "acousticness": 0.00062, + "danceability": 0.607, + "energy": 0.746, + "instrumentalness": 0.879, + "key": 2, + "liveness": 0.092, + "loudness": -9.885, + "mode": 0, + "speechiness": 0.0361, + "tempo": 130.002, + "time_signature": 4, + "valence": 0.648 + }, + { + "track_name": "Episode One", + "track_id": "5uqsfLNA1jlF8rtQHY7c2s", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 59238, + "explicit": false, + "popularity": 24, + "acousticness": 0.888, + "danceability": 0.265, + "energy": 0.57, + "instrumentalness": 0.925, + "key": 8, + "liveness": 0.358, + "loudness": -13.968, + "mode": 1, + "speechiness": 0.0513, + "tempo": 121.255, + "time_signature": 4, + "valence": 0.0866 + }, + { + "track_name": "Medium Cool", + "track_id": "5FD4xUsukyAqVe1GCf2POU", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 233828, + "explicit": false, + "popularity": 30, + "acousticness": 0.0115, + "danceability": 0.786, + "energy": 0.55, + "instrumentalness": 0.874, + "key": 1, + "liveness": 0.114, + "loudness": -10.561, + "mode": 1, + "speechiness": 0.0441, + "tempo": 116.031, + "time_signature": 4, + "valence": 0.0378 + }, + { + "track_name": "Alicia", + "track_id": "3VMxdZIJ3JoVpCNVe456lD", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 383662, + "explicit": false, + "popularity": 19, + "acousticness": 0.0336, + "danceability": 0.647, + "energy": 0.663, + "instrumentalness": 0.918, + "key": 10, + "liveness": 0.111, + "loudness": -10.83, + "mode": 0, + "speechiness": 0.0326, + "tempo": 115.013, + "time_signature": 4, + "valence": 0.63 + }, + { + "track_name": "The Fens", + "track_id": "0blcyWD6B2Ium1JEsWJVHl", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 323535, + "explicit": false, + "popularity": 17, + "acousticness": 0.0373, + "danceability": 0.767, + "energy": 0.553, + "instrumentalness": 0.855, + "key": 0, + "liveness": 0.102, + "loudness": -13.402, + "mode": 1, + "speechiness": 0.0685, + "tempo": 117.998, + "time_signature": 4, + "valence": 0.138 + }, + { + "track_name": "Episode Two", + "track_id": "1HcH4ynKvJy2QnH1wWMhLQ", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 122328, + "explicit": false, + "popularity": 11, + "acousticness": 0.932, + "danceability": 0.463, + "energy": 0.196, + "instrumentalness": 0.0357, + "key": 5, + "liveness": 0.144, + "loudness": -16.074, + "mode": 0, + "speechiness": 0.148, + "tempo": 78.67, + "time_signature": 4, + "valence": 0.425 + }, + { + "track_name": "Leaning In", + "track_id": "0CyKlXjjSVckg1T5RHqx4H", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 341147, + "explicit": false, + "popularity": 28, + "acousticness": 4.07e-05, + "danceability": 0.656, + "energy": 0.646, + "instrumentalness": 0.724, + "key": 9, + "liveness": 0.0761, + "loudness": -10.89, + "mode": 0, + "speechiness": 0.0315, + "tempo": 121.994, + "time_signature": 4, + "valence": 0.175 + }, + { + "track_name": "Finale", + "track_id": "4DvyveQ9Fr1imfbkYstvku", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0i7uCXTDefj9D30hF5MHZU" + ], + "duration_ms": 186000, + "explicit": false, + "popularity": 13, + "acousticness": 0.856, + "danceability": 0.299, + "energy": 0.3, + "instrumentalness": 0.92, + "key": 9, + "liveness": 0.173, + "loudness": -13.658, + "mode": 0, + "speechiness": 0.0307, + "tempo": 96.658, + "time_signature": 4, + "valence": 0.156 + }, + { + "track_name": "To Live and Lie in LA", + "track_id": "04BFbnssIcyBMU8yGSicqL", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4gJGLHD6lK1vJE89Y7Tidf" + ], + "duration_ms": 423722, + "explicit": false, + "popularity": 33, + "acousticness": 0.000919, + "danceability": 0.754, + "energy": 0.73, + "instrumentalness": 0.592, + "key": 11, + "liveness": 0.862, + "loudness": -8.259, + "mode": 0, + "speechiness": 0.0656, + "tempo": 117.006, + "time_signature": 4, + "valence": 0.605 + }, + { + "track_name": "Smoke Machine", + "track_id": "6FJTkdQBwpcAm9PR7xszQS", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4gJGLHD6lK1vJE89Y7Tidf" + ], + "duration_ms": 360932, + "explicit": false, + "popularity": 18, + "acousticness": 0.00232, + "danceability": 0.676, + "energy": 0.892, + "instrumentalness": 0.844, + "key": 3, + "liveness": 0.114, + "loudness": -9.161, + "mode": 0, + "speechiness": 0.0363, + "tempo": 129.05, + "time_signature": 4, + "valence": 0.53 + }, + { + "track_name": "Happiness is for Beautiful People", + "track_id": "2yQaozz77Gp8pgGTNhiTEK", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4gJGLHD6lK1vJE89Y7Tidf" + ], + "duration_ms": 261818, + "explicit": false, + "popularity": 18, + "acousticness": 0.00449, + "danceability": 0.653, + "energy": 0.428, + "instrumentalness": 0.378, + "key": 9, + "liveness": 0.12, + "loudness": -7.85, + "mode": 1, + "speechiness": 0.36, + "tempo": 121.009, + "time_signature": 4, + "valence": 0.0672 + }, + { + "track_name": "A Song for Fred", + "track_id": "6eA6vTiUmaBJORow4nPfmN", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "4gJGLHD6lK1vJE89Y7Tidf" + ], + "duration_ms": 337914, + "explicit": false, + "popularity": 18, + "acousticness": 0.0932, + "danceability": 0.665, + "energy": 0.677, + "instrumentalness": 0.95, + "key": 5, + "liveness": 0.113, + "loudness": -9.282, + "mode": 0, + "speechiness": 0.0648, + "tempo": 122.998, + "time_signature": 4, + "valence": 0.36 + }, + { + "track_name": "Broker Fee", + "track_id": "4cTn3bowCXPNxkMBoWWu4e", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "55aHmQQ6fvu9fFVvE6vbV0" + ], + "duration_ms": 117677, + "explicit": false, + "popularity": 33, + "acousticness": 0.357, + "danceability": 0.7, + "energy": 0.857, + "instrumentalness": 0.0401, + "key": 5, + "liveness": 0.38, + "loudness": -8.252, + "mode": 0, + "speechiness": 0.0596, + "tempo": 155.029, + "time_signature": 4, + "valence": 0.554 + }, + { + "track_name": "Attachment", + "track_id": "5FLnlXbUybCWpCTCxHEH0Y", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "55aHmQQ6fvu9fFVvE6vbV0" + ], + "duration_ms": 128000, + "explicit": false, + "popularity": 20, + "acousticness": 0.000178, + "danceability": 0.691, + "energy": 0.892, + "instrumentalness": 0.823, + "key": 1, + "liveness": 0.327, + "loudness": -8.993, + "mode": 0, + "speechiness": 0.0456, + "tempo": 150.01, + "time_signature": 4, + "valence": 0.664 + }, + { + "track_name": "Bleach", + "track_id": "3kq2P6FrOI7Xe48T4pPcts", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "55aHmQQ6fvu9fFVvE6vbV0" + ], + "duration_ms": 121690, + "explicit": false, + "popularity": 26, + "acousticness": 0.00144, + "danceability": 0.631, + "energy": 0.852, + "instrumentalness": 0.874, + "key": 1, + "liveness": 0.464, + "loudness": -9.001, + "mode": 1, + "speechiness": 0.0403, + "tempo": 142.015, + "time_signature": 4, + "valence": 0.877 + }, + { + "track_name": "Never Work", + "track_id": "1QKqlFp3L3RI40a3Tq4anC", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "55aHmQQ6fvu9fFVvE6vbV0" + ], + "duration_ms": 129229, + "explicit": false, + "popularity": 19, + "acousticness": 0.00538, + "danceability": 0.575, + "energy": 0.955, + "instrumentalness": 0.468, + "key": 5, + "liveness": 0.399, + "loudness": -9.417, + "mode": 0, + "speechiness": 0.101, + "tempo": 142.959, + "time_signature": 4, + "valence": 0.304 + }, + { + "track_name": "Come Alone", + "track_id": "3qApu7boy4hcwhkSAqhuok", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "63C9RxopoJAnguV9P2CQ4J" + ], + "duration_ms": 262545, + "explicit": false, + "popularity": 15, + "acousticness": 0.00199, + "danceability": 0.786, + "energy": 0.529, + "instrumentalness": 0.835, + "key": 7, + "liveness": 0.0517, + "loudness": -11.283, + "mode": 1, + "speechiness": 0.0819, + "tempo": 118.05, + "time_signature": 4, + "valence": 0.764 + }, + { + "track_name": "Grift", + "track_id": "3A1pY0zdVbOCX4jvoRV1xj", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "7fN83h2Lyn5FpyU4eVcAiq" + ], + "duration_ms": 283285, + "explicit": false, + "popularity": 16, + "acousticness": 0.018, + "danceability": 0.809, + "energy": 0.325, + "instrumentalness": 0.882, + "key": 8, + "liveness": 0.212, + "loudness": -14.666, + "mode": 0, + "speechiness": 0.0708, + "tempo": 122.006, + "time_signature": 4, + "valence": 0.621 + }, + { + "track_name": "Alicia - Single Version", + "track_id": "7pojHOx74bYR8ZaokFmmMP", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0XlVbAVRohgSTOtoQcCkWp" + ], + "duration_ms": 568652, + "explicit": false, + "popularity": 29, + "acousticness": 0.0718, + "danceability": 0.672, + "energy": 0.515, + "instrumentalness": 0.879, + "key": 10, + "liveness": 0.1, + "loudness": -13.788, + "mode": 0, + "speechiness": 0.0338, + "tempo": 115.017, + "time_signature": 4, + "valence": 0.496 + }, + { + "track_name": "Alicia - Juan Maclean Remix", + "track_id": "4zgtlmGwob4ZGmbOaN7UxQ", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0XlVbAVRohgSTOtoQcCkWp" + ], + "duration_ms": 476720, + "explicit": false, + "popularity": 9, + "acousticness": 0.0342, + "danceability": 0.641, + "energy": 0.881, + "instrumentalness": 0.854, + "key": 8, + "liveness": 0.0943, + "loudness": -9.047, + "mode": 0, + "speechiness": 0.0432, + "tempo": 115.0, + "time_signature": 4, + "valence": 0.558 + }, + { + "track_name": "Alicia - Sage Caswell Rezone", + "track_id": "2QfTpItQqBpS5qQokGCcWm", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0XlVbAVRohgSTOtoQcCkWp" + ], + "duration_ms": 440355, + "explicit": false, + "popularity": 4, + "acousticness": 1.52e-05, + "danceability": 0.652, + "energy": 0.918, + "instrumentalness": 0.889, + "key": 8, + "liveness": 0.086, + "loudness": -9.336, + "mode": 1, + "speechiness": 0.0536, + "tempo": 127.006, + "time_signature": 4, + "valence": 0.266 + }, + { + "track_name": "Alicia - David Scott Stone Remix", + "track_id": "734eyjIJmRM2aPuneC01WI", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "0XlVbAVRohgSTOtoQcCkWp" + ], + "duration_ms": 370972, + "explicit": false, + "popularity": 9, + "acousticness": 0.000172, + "danceability": 0.704, + "energy": 0.833, + "instrumentalness": 0.652, + "key": 6, + "liveness": 0.0428, + "loudness": -10.286, + "mode": 1, + "speechiness": 0.0554, + "tempo": 111.993, + "time_signature": 4, + "valence": 0.433 + }, + { + "track_name": "Timestamp", + "track_id": "7flQcQqGZr5kg1zbdUfral", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT", + "0Z9Lb8rWpJxC275AwXwID8" + ], + "albums": [ + "11Jpi2nwR0Aye6pNNo8Pn3" + ], + "duration_ms": 303405, + "explicit": false, + "popularity": 26, + "acousticness": 0.221, + "danceability": 0.49, + "energy": 0.422, + "instrumentalness": 0.797, + "key": 6, + "liveness": 0.11, + "loudness": -10.384, + "mode": 1, + "speechiness": 0.0969, + "tempo": 179.437, + "time_signature": 4, + "valence": 0.145 + }, + { + "track_name": "Chlorophyll", + "track_id": "3CUZjZSKubYC3TRI2irseV", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1txgs3qVIoiqBXs6FNM5WQ" + ], + "duration_ms": 309818, + "explicit": false, + "popularity": 16, + "acousticness": 0.292, + "danceability": 0.5, + "energy": 0.725, + "instrumentalness": 0.652, + "key": 7, + "liveness": 0.172, + "loudness": -7.822, + "mode": 1, + "speechiness": 0.0401, + "tempo": 109.788, + "time_signature": 4, + "valence": 0.0556 + }, + { + "track_name": "Rubber", + "track_id": "1N7255yRNHW4mJBL2SWAl2", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "31KKb6U2cRjDPa3lc3A0x3" + ], + "duration_ms": 316800, + "explicit": false, + "popularity": 14, + "acousticness": 0.41, + "danceability": 0.549, + "energy": 0.272, + "instrumentalness": 0.838, + "key": 0, + "liveness": 0.326, + "loudness": -20.337, + "mode": 1, + "speechiness": 0.0556, + "tempo": 99.975, + "time_signature": 4, + "valence": 0.148 + }, + { + "track_name": "Quixotic", + "track_id": "1pS4GeY3cyRGb9Sy8qU1Sq", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "3DiM1jUknWggjf70F5nZJr" + ], + "duration_ms": 345762, + "explicit": false, + "popularity": 46, + "acousticness": 0.0454, + "danceability": 0.709, + "energy": 0.45, + "instrumentalness": 0.882, + "key": 5, + "liveness": 0.0977, + "loudness": -14.079, + "mode": 1, + "speechiness": 0.052, + "tempo": 118.012, + "time_signature": 4, + "valence": 0.34 + }, + { + "track_name": "Follow Me", + "track_id": "12kiQQbQsEzInkeLB0k7Bq", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "5fOTbqMq64St0yuxPd450v" + ], + "duration_ms": 253636, + "explicit": false, + "popularity": 21, + "acousticness": 0.249, + "danceability": 0.9, + "energy": 0.333, + "instrumentalness": 0.939, + "key": 1, + "liveness": 0.118, + "loudness": -18.656, + "mode": 1, + "speechiness": 0.101, + "tempo": 110.004, + "time_signature": 4, + "valence": 0.0758 + }, + { + "track_name": "Certainty", + "track_id": "3ix0biXMmeUyZ7tAC5B8D8", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "5fOTbqMq64St0yuxPd450v" + ], + "duration_ms": 250909, + "explicit": false, + "popularity": 23, + "acousticness": 0.0652, + "danceability": 0.792, + "energy": 0.295, + "instrumentalness": 0.61, + "key": 0, + "liveness": 0.0853, + "loudness": -10.922, + "mode": 1, + "speechiness": 0.141, + "tempo": 110.0, + "time_signature": 4, + "valence": 0.0719 + }, + { + "track_name": "Case Logic", + "track_id": "0AeSOMLf70onbvJv2Pzvd0", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "5fOTbqMq64St0yuxPd450v" + ], + "duration_ms": 331124, + "explicit": false, + "popularity": 20, + "acousticness": 0.198, + "danceability": 0.725, + "energy": 0.5, + "instrumentalness": 0.81, + "key": 1, + "liveness": 0.231, + "loudness": -8.602, + "mode": 1, + "speechiness": 0.146, + "tempo": 120.022, + "time_signature": 3, + "valence": 0.2 + }, + { + "track_name": "Dust", + "track_id": "2BZYVqGyL1L1adBbq2ClVv", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1kvyU0WQNcenwnLRBwyWhB" + ], + "duration_ms": 302400, + "explicit": false, + "popularity": 56, + "acousticness": 0.0105, + "danceability": 0.418, + "energy": 0.659, + "instrumentalness": 0.878, + "key": 2, + "liveness": 0.0727, + "loudness": -7.958, + "mode": 0, + "speechiness": 0.0449, + "tempo": 100.007, + "time_signature": 4, + "valence": 0.241 + }, + { + "track_name": "Plus Four", + "track_id": "7ALUDRo47KnrNNAqnlDMMq", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1kvyU0WQNcenwnLRBwyWhB" + ], + "duration_ms": 477966, + "explicit": false, + "popularity": 32, + "acousticness": 0.0156, + "danceability": 0.649, + "energy": 0.725, + "instrumentalness": 0.887, + "key": 7, + "liveness": 0.0852, + "loudness": -11.884, + "mode": 0, + "speechiness": 0.0367, + "tempo": 117.993, + "time_signature": 4, + "valence": 0.036 + }, + { + "track_name": "Warehouse (feat. Glass Teeth)", + "track_id": "1vCo1Jnv2aods1l2P95VRT", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT", + "4cyi9yfsGcOM7IXkuHYRHn" + ], + "albums": [ + "1kvyU0WQNcenwnLRBwyWhB" + ], + "duration_ms": 224878, + "explicit": false, + "popularity": 33, + "acousticness": 0.0314, + "danceability": 0.571, + "energy": 0.887, + "instrumentalness": 0.872, + "key": 5, + "liveness": 0.0773, + "loudness": -8.877, + "mode": 0, + "speechiness": 0.0368, + "tempo": 123.005, + "time_signature": 4, + "valence": 0.269 + }, + { + "track_name": "Delay", + "track_id": "7g2mskmb0okRLDtx0vtobh", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1kvyU0WQNcenwnLRBwyWhB" + ], + "duration_ms": 496462, + "explicit": false, + "popularity": 39, + "acousticness": 0.341, + "danceability": 0.796, + "energy": 0.674, + "instrumentalness": 0.939, + "key": 7, + "liveness": 0.0891, + "loudness": -13.025, + "mode": 1, + "speechiness": 0.039, + "tempo": 127.993, + "time_signature": 4, + "valence": 0.353 + }, + { + "track_name": "Paris", + "track_id": "5uDzCEn4Tzv9qKWiYNyTaQ", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1e0tqn3caRoNqZU6YosOLa" + ], + "duration_ms": 271200, + "explicit": false, + "popularity": 52, + "acousticness": 0.105, + "danceability": 0.65, + "energy": 0.666, + "instrumentalness": 0.945, + "key": 2, + "liveness": 0.096, + "loudness": -14.067, + "mode": 1, + "speechiness": 0.0463, + "tempo": 99.992, + "time_signature": 4, + "valence": 0.161 + }, + { + "track_name": "Crystals", + "track_id": "3KwzRfEeKhK5ADT9iPFHe2", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1e0tqn3caRoNqZU6YosOLa" + ], + "duration_ms": 289714, + "explicit": false, + "popularity": 53, + "acousticness": 0.366, + "danceability": 0.779, + "energy": 0.465, + "instrumentalness": 0.858, + "key": 9, + "liveness": 0.107, + "loudness": -16.555, + "mode": 0, + "speechiness": 0.191, + "tempo": 104.998, + "time_signature": 4, + "valence": 0.0373 + }, + { + "track_name": "Hydrogen", + "track_id": "6vc7GNW3FxMkgKuProVOoB", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1e0tqn3caRoNqZU6YosOLa" + ], + "duration_ms": 289523, + "explicit": false, + "popularity": 56, + "acousticness": 0.00514, + "danceability": 0.797, + "energy": 0.947, + "instrumentalness": 0.742, + "key": 10, + "liveness": 0.0695, + "loudness": -7.942, + "mode": 0, + "speechiness": 0.0524, + "tempo": 125.936, + "time_signature": 4, + "valence": 0.0447 + }, + { + "track_name": "Release", + "track_id": "7IwoJJ2bmzQULYOE89POMU", + "artists": [ + "0M2HHtY3OOQzIZxrHkbJLT" + ], + "albums": [ + "1e0tqn3caRoNqZU6YosOLa" + ], + "duration_ms": 362222, + "explicit": false, + "popularity": 44, + "acousticness": 7.89e-05, + "danceability": 0.717, + "energy": 0.457, + "instrumentalness": 0.809, + "key": 10, + "liveness": 0.117, + "loudness": -18.495, + "mode": 0, + "speechiness": 0.0608, + "tempo": 108.006, + "time_signature": 4, + "valence": 0.0735 + } ] } \ 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 fde0dab..0baf364 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": 9713156, + "followers": 9715449, "genres": [ "electro", "filter house", @@ -43,7 +43,7 @@ "release_date": "2013-05-14", "genres": [], "label": "Columbia", - "popularity": 23 + "popularity": 24 }, { "album_name": "TRON: Legacy Reconfigured", @@ -79,7 +79,7 @@ "release_date": "2007-11-19", "genres": [], "label": "Daft Life Ltd./ADA France", - "popularity": 58 + "popularity": 59 }, { "album_name": "Human After All (Remixes)", @@ -142,7 +142,7 @@ "release_date": "1997-01-17", "genres": [], "label": "Daft Life Ltd./ADA France", - "popularity": 66 + "popularity": 67 }, { "album_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", @@ -277,7 +277,7 @@ "release_date": "2001-03-28", "genres": [], "label": "Daft Life Ltd./ADA France", - "popularity": 23 + "popularity": 24 }, { "album_name": "One More Time", @@ -295,7 +295,7 @@ "release_date": "1998-02-16", "genres": [], "label": "Daft Life Ltd./ADA France", - "popularity": 20 + "popularity": 21 }, { "album_name": "Burnin'", @@ -326,7277 +326,7207 @@ } ], "tracks": [ - [ - { - "track_name": "Give Life Back to Music (Drumless Edition)", - "track_id": "3HmKTOTV4sxvQocdkDdb0u", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 275520, - "explicit": false, - "popularity": 54, - "acousticness": 0.124, - "danceability": 0.549, - "energy": 0.481, - "instrumentalness": 0.42, - "key": 9, - "liveness": 0.135, - "loudness": -11.245, - "mode": 0, - "speechiness": 0.0595, - "tempo": 118.954, - "time_signature": 4, - "valence": 0.802 - }, - { - "track_name": "The Game of Love (Drumless Edition)", - "track_id": "5ji1dPNLh6c9mvK7XoNOjM", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 322306, - "explicit": false, - "popularity": 51, - "acousticness": 0.932, - "danceability": 0.575, - "energy": 0.396, - "instrumentalness": 0.194, - "key": 9, - "liveness": 0.107, - "loudness": -14.872, - "mode": 0, - "speechiness": 0.0548, - "tempo": 179.903, - "time_signature": 4, - "valence": 0.378 - }, - { - "track_name": "Giorgio by Moroder (Drumless Edition)", - "track_id": "30rdWWtFS20ROidDcitfHf", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 545520, - "explicit": false, - "popularity": 51, - "acousticness": 0.272, - "danceability": 0.589, - "energy": 0.538, - "instrumentalness": 0.623, - "key": 9, - "liveness": 0.384, - "loudness": -13.064, - "mode": 0, - "speechiness": 0.0519, - "tempo": 113.075, - "time_signature": 4, - "valence": 0.552 - }, - { - "track_name": "Within (Drumless Edition)", - "track_id": "28ghWbRd3ZlaeYdKklfQDJ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 228493, - "explicit": false, - "popularity": 52, - "acousticness": 0.947, - "danceability": 0.592, - "energy": 0.196, - "instrumentalness": 0.488, - "key": 10, - "liveness": 0.118, - "loudness": -16.833, - "mode": 0, - "speechiness": 0.0355, - "tempo": 110.11, - "time_signature": 4, - "valence": 0.049 - }, - { - "track_name": "Instant Crush (Drumless Edition) (feat. Julian Casablancas)", - "track_id": "2jmKcUO1mjqU4uypiDvpny", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1rAv1GhTQ2rmG94p9lU3rB" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 337400, - "explicit": false, - "popularity": 54, - "acousticness": 0.498, - "danceability": 0.487, - "energy": 0.505, - "instrumentalness": 0.779, - "key": 10, - "liveness": 0.0865, - "loudness": -10.184, - "mode": 0, - "speechiness": 0.0305, - "tempo": 137.191, - "time_signature": 5, - "valence": 0.202 - }, - { - "track_name": "Lose Yourself to Dance (Drumless Edition) (feat. Pharrell Williams)", - "track_id": "0kad6OnJfgIEplpjja5jfl", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 354400, - "explicit": false, - "popularity": 53, - "acousticness": 0.385, - "danceability": 0.671, - "energy": 0.725, - "instrumentalness": 0.000845, - "key": 10, - "liveness": 0.0784, - "loudness": -7.587, - "mode": 0, - "speechiness": 0.0621, - "tempo": 199.844, - "time_signature": 4, - "valence": 0.912 - }, - { - "track_name": "Touch (Drumless Edition) (feat. Paul Williams)", - "track_id": "64xYUSFAQhkXL9bWZfvgDV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3f626JSVauIhTQgatsFcs4" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 499813, - "explicit": false, - "popularity": 49, - "acousticness": 0.717, - "danceability": 0.208, - "energy": 0.338, - "instrumentalness": 0.159, - "key": 6, - "liveness": 0.0811, - "loudness": -13.77, - "mode": 0, - "speechiness": 0.0571, - "tempo": 69.515, - "time_signature": 3, - "valence": 0.159 - }, - { - "track_name": "Get Lucky (Drumless Edition) (feat. Pharrell Williams and Nile Rodgers)", - "track_id": "2jyjdujFPnzqtCr3229yls", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 369746, - "explicit": false, - "popularity": 52, - "acousticness": 0.358, - "danceability": 0.854, - "energy": 0.578, - "instrumentalness": 0, - "key": 6, - "liveness": 0.0861, - "loudness": -10.602, - "mode": 0, - "speechiness": 0.0452, - "tempo": 116.052, - "time_signature": 4, - "valence": 0.845 - }, - { - "track_name": "Beyond (Drumless Edition)", - "track_id": "4MeKGdl7CImLdWxvjB9lTa", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 290333, - "explicit": false, - "popularity": 58, - "acousticness": 0.861, - "danceability": 0.432, - "energy": 0.442, - "instrumentalness": 0.757, - "key": 8, - "liveness": 0.383, - "loudness": -12.891, - "mode": 0, - "speechiness": 0.0351, - "tempo": 103.998, - "time_signature": 4, - "valence": 0.716 - }, - { - "track_name": "Motherboard (Drumless Edition)", - "track_id": "444SlMZ9mcxTHiB7J1H6IF", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 341853, - "explicit": false, - "popularity": 53, - "acousticness": 0.906, - "danceability": 0.511, - "energy": 0.453, - "instrumentalness": 0.894, - "key": 4, - "liveness": 0.663, - "loudness": -17.414, - "mode": 0, - "speechiness": 0.0371, - "tempo": 102.902, - "time_signature": 4, - "valence": 0.13 - }, - { - "track_name": "Fragments of Time (Drumless Edition) (feat. Todd Edwards)", - "track_id": "6XRP3yOrS9tgLVwIOL5Oit", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 279920, - "explicit": false, - "popularity": 47, - "acousticness": 0.719, - "danceability": 0.864, - "energy": 0.347, - "instrumentalness": 0.00281, - "key": 0, - "liveness": 0.0864, - "loudness": -11.208, - "mode": 1, - "speechiness": 0.037, - "tempo": 129.984, - "time_signature": 4, - "valence": 0.733 - }, - { - "track_name": "Doin' it Right (Drumless Edition) (feat. Panda Bear)", - "track_id": "4wUZgNANjM4GqDJSOJkytV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1R84VlXnFFULOsWWV8IrCQ" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 251426, - "explicit": false, - "popularity": 48, - "acousticness": 0.925, - "danceability": 0.875, - "energy": 0.313, - "instrumentalness": 0, - "key": 6, - "liveness": 0.554, - "loudness": -8.919, - "mode": 1, - "speechiness": 0.0979, - "tempo": 89.019, - "time_signature": 4, - "valence": 0.361 - }, - { - "track_name": "Contact (Drumless Edition)", - "track_id": "3RCYGIVLV33JCNwzMVyWMI", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5AFf68gtvNgGLZarsyEEL8" - ], - "duration_ms": 383506, - "explicit": false, - "popularity": 46, - "acousticness": 0.176, - "danceability": 0.301, - "energy": 0.691, - "instrumentalness": 0.896, - "key": 11, - "liveness": 0.0741, - "loudness": -9.232, - "mode": 0, - "speechiness": 0.0464, - "tempo": 124.159, - "time_signature": 4, - "valence": 0.132 - } - ], - [ - { - "track_name": "Give Life Back to Music", - "track_id": "5aPrFctv3WJZyJ99Ld7leT", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 275386, - "explicit": false, - "popularity": 49, - "acousticness": 0.00292, - "danceability": 0.788, - "energy": 0.616, - "instrumentalness": 0.548, - "key": 9, - "liveness": 0.0952, - "loudness": -10.671, - "mode": 0, - "speechiness": 0.0337, - "tempo": 119.038, - "time_signature": 4, - "valence": 0.696 - }, - { - "track_name": "The Game of Love", - "track_id": "3wOQ7foaNccbOM5kbtqwkx", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 322146, - "explicit": false, - "popularity": 47, - "acousticness": 0.825, - "danceability": 0.712, - "energy": 0.5, - "instrumentalness": 0.315, - "key": 9, - "liveness": 0.106, - "loudness": -11.948, - "mode": 0, - "speechiness": 0.0338, - "tempo": 90.038, - "time_signature": 4, - "valence": 0.68 - }, - { - "track_name": "Giorgio by Moroder", - "track_id": "2eXJRM1lQJ591AStNA26Yx", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 544626, - "explicit": false, - "popularity": 48, - "acousticness": 0.0689, - "danceability": 0.735, - "energy": 0.682, - "instrumentalness": 0.531, - "key": 9, - "liveness": 0.381, - "loudness": -10.42, - "mode": 0, - "speechiness": 0.0502, - "tempo": 113.203, - "time_signature": 4, - "valence": 0.408 - }, - { - "track_name": "Within", - "track_id": "3LWZv4XgPP958j9a3gTYuq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 228506, - "explicit": false, - "popularity": 47, - "acousticness": 0.895, - "danceability": 0.702, - "energy": 0.298, - "instrumentalness": 0.473, - "key": 10, - "liveness": 0.103, - "loudness": -14.12, - "mode": 0, - "speechiness": 0.0315, - "tempo": 110.116, - "time_signature": 4, - "valence": 0.0634 - }, - { - "track_name": "Instant Crush (feat. Julian Casablancas)", - "track_id": "0f8GgsD1lDtRBAS5GEDKgg", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1rAv1GhTQ2rmG94p9lU3rB" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 337560, - "explicit": false, - "popularity": 51, - "acousticness": 0.0422, - "danceability": 0.775, - "energy": 0.585, - "instrumentalness": 0.61, - "key": 10, - "liveness": 0.077, - "loudness": -9.516, - "mode": 0, - "speechiness": 0.027, - "tempo": 109.942, - "time_signature": 4, - "valence": 0.526 - }, - { - "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", - "track_id": "5VnKPeawtH2h8fmqAvBDqY", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 353893, - "explicit": false, - "popularity": 48, - "acousticness": 0.0852, - "danceability": 0.832, - "energy": 0.659, - "instrumentalness": 0.00113, - "key": 10, - "liveness": 0.0753, - "loudness": -7.828, - "mode": 0, - "speechiness": 0.0568, - "tempo": 100.163, - "time_signature": 4, - "valence": 0.675 - }, - { - "track_name": "Touch (feat. Paul Williams)", - "track_id": "3hFObHqnsUQ2PCA2UpVFu8", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3f626JSVauIhTQgatsFcs4" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 498960, - "explicit": false, - "popularity": 46, - "acousticness": 0.475, - "danceability": 0.291, - "energy": 0.412, - "instrumentalness": 0.0832, - "key": 6, - "liveness": 0.079, - "loudness": -12.659, - "mode": 0, - "speechiness": 0.0457, - "tempo": 90.526, - "time_signature": 4, - "valence": 0.119 - }, - { - "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", - "track_id": "2olIQt0rL0hOHau1SJ4xf2", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 369626, - "explicit": false, - "popularity": 49, - "acousticness": 0.0378, - "danceability": 0.81, - "energy": 0.793, - "instrumentalness": 1.77e-06, - "key": 6, - "liveness": 0.072, - "loudness": -9.404, - "mode": 0, - "speechiness": 0.0403, - "tempo": 116.05, - "time_signature": 4, - "valence": 0.863 - }, - { - "track_name": "Beyond", - "track_id": "3UB3z6fgDJw1A122BKc4sP", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 290240, - "explicit": false, - "popularity": 44, - "acousticness": 0.367, - "danceability": 0.625, - "energy": 0.648, - "instrumentalness": 0.491, - "key": 8, - "liveness": 0.368, - "loudness": -11.33, - "mode": 0, - "speechiness": 0.0343, - "tempo": 104.025, - "time_signature": 4, - "valence": 0.785 - }, - { - "track_name": "Motherboard", - "track_id": "3mEWSc9vWFXGvpgEEvxuX7", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 341653, - "explicit": false, - "popularity": 43, - "acousticness": 0.512, - "danceability": 0.548, - "energy": 0.707, - "instrumentalness": 0.926, - "key": 4, - "liveness": 0.105, - "loudness": -14.902, - "mode": 0, - "speechiness": 0.0352, - "tempo": 103.012, - "time_signature": 4, - "valence": 0.283 - }, - { - "track_name": "Fragments of Time (feat. Todd Edwards)", - "track_id": "5gYw8hl2Xp4aGLndo5cXWh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 279773, - "explicit": false, - "popularity": 45, - "acousticness": 0.0413, - "danceability": 0.807, - "energy": 0.51, - "instrumentalness": 0.115, - "key": 0, - "liveness": 0.104, - "loudness": -9.729, - "mode": 1, - "speechiness": 0.0433, - "tempo": 130.118, - "time_signature": 4, - "valence": 0.961 - }, - { - "track_name": "Doin' it Right (feat. Panda Bear)", - "track_id": "1OQP3Wil7orelGkRCFU1cQ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1R84VlXnFFULOsWWV8IrCQ" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 251293, - "explicit": false, - "popularity": 45, - "acousticness": 0.388, - "danceability": 0.804, - "energy": 0.451, - "instrumentalness": 2.08e-05, - "key": 6, - "liveness": 0.0924, - "loudness": -8.207, - "mode": 1, - "speechiness": 0.0948, - "tempo": 178.05, - "time_signature": 4, - "valence": 0.19 - }, - { - "track_name": "Contact", - "track_id": "5pHSnKStU4XLB6y03b1c1W", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 383626, - "explicit": false, - "popularity": 43, - "acousticness": 0.00271, - "danceability": 0.415, - "energy": 0.757, - "instrumentalness": 0.732, - "key": 11, - "liveness": 0.0695, - "loudness": -8.423, - "mode": 0, - "speechiness": 0.0496, - "tempo": 123.933, - "time_signature": 4, - "valence": 0.086 - }, - { - "track_name": "Horizon Ouverture", - "track_id": "1kOPoZDgQean1ecxJT0GIT", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 127693, - "explicit": false, - "popularity": 46, - "acousticness": 0.94, - "danceability": 0.146, - "energy": 0.135, - "instrumentalness": 0.845, - "key": 4, - "liveness": 0.172, - "loudness": -17.494, - "mode": 0, - "speechiness": 0.0367, - "tempo": 84.855, - "time_signature": 3, - "valence": 0.0392 - }, - { - "track_name": "Horizon (Japan CD)", - "track_id": "6iZRqJjpbOVEv4mFTpqg1d", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 262560, - "explicit": false, - "popularity": 53, - "acousticness": 0.0289, - "danceability": 0.551, - "energy": 0.274, - "instrumentalness": 0.925, - "key": 4, - "liveness": 0.112, - "loudness": -15.865, - "mode": 0, - "speechiness": 0.0282, - "tempo": 110.181, - "time_signature": 4, - "valence": 0.129 - }, - { - "track_name": "GLBTM (Studio Outtakes)", - "track_id": "6QxktTtoOGxB8vrD7LQjm5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 381666, - "explicit": false, - "popularity": 45, - "acousticness": 0.00325, - "danceability": 0.764, - "energy": 0.558, - "instrumentalness": 0.815, - "key": 9, - "liveness": 0.0677, - "loudness": -10.856, - "mode": 0, - "speechiness": 0.0342, - "tempo": 119.004, - "time_signature": 4, - "valence": 0.349 - }, - { - "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", - "track_id": "4r4fX4NZIqVIhGyDvERp0l", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1rAv1GhTQ2rmG94p9lU3rB", - "4nUBBtLtzqZGpdiynTJbYJ" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 239213, - "explicit": false, - "popularity": 63, - "acousticness": 0.11, - "danceability": 0.636, - "energy": 0.635, - "instrumentalness": 0.643, - "key": 1, - "liveness": 0.61, - "loudness": -10.532, - "mode": 1, - "speechiness": 0.0534, - "tempo": 110.031, - "time_signature": 4, - "valence": 0.192 - }, - { - "track_name": "GL (Early Take) [feat. Pharrell Williams and Nile Rodgers]", - "track_id": "4v1pwKLYGnW6RMLzdp3x4k", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 32893, - "explicit": false, - "popularity": 47, - "acousticness": 0.328, - "danceability": 0.704, - "energy": 0.664, - "instrumentalness": 0.76, - "key": 6, - "liveness": 0.075, - "loudness": -12.664, - "mode": 0, - "speechiness": 0.0605, - "tempo": 116.069, - "time_signature": 4, - "valence": 0.371 - }, - { - "track_name": "Prime (2012 Unfinished)", - "track_id": "1iAsoOFV16Ax6OFKMq8sld", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 286400, - "explicit": false, - "popularity": 49, - "acousticness": 0.273, - "danceability": 0.485, - "energy": 0.75, - "instrumentalness": 0.946, - "key": 9, - "liveness": 0.672, - "loudness": -10.847, - "mode": 0, - "speechiness": 0.0348, - "tempo": 117.013, - "time_signature": 4, - "valence": 0.431 - }, - { - "track_name": "LYTD (Vocoder Tests) [feat. Pharrell Williams]", - "track_id": "3PgYTZHsdWp4C21bQ8zxvM", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 128440, - "explicit": false, - "popularity": 48, - "acousticness": 0.218, - "danceability": 0.827, - "energy": 0.473, - "instrumentalness": 0.000121, - "key": 10, - "liveness": 0.106, - "loudness": -9.411, - "mode": 0, - "speechiness": 0.0541, - "tempo": 100.017, - "time_signature": 4, - "valence": 0.719 - }, - { - "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", - "track_id": "6JiQWzHFGbnW9aY3yUHO4b", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 497146, - "explicit": false, - "popularity": 40, - "acousticness": 0.0227, - "danceability": 0.916, - "energy": 0.406, - "instrumentalness": 2.93e-05, - "key": 0, - "liveness": 0.33, - "loudness": -12.322, - "mode": 1, - "speechiness": 0.227, - "tempo": 130.026, - "time_signature": 4, - "valence": 0.611 - }, - { - "track_name": "Touch (2021 Epilogue) [feat. Paul Williams]", - "track_id": "7oMbGRDGVDIb6ZeVcq7LfW", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3f626JSVauIhTQgatsFcs4" - ], - "albums": [ - "4mAhdh996uW5SnnFKXUmC0" - ], - "duration_ms": 179986, - "explicit": false, - "popularity": 45, - "acousticness": 0.0586, - "danceability": 0.341, - "energy": 0.362, - "instrumentalness": 0.854, - "key": 6, - "liveness": 0.273, - "loudness": -13.173, - "mode": 0, - "speechiness": 0.0296, - "tempo": 90.229, - "time_signature": 4, - "valence": 0.088 - } - ], - [ - { - "track_name": "Give Life Back to Music", - "track_id": "0dEIca2nhcxDUV8C5QkPYb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 275386, - "explicit": false, - "popularity": 64, - "acousticness": 0.00286, - "danceability": 0.788, - "energy": 0.616, - "instrumentalness": 0.549, - "key": 9, - "liveness": 0.0952, - "loudness": -10.671, - "mode": 0, - "speechiness": 0.0337, - "tempo": 119.037, - "time_signature": 4, - "valence": 0.696 - }, - { - "track_name": "The Game of Love", - "track_id": "3ctALmweZBapfBdFiIVpji", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 322146, - "explicit": false, - "popularity": 59, - "acousticness": 0.825, - "danceability": 0.712, - "energy": 0.5, - "instrumentalness": 0.314, - "key": 9, - "liveness": 0.106, - "loudness": -11.948, - "mode": 0, - "speechiness": 0.0338, - "tempo": 90.039, - "time_signature": 4, - "valence": 0.682 - }, - { - "track_name": "Giorgio by Moroder", - "track_id": "0oks4FnzhNp5QPTZtoet7c", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 544626, - "explicit": false, - "popularity": 65, - "acousticness": 0.0692, - "danceability": 0.74, - "energy": 0.682, - "instrumentalness": 0.53, - "key": 9, - "liveness": 0.381, - "loudness": -10.42, - "mode": 0, - "speechiness": 0.0504, - "tempo": 113.201, - "time_signature": 4, - "valence": 0.41 - }, - { - "track_name": "Within", - "track_id": "7Bxv0WL7UC6WwQpk9TzdMJ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 228506, - "explicit": false, - "popularity": 59, - "acousticness": 0.894, - "danceability": 0.702, - "energy": 0.297, - "instrumentalness": 0.485, - "key": 10, - "liveness": 0.103, - "loudness": -14.116, - "mode": 0, - "speechiness": 0.0317, - "tempo": 110.116, - "time_signature": 4, - "valence": 0.0676 - }, - { - "track_name": "Instant Crush (feat. Julian Casablancas)", - "track_id": "2cGxRwrMyEAp8dEbuZaVv6", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1rAv1GhTQ2rmG94p9lU3rB" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 337560, - "explicit": false, - "popularity": 77, - "acousticness": 0.0422, - "danceability": 0.775, - "energy": 0.585, - "instrumentalness": 0.619, - "key": 10, - "liveness": 0.077, - "loudness": -9.516, - "mode": 0, - "speechiness": 0.0271, - "tempo": 109.942, - "time_signature": 4, - "valence": 0.518 - }, - { - "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", - "track_id": "5CMjjywI0eZMixPeqNd75R", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 353893, - "explicit": false, - "popularity": 70, - "acousticness": 0.0839, - "danceability": 0.832, - "energy": 0.659, - "instrumentalness": 0.00114, - "key": 10, - "liveness": 0.0753, - "loudness": -7.828, - "mode": 0, - "speechiness": 0.057, - "tempo": 100.163, - "time_signature": 4, - "valence": 0.674 - }, - { - "track_name": "Touch (feat. Paul Williams)", - "track_id": "7oaEjLP2dTJLJsITbAxTOz", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3f626JSVauIhTQgatsFcs4" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 498960, - "explicit": false, - "popularity": 60, - "acousticness": 0.477, - "danceability": 0.29, - "energy": 0.412, - "instrumentalness": 0.0839, - "key": 6, - "liveness": 0.079, - "loudness": -12.659, - "mode": 0, - "speechiness": 0.0458, - "tempo": 90.539, - "time_signature": 4, - "valence": 0.12 - }, - { - "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", - "track_id": "69kOkLUCkxIZYexIgSG8rq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 369626, - "explicit": false, - "popularity": 75, - "acousticness": 0.0378, - "danceability": 0.81, - "energy": 0.793, - "instrumentalness": 1.77e-06, - "key": 6, - "liveness": 0.072, - "loudness": -9.404, - "mode": 0, - "speechiness": 0.0403, - "tempo": 116.05, - "time_signature": 4, - "valence": 0.863 - }, - { - "track_name": "Beyond", - "track_id": "0k1xMUwn9sb7bZiqdT9ygx", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 290240, - "explicit": false, - "popularity": 57, - "acousticness": 0.367, - "danceability": 0.716, - "energy": 0.648, - "instrumentalness": 0.485, - "key": 8, - "liveness": 0.368, - "loudness": -11.33, - "mode": 0, - "speechiness": 0.0337, - "tempo": 104.022, - "time_signature": 4, - "valence": 0.789 - }, - { - "track_name": "Motherboard", - "track_id": "79koEJRtKOOGJ0VSAF3FMk", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 341653, - "explicit": false, - "popularity": 55, - "acousticness": 0.512, - "danceability": 0.548, - "energy": 0.707, - "instrumentalness": 0.922, - "key": 4, - "liveness": 0.105, - "loudness": -14.902, - "mode": 0, - "speechiness": 0.0352, - "tempo": 103.009, - "time_signature": 4, - "valence": 0.284 - }, - { - "track_name": "Fragments of Time (feat. Todd Edwards)", - "track_id": "0IedgQjjJ8Ad4B3UDQ5Lyn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 279773, - "explicit": false, - "popularity": 62, - "acousticness": 0.041, - "danceability": 0.807, - "energy": 0.51, - "instrumentalness": 0.115, - "key": 0, - "liveness": 0.104, - "loudness": -9.729, - "mode": 1, - "speechiness": 0.0433, - "tempo": 130.118, - "time_signature": 4, - "valence": 0.961 - }, - { - "track_name": "Doin' it Right (feat. Panda Bear)", - "track_id": "36c4JohayB9qd64eidQMBi", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1R84VlXnFFULOsWWV8IrCQ" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 251293, - "explicit": false, - "popularity": 63, - "acousticness": 0.388, - "danceability": 0.804, - "energy": 0.451, - "instrumentalness": 2.17e-05, - "key": 6, - "liveness": 0.0924, - "loudness": -8.207, - "mode": 1, - "speechiness": 0.0949, - "tempo": 178.061, - "time_signature": 4, - "valence": 0.19 - }, - { - "track_name": "Contact", - "track_id": "2KHRENHQzTIQ001nlP9Gdc", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4m2880jivSbbyEGAKfITCa" - ], - "duration_ms": 383626, - "explicit": false, - "popularity": 55, - "acousticness": 0.00282, - "danceability": 0.4, - "energy": 0.756, - "instrumentalness": 0.753, - "key": 11, - "liveness": 0.0695, - "loudness": -8.423, - "mode": 0, - "speechiness": 0.0492, - "tempo": 123.828, - "time_signature": 4, - "valence": 0.0924 - } - ], - [ - { - "track_name": "Episode 1, Giorgio Moroder", - "track_id": "4l2bO887Yauqos4LwkCwBm", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 473506, - "explicit": false, - "popularity": 25, - "acousticness": 0.506, - "danceability": 0.717, - "energy": 0.382, - "instrumentalness": 0, - "key": 9, - "liveness": 0.242, - "loudness": -13.752, - "mode": 1, - "speechiness": 0.64, - "tempo": 116.632, - "time_signature": 4, - "valence": 0.622 - }, - { - "track_name": "Episode 2, Todd Edwards", - "track_id": "3K6HXNtxo1A2eCthCzrwaS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 458493, - "explicit": false, - "popularity": 20, - "acousticness": 0.424, - "danceability": 0.723, - "energy": 0.389, - "instrumentalness": 0, - "key": 9, - "liveness": 0.183, - "loudness": -13.204, - "mode": 1, - "speechiness": 0.8, - "tempo": 118.413, - "time_signature": 3, - "valence": 0.624 - }, - { - "track_name": "Episode 3, Nile Rodgers", - "track_id": "2fJp2bDmhG62vlmUpuWjxb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 453200, - "explicit": false, - "popularity": 19, - "acousticness": 0.359, - "danceability": 0.707, - "energy": 0.515, - "instrumentalness": 0, - "key": 6, - "liveness": 0.237, - "loudness": -12.299, - "mode": 0, - "speechiness": 0.772, - "tempo": 115.171, - "time_signature": 4, - "valence": 0.654 - }, - { - "track_name": "Episode 4, Pharrell Williams", - "track_id": "5pZHN9b6KrXlUC5Dt3FA0O", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 422826, - "explicit": false, - "popularity": 20, - "acousticness": 0.297, - "danceability": 0.635, - "energy": 0.476, - "instrumentalness": 0, - "key": 6, - "liveness": 0.181, - "loudness": -13.942, - "mode": 0, - "speechiness": 0.446, - "tempo": 116.154, - "time_signature": 4, - "valence": 0.6 - }, - { - "track_name": "Episode 5, Panda Bear", - "track_id": "4I2apNr2XWqSo2UdEFwUsv", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 457813, - "explicit": false, - "popularity": 18, - "acousticness": 0.313, - "danceability": 0.679, - "energy": 0.377, - "instrumentalness": 0, - "key": 2, - "liveness": 0.163, - "loudness": -14.144, - "mode": 1, - "speechiness": 0.553, - "tempo": 116.597, - "time_signature": 4, - "valence": 0.586 - }, - { - "track_name": "Episode 6, Chilly Gonzales", - "track_id": "6TOFKxiVogOtLKEBGMIFX7", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 516466, - "explicit": false, - "popularity": 17, - "acousticness": 0.666, - "danceability": 0.573, - "energy": 0.442, - "instrumentalness": 0, - "key": 7, - "liveness": 0.23, - "loudness": -13.044, - "mode": 1, - "speechiness": 0.664, - "tempo": 80.7, - "time_signature": 3, - "valence": 0.55 - }, - { - "track_name": "Episode 7, DJ Falcon", - "track_id": "40DD7ZKO1urSddN6HhMfuh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 485933, - "explicit": false, - "popularity": 16, - "acousticness": 0.752, - "danceability": 0.689, - "energy": 0.394, - "instrumentalness": 0, - "key": 9, - "liveness": 0.259, - "loudness": -10.859, - "mode": 1, - "speechiness": 0.768, - "tempo": 112.787, - "time_signature": 4, - "valence": 0.666 - }, - { - "track_name": "Episode 8, Paul Williams", - "track_id": "4TgBZlDIwm4kagFvqnw08R", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3QbWxiYTlTCLjHYgrgMCfU" - ], - "duration_ms": 449320, - "explicit": false, - "popularity": 16, - "acousticness": 0.798, - "danceability": 0.718, - "energy": 0.388, - "instrumentalness": 0, - "key": 9, - "liveness": 0.263, - "loudness": -12.546, - "mode": 1, - "speechiness": 0.833, - "tempo": 123.655, - "time_signature": 4, - "valence": 0.661 - } - ], - [ - { - "track_name": "Derezzed - Remixed by The Glitch Mob", - "track_id": "4lteJuSjb9Jt9W1W7PIU2U", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3a9qv6NLHnsVxJUtKOMHvD" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 262240, - "explicit": false, - "popularity": 49, - "acousticness": 0.0569, - "danceability": 0.518, - "energy": 0.527, - "instrumentalness": 0.00263, - "key": 8, - "liveness": 0.107, - "loudness": -7.684, - "mode": 1, - "speechiness": 0.0687, - "tempo": 96.995, - "time_signature": 4, - "valence": 0.213 - }, - { - "track_name": "Fall - Remixed by M83 VS Big Black Delta", - "track_id": "66uVqkmHAc0MBUzoPhIypN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4CecgT3PfTiMzdO3pFCDNP", - "63MQldklfxkjYDoUE4Tppz", - "2TXpVEw5FbzDh93tLoDm0i" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 234986, - "explicit": false, - "popularity": 43, - "acousticness": 0.00141, - "danceability": 0.373, - "energy": 0.841, - "instrumentalness": 0.642, - "key": 4, - "liveness": 0.342, - "loudness": -6.475, - "mode": 0, - "speechiness": 0.0614, - "tempo": 89.926, - "time_signature": 4, - "valence": 0.164 - }, - { - "track_name": "The Grid - Remixed by The Crystal Method", - "track_id": "4OEnpg5ubhg6OQ4M2ZjtsL", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5eKLa1xyHLq8ERWmT1CRHj" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 267786, - "explicit": false, - "popularity": 41, - "acousticness": 0.0283, - "danceability": 0.634, - "energy": 0.798, - "instrumentalness": 0.546, - "key": 1, - "liveness": 0.1, - "loudness": -6.86, - "mode": 1, - "speechiness": 0.0607, - "tempo": 125.011, - "time_signature": 4, - "valence": 0.494 - }, - { - "track_name": "Adagio for TRON - Remixed by Teddybears", - "track_id": "2EyK6JBWqftJlxAuqd0Dsq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3gqv1kgivAc92KnUm4elKv" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 334346, - "explicit": false, - "popularity": 39, - "acousticness": 0.00531, - "danceability": 0.741, - "energy": 0.806, - "instrumentalness": 0.783, - "key": 1, - "liveness": 0.133, - "loudness": -6.443, - "mode": 0, - "speechiness": 0.0371, - "tempo": 126.967, - "time_signature": 4, - "valence": 0.248 - }, - { - "track_name": "The Son of Flynn - Remixed by Ki:Theory", - "track_id": "1TT6gRprLQ5vSWgoWpyKfR", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1mB4aweE1XGdjbFVFC8i5m" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 291506, - "explicit": false, - "popularity": 38, - "acousticness": 0.0175, - "danceability": 0.431, - "energy": 0.955, - "instrumentalness": 0.693, - "key": 7, - "liveness": 0.164, - "loudness": -5.601, - "mode": 0, - "speechiness": 0.0361, - "tempo": 106.011, - "time_signature": 4, - "valence": 0.282 - }, - { - "track_name": "C.L.U. - Remixed by Paul Oakenfold", - "track_id": "6hEvTmmvby9ZTkSdfmPW3m", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5MO2kbaGGA2a8kL4c9qqHq" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 275266, - "explicit": false, - "popularity": 36, - "acousticness": 0.000132, - "danceability": 0.595, - "energy": 0.605, - "instrumentalness": 0.802, - "key": 6, - "liveness": 0.181, - "loudness": -6.746, - "mode": 0, - "speechiness": 0.031, - "tempo": 130.019, - "time_signature": 4, - "valence": 0.163 - }, - { - "track_name": "The Son of Flynn - Remixed by Moby", - "track_id": "03uOJUuuTgaFFI1Efal1no", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3OsRAKCvk37zwYcnzRf5XF" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 392293, - "explicit": false, - "popularity": 40, - "acousticness": 0.543, - "danceability": 0.621, - "energy": 0.853, - "instrumentalness": 0.912, - "key": 7, - "liveness": 0.423, - "loudness": -7.504, - "mode": 0, - "speechiness": 0.0311, - "tempo": 105.997, - "time_signature": 4, - "valence": 0.2 - }, - { - "track_name": "End of Line - Remixed by Boys Noize", - "track_id": "3YYnfKM02WkygOwg6ozfrL", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "62k5LKMhymqlDNo2DWOvvv" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 340186, - "explicit": false, - "popularity": 36, - "acousticness": 0.00244, - "danceability": 0.602, - "energy": 0.879, - "instrumentalness": 0.931, - "key": 9, - "liveness": 0.108, - "loudness": -6.703, - "mode": 0, - "speechiness": 0.107, - "tempo": 122.995, - "time_signature": 4, - "valence": 0.354 - }, - { - "track_name": "Rinzler - Remixed by Kaskade", - "track_id": "2jFLd9OdNcLsblpv4fDTRn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6TQj5BFPooTa08A7pk8AQ1" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 412440, - "explicit": false, - "popularity": 35, - "acousticness": 0.000704, - "danceability": 0.597, - "energy": 0.814, - "instrumentalness": 0.889, - "key": 11, - "liveness": 0.124, - "loudness": -6.992, - "mode": 0, - "speechiness": 0.0528, - "tempo": 128.002, - "time_signature": 4, - "valence": 0.396 - }, - { - "track_name": "Encom Part 2 - Remixed by Com Truise", - "track_id": "3SL3UavpjRKNMM9UVlE9Bx", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2wouN3QXejYa5tKetYdcVX" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 292093, - "explicit": false, - "popularity": 36, - "acousticness": 0.0084, - "danceability": 0.488, - "energy": 0.934, - "instrumentalness": 0.815, - "key": 7, - "liveness": 0.153, - "loudness": -7.189, - "mode": 0, - "speechiness": 0.0535, - "tempo": 165.98, - "time_signature": 4, - "valence": 0.266 - }, - { - "track_name": "End of Line - Remixed by Photek", - "track_id": "2UBYw2qf9PkvoKQ610ocft", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3hXDMlrPegHRO0zUvBsRSI" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 318720, - "explicit": false, - "popularity": 42, - "acousticness": 0.00105, - "danceability": 0.581, - "energy": 0.806, - "instrumentalness": 0.00461, - "key": 11, - "liveness": 0.216, - "loudness": -4.555, - "mode": 0, - "speechiness": 0.0417, - "tempo": 98.006, - "time_signature": 4, - "valence": 0.528 - }, - { - "track_name": "Arena - Remixed by The Japanese Popstars", - "track_id": "7irNlzUSPNgCDtEyQuS3lm", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5F8v5xSIGtfukNxq0Jqgwh" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 367720, - "explicit": false, - "popularity": 32, - "acousticness": 8.91e-05, - "danceability": 0.517, - "energy": 0.796, - "instrumentalness": 0.877, - "key": 10, - "liveness": 0.111, - "loudness": -6.212, - "mode": 0, - "speechiness": 0.0433, - "tempo": 124.99, - "time_signature": 4, - "valence": 0.292 - }, - { - "track_name": "Derezzed - Remixed by Avicii", - "track_id": "1rn6JIHBuBZiwvA57jeoOB", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1vCWHaC5f2uS3yhpwWbIA6" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 303946, - "explicit": false, - "popularity": 41, - "acousticness": 0.124, - "danceability": 0.712, - "energy": 0.725, - "instrumentalness": 0.834, - "key": 7, - "liveness": 0.283, - "loudness": -7.317, - "mode": 0, - "speechiness": 0.104, - "tempo": 127.985, - "time_signature": 4, - "valence": 0.156 - }, - { - "track_name": "Solar Sailer - Remixed by Pretty Lights", - "track_id": "4OgB6TRmIGBRT4NoFxxIQd", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4iVhFmG8YCCEHANGeUUS9q" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 272853, - "explicit": false, - "popularity": 36, - "acousticness": 0.026, - "danceability": 0.363, - "energy": 0.733, - "instrumentalness": 0.472, - "key": 3, - "liveness": 0.247, - "loudness": -8.478, - "mode": 0, - "speechiness": 0.208, - "tempo": 95.803, - "time_signature": 5, - "valence": 0.406 - }, - { - "track_name": "TRON Legacy (End Titles) - Remixed by Sander Kleinenberg", - "track_id": "1Nv1h7ANN9E4rAjLP4OfgA", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3CfH3WZPzbk5mNDWXpGIy6" - ], - "albums": [ - "382ObEPsp2rxGrnsizN5TX" - ], - "duration_ms": 304466, - "explicit": false, - "popularity": 33, - "acousticness": 0.00288, - "danceability": 0.69, - "energy": 0.912, - "instrumentalness": 0.389, - "key": 1, - "liveness": 0.338, - "loudness": -4.101, - "mode": 1, - "speechiness": 0.0485, - "tempo": 124.018, - "time_signature": 4, - "valence": 0.601 - } - ], - [ - { - "track_name": "Overture", - "track_id": "4uXQXq2AH6mAB8gvTzNUab", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 148006, - "explicit": false, - "popularity": 49, - "acousticness": 0.856, - "danceability": 0.163, - "energy": 0.055, - "instrumentalness": 0.954, - "key": 1, - "liveness": 0.128, - "loudness": -14.79, - "mode": 1, - "speechiness": 0.04, - "tempo": 71.682, - "time_signature": 3, - "valence": 0.0364 - }, - { - "track_name": "The Grid", - "track_id": "2tRWMCijEFsGPDxBgHxHre", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 96739, - "explicit": false, - "popularity": 53, - "acousticness": 0.307, - "danceability": 0.556, - "energy": 0.53, - "instrumentalness": 0.22, - "key": 1, - "liveness": 0.333, - "loudness": -13.527, - "mode": 1, - "speechiness": 0.0387, - "tempo": 102.018, - "time_signature": 4, - "valence": 0.0645 - }, - { - "track_name": "The Son of Flynn", - "track_id": "3zL0LAsSh3dTO73dSOKWkr", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 95226, - "explicit": false, - "popularity": 56, - "acousticness": 0.896, - "danceability": 0.539, - "energy": 0.777, - "instrumentalness": 0.912, - "key": 0, - "liveness": 0.222, - "loudness": -17.645, - "mode": 0, - "speechiness": 0.0535, - "tempo": 105.989, - "time_signature": 4, - "valence": 0.022 - }, - { - "track_name": "Recognizer", - "track_id": "6dooKqgWKBVwQLLarxJPDM", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 157719, - "explicit": false, - "popularity": 52, - "acousticness": 0.484, - "danceability": 0.579, - "energy": 0.534, - "instrumentalness": 0.547, - "key": 1, - "liveness": 0.108, - "loudness": -14.585, - "mode": 1, - "speechiness": 0.0391, - "tempo": 104.011, - "time_signature": 4, - "valence": 0.0768 - }, - { - "track_name": "Armory", - "track_id": "6NbukMzsdx888nymIiWKlV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 122975, - "explicit": false, - "popularity": 48, - "acousticness": 0.677, - "danceability": 0.393, - "energy": 0.0554, - "instrumentalness": 0.927, - "key": 5, - "liveness": 0.116, - "loudness": -23.97, - "mode": 0, - "speechiness": 0.038, - "tempo": 96.013, - "time_signature": 4, - "valence": 0.0327 - }, - { - "track_name": "Arena", - "track_id": "4csD9dmdLHnarNyu1wG8Iv", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 93236, - "explicit": false, - "popularity": 51, - "acousticness": 0.0181, - "danceability": 0.168, - "energy": 0.411, - "instrumentalness": 0.972, - "key": 3, - "liveness": 0.0702, - "loudness": -13.573, - "mode": 1, - "speechiness": 0.037, - "tempo": 99.991, - "time_signature": 4, - "valence": 0.101 - }, - { - "track_name": "Rinzler", - "track_id": "70RkgofUfQHLl2FT2Mx5zq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 137635, - "explicit": false, - "popularity": 51, - "acousticness": 0.483, - "danceability": 0.498, - "energy": 0.62, - "instrumentalness": 0.813, - "key": 9, - "liveness": 0.0947, - "loudness": -14.651, - "mode": 1, - "speechiness": 0.0477, - "tempo": 90.046, - "time_signature": 4, - "valence": 0.0348 - }, - { - "track_name": "The Game Has Changed", - "track_id": "1LaCW0R8Q7oIY3tKtDgZOw", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 205474, - "explicit": false, - "popularity": 50, - "acousticness": 0.442, - "danceability": 0.542, - "energy": 0.504, - "instrumentalness": 0.733, - "key": 2, - "liveness": 0.0826, - "loudness": -14.779, - "mode": 1, - "speechiness": 0.0416, - "tempo": 99.956, - "time_signature": 4, - "valence": 0.0625 - }, - { - "track_name": "Outlands", - "track_id": "1lQZ7fJRndezv3hnEtadcI", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 162501, - "explicit": false, - "popularity": 48, - "acousticness": 0.786, - "danceability": 0.573, - "energy": 0.455, - "instrumentalness": 0.626, - "key": 0, - "liveness": 0.193, - "loudness": -16.105, - "mode": 1, - "speechiness": 0.0367, - "tempo": 113.185, - "time_signature": 4, - "valence": 0.151 - }, - { - "track_name": "Adagio For TRON", - "track_id": "6c9LokX8oCb3c3VT0Ok0ep", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 251070, - "explicit": false, - "popularity": 48, - "acousticness": 0.715, - "danceability": 0.111, - "energy": 0.114, - "instrumentalness": 0.88, - "key": 1, - "liveness": 0.128, - "loudness": -19.883, - "mode": 0, - "speechiness": 0.0456, - "tempo": 92.764, - "time_signature": 3, - "valence": 0.0371 - }, - { - "track_name": "Nocturne", - "track_id": "7toH0mW6Noyt5B0nczGqj5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 101688, - "explicit": false, - "popularity": 49, - "acousticness": 0.391, - "danceability": 0.182, - "energy": 0.033, - "instrumentalness": 0.706, - "key": 9, - "liveness": 0.11, - "loudness": -27.558, - "mode": 0, - "speechiness": 0.0369, - "tempo": 68.469, - "time_signature": 5, - "valence": 0.0348 - }, - { - "track_name": "End of Line", - "track_id": "09TlxralXOGX35LUutvw7I", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 156486, - "explicit": false, - "popularity": 64, - "acousticness": 0.000594, - "danceability": 0.182, - "energy": 0.449, - "instrumentalness": 0.738, - "key": 2, - "liveness": 0.283, - "loudness": -11.344, - "mode": 1, - "speechiness": 0.0305, - "tempo": 195.86, - "time_signature": 4, - "valence": 0.0396 - }, - { - "track_name": "Derezzed", - "track_id": "7hqlHZIXhwAzpWQxm9KzBd", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 104113, - "explicit": false, - "popularity": 55, - "acousticness": 0.00109, - "danceability": 0.539, - "energy": 0.617, - "instrumentalness": 0.762, - "key": 1, - "liveness": 0.18, - "loudness": -10.057, - "mode": 1, - "speechiness": 0.046, - "tempo": 119.993, - "time_signature": 4, - "valence": 0.0772 - }, - { - "track_name": "Fall", - "track_id": "5pPKx6IhpBIqdMGAC0RYn9", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 82605, - "explicit": false, - "popularity": 48, - "acousticness": 4.61e-05, - "danceability": 0.361, - "energy": 0.588, - "instrumentalness": 0.967, - "key": 11, - "liveness": 0.153, - "loudness": -10.154, - "mode": 0, - "speechiness": 0.0284, - "tempo": 89.99, - "time_signature": 4, - "valence": 0.274 - }, - { - "track_name": "Solar Sailer", - "track_id": "770xg19bhZii0ARFBn1qR5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 162126, - "explicit": false, - "popularity": 48, - "acousticness": 0.867, - "danceability": 0.177, - "energy": 0.172, - "instrumentalness": 0.815, - "key": 10, - "liveness": 0.103, - "loudness": -23.405, - "mode": 0, - "speechiness": 0.0382, - "tempo": 124.141, - "time_signature": 3, - "valence": 0.0385 - }, - { - "track_name": "Rectifier", - "track_id": "6lEEO57pUsxL33F3tSNWV3", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 134047, - "explicit": false, - "popularity": 44, - "acousticness": 0.49, - "danceability": 0.449, - "energy": 0.198, - "instrumentalness": 0.917, - "key": 2, - "liveness": 0.106, - "loudness": -14.778, - "mode": 1, - "speechiness": 0.0343, - "tempo": 131.866, - "time_signature": 4, - "valence": 0.0399 - }, - { - "track_name": "Disc Wars", - "track_id": "1OAEosQeqo1Q2RKkipkkiP", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 251453, - "explicit": false, - "popularity": 46, - "acousticness": 0.408, - "danceability": 0.544, - "energy": 0.489, - "instrumentalness": 0.892, - "key": 2, - "liveness": 0.114, - "loudness": -14.516, - "mode": 1, - "speechiness": 0.0305, - "tempo": 160.013, - "time_signature": 4, - "valence": 0.352 - }, - { - "track_name": "C.L.U.", - "track_id": "5yq0Wr88ARxysyYEEfVY2E", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 279313, - "explicit": false, - "popularity": 45, - "acousticness": 0.345, - "danceability": 0.337, - "energy": 0.517, - "instrumentalness": 0.768, - "key": 7, - "liveness": 0.222, - "loudness": -13.119, - "mode": 1, - "speechiness": 0.0344, - "tempo": 86.024, - "time_signature": 4, - "valence": 0.0398 - }, - { - "track_name": "Arrival", - "track_id": "4Fm7MMYiSRriB4eTvulVKQ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 120489, - "explicit": false, - "popularity": 44, - "acousticness": 0.907, - "danceability": 0.0849, - "energy": 0.104, - "instrumentalness": 0.721, - "key": 8, - "liveness": 0.116, - "loudness": -22.836, - "mode": 0, - "speechiness": 0.0441, - "tempo": 84.002, - "time_signature": 5, - "valence": 0.0658 - }, - { - "track_name": "Flynn Lives", - "track_id": "3szggCvjcOLWroR6DM9cJn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 202150, - "explicit": false, - "popularity": 45, - "acousticness": 0.95, - "danceability": 0.448, - "energy": 0.271, - "instrumentalness": 0.667, - "key": 1, - "liveness": 0.13, - "loudness": -14.263, - "mode": 1, - "speechiness": 0.0335, - "tempo": 107.988, - "time_signature": 4, - "valence": 0.0527 - }, - { - "track_name": "TRON Legacy (End Titles)", - "track_id": "69T9xcz6U8GFYmdPLkYn4J", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 197825, - "explicit": false, - "popularity": 48, - "acousticness": 1.31e-05, - "danceability": 0.419, - "energy": 0.815, - "instrumentalness": 0.854, - "key": 1, - "liveness": 0.357, - "loudness": -9.162, - "mode": 0, - "speechiness": 0.0413, - "tempo": 101.97, - "time_signature": 4, - "valence": 0.0397 - }, - { - "track_name": "Finale", - "track_id": "2URbRukS6KLiQOGAhGP40J", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 262779, - "explicit": false, - "popularity": 42, - "acousticness": 0.931, - "danceability": 0.0782, - "energy": 0.11, - "instrumentalness": 0.919, - "key": 5, - "liveness": 0.103, - "loudness": -15.15, - "mode": 1, - "speechiness": 0.0466, - "tempo": 71.202, - "time_signature": 3, - "valence": 0.0295 - }, - { - "track_name": "Sea of Simulation", - "track_id": "1dsetWQ7Jx0uygKHPH0GBk", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 160659, - "explicit": false, - "popularity": 45, - "acousticness": 0.0535, - "danceability": 0.511, - "energy": 0.65, - "instrumentalness": 0.764, - "key": 0, - "liveness": 0.277, - "loudness": -11.899, - "mode": 1, - "speechiness": 0.034, - "tempo": 113.711, - "time_signature": 4, - "valence": 0.0878 - }, - { - "track_name": "Encom Part II", - "track_id": "37OFlKZy7bJeF6vzFmekfK", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 136760, - "explicit": false, - "popularity": 46, - "acousticness": 0.443, - "danceability": 0.431, - "energy": 0.455, - "instrumentalness": 0.684, - "key": 7, - "liveness": 0.124, - "loudness": -14.287, - "mode": 0, - "speechiness": 0.0362, - "tempo": 160.558, - "time_signature": 4, - "valence": 0.446 - }, - { - "track_name": "Encom Part I", - "track_id": "0wuXtDn3vPxvG6szydUznc", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 231680, - "explicit": false, - "popularity": 42, - "acousticness": 0.762, - "danceability": 0.394, - "energy": 0.174, - "instrumentalness": 0.87, - "key": 7, - "liveness": 0.0964, - "loudness": -28.356, - "mode": 1, - "speechiness": 0.0423, - "tempo": 79.321, - "time_signature": 4, - "valence": 0.0566 - }, - { - "track_name": "Round One", - "track_id": "0wF6Fj7kEhrfVWC3AgCRBx", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 100026, - "explicit": false, - "popularity": 42, - "acousticness": 0.286, - "danceability": 0.377, - "energy": 0.409, - "instrumentalness": 0.607, - "key": 8, - "liveness": 0.101, - "loudness": -20.093, - "mode": 1, - "speechiness": 0.0371, - "tempo": 108.033, - "time_signature": 4, - "valence": 0.0213 - }, - { - "track_name": "Castor", - "track_id": "6w5ZzNX84SzG5ob8tm4Ozq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 138506, - "explicit": false, - "popularity": 45, - "acousticness": 0.0592, - "danceability": 0.451, - "energy": 0.823, - "instrumentalness": 0.89, - "key": 2, - "liveness": 0.202, - "loudness": -10.739, - "mode": 1, - "speechiness": 0.0399, - "tempo": 116.986, - "time_signature": 4, - "valence": 0.325 - }, - { - "track_name": "Reflections", - "track_id": "2Aq8H7LO9IujF4uFUaCpfj", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 161300, - "explicit": false, - "popularity": 42, - "acousticness": 0.778, - "danceability": 0.392, - "energy": 0.192, - "instrumentalness": 0.782, - "key": 7, - "liveness": 0.112, - "loudness": -19.268, - "mode": 1, - "speechiness": 0.0432, - "tempo": 159.663, - "time_signature": 3, - "valence": 0.0389 - }, - { - "track_name": "Sunrise Prelude", - "track_id": "5EkLu4IaWJuFfDlPdCtjQX", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 171266, - "explicit": false, - "popularity": 42, - "acousticness": 0.899, - "danceability": 0.299, - "energy": 0.149, - "instrumentalness": 0.964, - "key": 0, - "liveness": 0.198, - "loudness": -18.969, - "mode": 0, - "speechiness": 0.0368, - "tempo": 115.768, - "time_signature": 4, - "valence": 0.0394 - }, - { - "track_name": "Father and Son", - "track_id": "5OO1MmnLVRPYjDGbDC9c5s", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 189946, - "explicit": false, - "popularity": 43, - "acousticness": 0.73, - "danceability": 0.154, - "energy": 0.035, - "instrumentalness": 0.951, - "key": 8, - "liveness": 0.108, - "loudness": -22.888, - "mode": 0, - "speechiness": 0.0423, - "tempo": 134.547, - "time_signature": 3, - "valence": 0.0353 - }, - { - "track_name": "Outlands, Part II", - "track_id": "0KCzXogxEjPDOYrwvC7Dkg", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3AMXFnwHWXCvNr5NCCpLZI" - ], - "duration_ms": 174200, - "explicit": false, - "popularity": 45, - "acousticness": 0.703, - "danceability": 0.436, - "energy": 0.308, - "instrumentalness": 0.745, - "key": 0, - "liveness": 0.298, - "loudness": -17.853, - "mode": 1, - "speechiness": 0.0299, - "tempo": 113.226, - "time_signature": 4, - "valence": 0.0656 - } - ], - [ - { - "track_name": "Overture", - "track_id": "1wlLWCKOYy3o2GlVR1szY2", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 148013, - "explicit": false, - "popularity": 38, - "acousticness": 0.878, - "danceability": 0.168, - "energy": 0.0674, - "instrumentalness": 0.96, - "key": 1, - "liveness": 0.13, - "loudness": -14.688, - "mode": 1, - "speechiness": 0.0459, - "tempo": 115.697, - "time_signature": 4, - "valence": 0.0361 - }, - { - "track_name": "The Grid", - "track_id": "5z9v299A7qXXSk2VY0sUu0", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 96746, - "explicit": false, - "popularity": 33, - "acousticness": 0.264, - "danceability": 0.557, - "energy": 0.504, - "instrumentalness": 0.184, - "key": 1, - "liveness": 0.3, - "loudness": -13.53, - "mode": 1, - "speechiness": 0.0369, - "tempo": 102.019, - "time_signature": 4, - "valence": 0.0652 - }, - { - "track_name": "The Son of Flynn", - "track_id": "5JSkyPoYHVT85NSd60PVEz", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 95226, - "explicit": false, - "popularity": 40, - "acousticness": 0.914, - "danceability": 0.542, - "energy": 0.776, - "instrumentalness": 0.884, - "key": 0, - "liveness": 0.262, - "loudness": -17.679, - "mode": 0, - "speechiness": 0.0463, - "tempo": 106.005, - "time_signature": 4, - "valence": 0.0229 - }, - { - "track_name": "Recognizer", - "track_id": "4rFzvCOKRgYftDUT3huz3B", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 157706, - "explicit": false, - "popularity": 33, - "acousticness": 0.463, - "danceability": 0.578, - "energy": 0.535, - "instrumentalness": 0.583, - "key": 1, - "liveness": 0.108, - "loudness": -14.616, - "mode": 1, - "speechiness": 0.0389, - "tempo": 104.003, - "time_signature": 4, - "valence": 0.0826 - }, - { - "track_name": "Armory", - "track_id": "4YqGC8ipqztRCy5mNZtjla", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 122986, - "explicit": false, - "popularity": 29, - "acousticness": 0.661, - "danceability": 0.383, - "energy": 0.0546, - "instrumentalness": 0.946, - "key": 5, - "liveness": 0.115, - "loudness": -23.993, - "mode": 0, - "speechiness": 0.0371, - "tempo": 96.018, - "time_signature": 4, - "valence": 0.033 - }, - { - "track_name": "Arena", - "track_id": "4Zv7ylukNTHhaev69SfrXb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 93226, - "explicit": false, - "popularity": 30, - "acousticness": 0.0138, - "danceability": 0.31, - "energy": 0.412, - "instrumentalness": 0.99, - "key": 8, - "liveness": 0.0734, - "loudness": -13.547, - "mode": 1, - "speechiness": 0.0361, - "tempo": 66.637, - "time_signature": 5, - "valence": 0.0824 - }, - { - "track_name": "Rinzler", - "track_id": "69Ars6Qne4yAQjhuZef7Hp", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 137640, - "explicit": false, - "popularity": 31, - "acousticness": 0.48, - "danceability": 0.498, - "energy": 0.65, - "instrumentalness": 0.815, - "key": 9, - "liveness": 0.0995, - "loudness": -14.715, - "mode": 1, - "speechiness": 0.0451, - "tempo": 90.021, - "time_signature": 4, - "valence": 0.0359 - }, - { - "track_name": "The Game Has Changed", - "track_id": "44OU8uZ2h9xVcJgKPJKU77", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 205450, - "explicit": false, - "popularity": 32, - "acousticness": 0.431, - "danceability": 0.543, - "energy": 0.502, - "instrumentalness": 0.73, - "key": 9, - "liveness": 0.102, - "loudness": -14.793, - "mode": 1, - "speechiness": 0.0413, - "tempo": 99.989, - "time_signature": 4, - "valence": 0.0566 - }, - { - "track_name": "Outlands", - "track_id": "0KE5Uw9yO4ROgON70Gnihb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 162446, - "explicit": false, - "popularity": 32, - "acousticness": 0.791, - "danceability": 0.574, - "energy": 0.444, - "instrumentalness": 0.644, - "key": 0, - "liveness": 0.278, - "loudness": -16.001, - "mode": 1, - "speechiness": 0.0378, - "tempo": 113.175, - "time_signature": 4, - "valence": 0.165 - }, - { - "track_name": "Adagio For TRON", - "track_id": "6pt4V8ttgLOm1Z1W4tsiTY", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 251093, - "explicit": false, - "popularity": 31, - "acousticness": 0.725, - "danceability": 0.0631, - "energy": 0.115, - "instrumentalness": 0.888, - "key": 1, - "liveness": 0.127, - "loudness": -19.971, - "mode": 0, - "speechiness": 0.0528, - "tempo": 59.122, - "time_signature": 4, - "valence": 0.0369 - }, - { - "track_name": "Nocturne", - "track_id": "3TsNCTLRDiUxYflxu4BJYu", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 101680, - "explicit": false, - "popularity": 30, - "acousticness": 0.404, - "danceability": 0.169, - "energy": 0.0501, - "instrumentalness": 0.651, - "key": 9, - "liveness": 0.11, - "loudness": -27.297, - "mode": 0, - "speechiness": 0.0386, - "tempo": 87.519, - "time_signature": 1, - "valence": 0.0354 - }, - { - "track_name": "End of Line", - "track_id": "10Qq6hFWwd5V8Aez8GNLh3", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 156480, - "explicit": false, - "popularity": 35, - "acousticness": 0.000466, - "danceability": 0.37, - "energy": 0.447, - "instrumentalness": 0.753, - "key": 2, - "liveness": 0.304, - "loudness": -11.355, - "mode": 1, - "speechiness": 0.0278, - "tempo": 195.948, - "time_signature": 4, - "valence": 0.0389 - }, - { - "track_name": "Derezzed", - "track_id": "5aZCwTIsfqv22p5bewcrgf", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 104120, - "explicit": false, - "popularity": 40, - "acousticness": 0.00159, - "danceability": 0.536, - "energy": 0.616, - "instrumentalness": 0.773, - "key": 1, - "liveness": 0.195, - "loudness": -10.019, - "mode": 1, - "speechiness": 0.0488, - "tempo": 119.988, - "time_signature": 4, - "valence": 0.101 - }, - { - "track_name": "Fall", - "track_id": "0cM9xIaDQ4DBhH7wMfwqQV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 82613, - "explicit": false, - "popularity": 31, - "acousticness": 4.71e-05, - "danceability": 0.276, - "energy": 0.634, - "instrumentalness": 0.966, - "key": 11, - "liveness": 0.164, - "loudness": -10.119, - "mode": 0, - "speechiness": 0.0302, - "tempo": 179.975, - "time_signature": 4, - "valence": 0.237 - }, - { - "track_name": "Solar Sailer", - "track_id": "2pnJ87yTVpkgtZh6Tq4vKh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 162075, - "explicit": false, - "popularity": 38, - "acousticness": 0.857, - "danceability": 0.176, - "energy": 0.169, - "instrumentalness": 0.812, - "key": 10, - "liveness": 0.108, - "loudness": -23.316, - "mode": 0, - "speechiness": 0.0402, - "tempo": 124.278, - "time_signature": 3, - "valence": 0.0382 - }, - { - "track_name": "Rectifier", - "track_id": "3SyKgztarlfkJZDeovcHJl", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 134053, - "explicit": false, - "popularity": 26, - "acousticness": 0.58, - "danceability": 0.448, - "energy": 0.193, - "instrumentalness": 0.915, - "key": 2, - "liveness": 0.123, - "loudness": -14.898, - "mode": 1, - "speechiness": 0.0347, - "tempo": 65.963, - "time_signature": 4, - "valence": 0.0395 - }, - { - "track_name": "Disc Wars", - "track_id": "4GspJiSjfLnpAqd8pMK32l", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 251440, - "explicit": false, - "popularity": 29, - "acousticness": 0.433, - "danceability": 0.552, - "energy": 0.479, - "instrumentalness": 0.899, - "key": 2, - "liveness": 0.117, - "loudness": -14.566, - "mode": 1, - "speechiness": 0.0306, - "tempo": 159.978, - "time_signature": 4, - "valence": 0.352 - }, - { - "track_name": "C.L.U.", - "track_id": "3woftPuFttI6yDyzvfgSQI", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 279320, - "explicit": false, - "popularity": 27, - "acousticness": 0.343, - "danceability": 0.341, - "energy": 0.509, - "instrumentalness": 0.788, - "key": 7, - "liveness": 0.228, - "loudness": -13.112, - "mode": 1, - "speechiness": 0.0339, - "tempo": 87.498, - "time_signature": 4, - "valence": 0.0615 - }, - { - "track_name": "Arrival", - "track_id": "4DoZWTMW5kd9E366wvDY72", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 120493, - "explicit": false, - "popularity": 27, - "acousticness": 0.91, - "danceability": 0.0592, - "energy": 0.131, - "instrumentalness": 0.747, - "key": 8, - "liveness": 0.11, - "loudness": -22.586, - "mode": 0, - "speechiness": 0.0487, - "tempo": 62.97, - "time_signature": 4, - "valence": 0.0386 - }, - { - "track_name": "Flynn Lives", - "track_id": "1rbJA2CB4x69TQBtWkq4n4", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 202146, - "explicit": false, - "popularity": 32, - "acousticness": 0.951, - "danceability": 0.442, - "energy": 0.271, - "instrumentalness": 0.633, - "key": 1, - "liveness": 0.197, - "loudness": -14.377, - "mode": 1, - "speechiness": 0.0353, - "tempo": 108.007, - "time_signature": 4, - "valence": 0.0441 - }, - { - "track_name": "TRON Legacy (End Titles)", - "track_id": "0pVib2tLYRTMY91aXWtulu", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 197826, - "explicit": false, - "popularity": 33, - "acousticness": 1.54e-05, - "danceability": 0.423, - "energy": 0.823, - "instrumentalness": 0.836, - "key": 1, - "liveness": 0.361, - "loudness": -9.145, - "mode": 0, - "speechiness": 0.0414, - "tempo": 101.988, - "time_signature": 4, - "valence": 0.0455 - }, - { - "track_name": "Finale", - "track_id": "3IC3f2c4P7mod0wCgpDzzb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2GC8kfyiyPjyheUUWyEY8F" - ], - "duration_ms": 262786, - "explicit": false, - "popularity": 25, - "acousticness": 0.931, - "danceability": 0.0757, - "energy": 0.103, - "instrumentalness": 0.889, - "key": 5, - "liveness": 0.0974, - "loudness": -15.183, - "mode": 1, - "speechiness": 0.0488, - "tempo": 62.105, - "time_signature": 4, - "valence": 0.0289 - } - ], - [ - { - "track_name": "Robot Rock / Oh Yeah", - "track_id": "5eS6pTvDNOvh2kyxeZtK3r", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 387506, - "explicit": false, - "popularity": 52, - "acousticness": 0.00018, - "danceability": 0.479, - "energy": 0.678, - "instrumentalness": 0.661, - "key": 2, - "liveness": 0.421, - "loudness": -12.17, - "mode": 1, - "speechiness": 0.0758, - "tempo": 116.033, - "time_signature": 4, - "valence": 0.227 - }, - { - "track_name": "Touch It / Technologic", - "track_id": "4IdiGMOzEYXOh2897XOV8i", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 329653, - "explicit": false, - "popularity": 53, - "acousticness": 0.00494, - "danceability": 0.52, - "energy": 0.545, - "instrumentalness": 0.285, - "key": 11, - "liveness": 0.464, - "loudness": -12.67, - "mode": 0, - "speechiness": 0.158, - "tempo": 121.78, - "time_signature": 4, - "valence": 0.233 - }, - { - "track_name": "Television Rules the Nation / Crescendolls", - "track_id": "1E8S3CSv20KrKT0C1yAjkO", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 290840, - "explicit": false, - "popularity": 54, - "acousticness": 6.53e-05, - "danceability": 0.58, - "energy": 0.786, - "instrumentalness": 0.207, - "key": 6, - "liveness": 0.461, - "loudness": -9.979, - "mode": 1, - "speechiness": 0.0675, - "tempo": 126.004, - "time_signature": 4, - "valence": 0.558 - }, - { - "track_name": "Too Long / Steam Machine", - "track_id": "3n4ow4XGzwSIPxA3JHLF9p", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 421600, - "explicit": false, - "popularity": 51, - "acousticness": 0.000605, - "danceability": 0.381, - "energy": 0.721, - "instrumentalness": 0.776, - "key": 5, - "liveness": 0.112, - "loudness": -9.967, - "mode": 0, - "speechiness": 0.0464, - "tempo": 125.603, - "time_signature": 4, - "valence": 0.225 - }, - { - "track_name": "Around the World / Harder, Better, Faster, Stronger", - "track_id": "5RByQFt9Mlo8hDYJ921tCv", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 342626, - "explicit": false, - "popularity": 58, - "acousticness": 0.00152, - "danceability": 0.629, - "energy": 0.787, - "instrumentalness": 0.359, - "key": 5, - "liveness": 0.209, - "loudness": -8.399, - "mode": 0, - "speechiness": 0.0646, - "tempo": 125.998, - "time_signature": 4, - "valence": 0.581 - }, - { - "track_name": "Burnin' / Too Long", - "track_id": "3Ons6C3wXBMi8nYpLBMlVe", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 431506, - "explicit": false, - "popularity": 47, - "acousticness": 0.000207, - "danceability": 0.602, - "energy": 0.793, - "instrumentalness": 0.0476, - "key": 10, - "liveness": 0.686, - "loudness": -10.462, - "mode": 0, - "speechiness": 0.0946, - "tempo": 127.016, - "time_signature": 4, - "valence": 0.35 - }, - { - "track_name": "Face to Face / Short Circuit", - "track_id": "5XzGyYZemDuCG3OdbhVFvh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 295226, - "explicit": false, - "popularity": 47, - "acousticness": 0.261, - "danceability": 0.525, - "energy": 0.599, - "instrumentalness": 0.021, - "key": 6, - "liveness": 0.717, - "loudness": -12.666, - "mode": 1, - "speechiness": 0.0581, - "tempo": 125.976, - "time_signature": 4, - "valence": 0.188 - }, - { - "track_name": "One More Time / Aerodynamic", - "track_id": "1H1d4dr7Hk5Rrd8Tb5y5yr", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 370533, - "explicit": false, - "popularity": 52, - "acousticness": 0.038, - "danceability": 0.45, - "energy": 0.846, - "instrumentalness": 0.266, - "key": 11, - "liveness": 0.222, - "loudness": -9.996, - "mode": 0, - "speechiness": 0.102, - "tempo": 124.239, - "time_signature": 4, - "valence": 0.414 - }, - { - "track_name": "Aerodynamic Beats / Gabrielle , Forget About the World", - "track_id": "0rFTPTXuVFIOYGnqXbWm3X", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 211760, - "explicit": false, - "popularity": 45, - "acousticness": 0.0123, - "danceability": 0.591, - "energy": 0.789, - "instrumentalness": 0.826, - "key": 6, - "liveness": 0.403, - "loudness": -12.041, - "mode": 0, - "speechiness": 0.0707, - "tempo": 127.028, - "time_signature": 4, - "valence": 0.396 - }, - { - "track_name": "Prime Time of Your Life / Brainwasher / Rollin' & Scratchin' / Alive", - "track_id": "3qVD67mL0JxgU0VQVKR52G", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 622480, - "explicit": false, - "popularity": 46, - "acousticness": 5.55e-05, - "danceability": 0.531, - "energy": 0.846, - "instrumentalness": 0.816, - "key": 11, - "liveness": 0.881, - "loudness": -9.652, - "mode": 0, - "speechiness": 0.052, - "tempo": 130.032, - "time_signature": 4, - "valence": 0.055 - }, - { - "track_name": "Da Funk / Daftendirekt", - "track_id": "5OWhFeNXZ2RGbsGpl3rIc3", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 396973, - "explicit": false, - "popularity": 45, - "acousticness": 0.00994, - "danceability": 0.676, - "energy": 0.859, - "instrumentalness": 0.754, - "key": 5, - "liveness": 0.98, - "loudness": -9.602, - "mode": 0, - "speechiness": 0.0412, - "tempo": 111.991, - "time_signature": 4, - "valence": 0.546 - }, - { - "track_name": "Superheroes / Human After All / Rock'n Roll", - "track_id": "029O4HWI1pVXLfFdfQd1Jb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 341106, - "explicit": false, - "popularity": 45, - "acousticness": 4.48e-05, - "danceability": 0.487, - "energy": 0.723, - "instrumentalness": 0.383, - "key": 7, - "liveness": 0.819, - "loudness": -11.148, - "mode": 1, - "speechiness": 0.143, - "tempo": 138.007, - "time_signature": 4, - "valence": 0.391 - }, - { - "track_name": "Human After All / Together / One More Time / Music Sounds Better with You", - "track_id": "5q2KGgJV5l4MAnnGIrvKSK", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "7u6zL7kqpgLPISZYXNTgYk" - ], - "duration_ms": 598666, - "explicit": false, - "popularity": 46, - "acousticness": 8.19e-05, - "danceability": 0.471, - "energy": 0.848, - "instrumentalness": 0.284, - "key": 11, - "liveness": 0.952, - "loudness": -11.331, - "mode": 0, - "speechiness": 0.0595, - "tempo": 131.045, - "time_signature": 4, - "valence": 0.117 - } - ], - [ - { - "track_name": "Robot Rock - Soulwax Remix", - "track_id": "0BEDdX7TWPEt1gWnbVbHdN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "43mWhBXSflupNLuNjM5vff" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 390506, - "explicit": false, - "popularity": 29, - "acousticness": 0.000988, - "danceability": 0.851, - "energy": 0.569, - "instrumentalness": 0.664, - "key": 7, - "liveness": 0.154, - "loudness": -3.453, - "mode": 1, - "speechiness": 0.0375, - "tempo": 123.014, - "time_signature": 4, - "valence": 0.516 - }, - { - "track_name": "Human After All - SebastiAn Remix", - "track_id": "4TeYKbvzloWQ1eGG4JB4b6", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5tOWIviwLM1EIqGAbF8VSU" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 287640, - "explicit": false, - "popularity": 30, - "acousticness": 0.00038, - "danceability": 0.593, - "energy": 0.926, - "instrumentalness": 0.83, - "key": 4, - "liveness": 0.628, - "loudness": -3.813, - "mode": 0, - "speechiness": 0.209, - "tempo": 122.863, - "time_signature": 4, - "valence": 0.516 - }, - { - "track_name": "Technologic - Peaches No Logic Remix", - "track_id": "6Wn1bfoqAXHqzjoNSzpiKs", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1gkSl4XpHIHI4I1WQbfXOE" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 280413, - "explicit": false, - "popularity": 24, - "acousticness": 0.000682, - "danceability": 0.897, - "energy": 0.684, - "instrumentalness": 0.015, - "key": 1, - "liveness": 0.302, - "loudness": -7.828, - "mode": 1, - "speechiness": 0.0801, - "tempo": 135.989, - "time_signature": 4, - "valence": 0.762 - }, - { - "track_name": "Brainwasher - Erol Alkan's Horrorhouse Dub", - "track_id": "14vpfA3QRbZQNEn7ojtL3Z", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3jQ8hpdQo3TCEnb5gmOtH5" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 364040, - "explicit": false, - "popularity": 21, - "acousticness": 0.000466, - "danceability": 0.696, - "energy": 0.972, - "instrumentalness": 0.9, - "key": 8, - "liveness": 0.298, - "loudness": -5.051, - "mode": 1, - "speechiness": 0.0831, - "tempo": 120.016, - "time_signature": 4, - "valence": 0.386 - }, - { - "track_name": "Prime Time of Your Life - Para One Remix", - "track_id": "7z04OESfPf9PiaJPX3h5hr", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5MRONaryo2z75lLiuJ0NWJ" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 231560, - "explicit": false, - "popularity": 26, - "acousticness": 0.000104, - "danceability": 0.44, - "energy": 0.74, - "instrumentalness": 0.856, - "key": 7, - "liveness": 0.061, - "loudness": -4.836, - "mode": 1, - "speechiness": 0.155, - "tempo": 128.004, - "time_signature": 4, - "valence": 0.795 - }, - { - "track_name": "Human After All - \"Guy-Man After All\" Justice Remix", - "track_id": "2QkzakBouxPqiWI7ke3Tso", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1gR0gsQYfi6joyO1dlp76N" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 240373, - "explicit": false, - "popularity": 25, - "acousticness": 0.000265, - "danceability": 0.698, - "energy": 0.9, - "instrumentalness": 0.762, - "key": 1, - "liveness": 0.0826, - "loudness": -5.312, - "mode": 1, - "speechiness": 0.0475, - "tempo": 121.978, - "time_signature": 4, - "valence": 0.13 - }, - { - "track_name": "Technologic - Digitalism Remix", - "track_id": "01sOjRlYusOIfxC9qaSYqQ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2fBURuq7FrlH6z5F92mpOl" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 361213, - "explicit": false, - "popularity": 23, - "acousticness": 0.00158, - "danceability": 0.539, - "energy": 0.524, - "instrumentalness": 0.301, - "key": 9, - "liveness": 0.0379, - "loudness": -5.681, - "mode": 0, - "speechiness": 0.0787, - "tempo": 127.048, - "time_signature": 4, - "valence": 0.504 - }, - { - "track_name": "Human After All - Alter Ego Remix", - "track_id": "1wjNeiqNI6gXr8MJgnVIo2", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1bnxrGpNXaVSzgbwEFL0qj" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 565826, - "explicit": false, - "popularity": 20, - "acousticness": 9.39e-06, - "danceability": 0.786, - "energy": 0.458, - "instrumentalness": 8.68e-05, - "key": 4, - "liveness": 0.0969, - "loudness": -5.221, - "mode": 1, - "speechiness": 0.109, - "tempo": 128.979, - "time_signature": 4, - "valence": 0.537 - }, - { - "track_name": "Technologic - Vitalic Remix", - "track_id": "1QKWEOrj8Ee8PBu6mPVSw1", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4M84umUNRbZy1mJleyyRM9" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 324840, - "explicit": false, - "popularity": 22, - "acousticness": 0.00177, - "danceability": 0.674, - "energy": 0.839, - "instrumentalness": 0.749, - "key": 7, - "liveness": 0.167, - "loudness": -9.859, - "mode": 1, - "speechiness": 0.165, - "tempo": 129.177, - "time_signature": 4, - "valence": 0.728 - }, - { - "track_name": "Robot Rock - Maximum Overdrive Mix", - "track_id": "6QqtrujZQLMtsHiyk9rKyA", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 355960, - "explicit": false, - "popularity": 25, - "acousticness": 2.57e-06, - "danceability": 0.293, - "energy": 0.648, - "instrumentalness": 0.687, - "key": 2, - "liveness": 0.103, - "loudness": -6.755, - "mode": 1, - "speechiness": 0.179, - "tempo": 139.19, - "time_signature": 4, - "valence": 0.161 - }, - { - "track_name": "Technologic - Liquid Twins Remix", - "track_id": "11L5sMCBeor1mFUW0cXrIR", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6fJLczsevKaRi1D8zX7vRJ" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 250573, - "explicit": false, - "popularity": 22, - "acousticness": 0.000568, - "danceability": 0.67, - "energy": 0.72, - "instrumentalness": 0.616, - "key": 7, - "liveness": 0.0559, - "loudness": -5.507, - "mode": 1, - "speechiness": 0.183, - "tempo": 125.99, - "time_signature": 4, - "valence": 0.462 - }, - { - "track_name": "Technologic - Basement Jaxx Kontrol Mixx", - "track_id": "6RZRao7yG0G50VRvu3M4ct", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4YrKBkKSVeqDamzBPWVnSJ" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 331693, - "explicit": false, - "popularity": 19, - "acousticness": 0.000388, - "danceability": 0.563, - "energy": 0.912, - "instrumentalness": 0.79, - "key": 7, - "liveness": 0.459, - "loudness": -8.514, - "mode": 1, - "speechiness": 0.0881, - "tempo": 127.999, - "time_signature": 4, - "valence": 0.49 - }, - { - "track_name": "Human After All - The Juan Mclean Remix", - "track_id": "7v7NHYIzIs9anGBUFFMamf", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "7gG6LkU3pCSQmCIPR4aSBt" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 403026, - "explicit": false, - "popularity": 19, - "acousticness": 0.0132, - "danceability": 0.826, - "energy": 0.833, - "instrumentalness": 0.559, - "key": 9, - "liveness": 0.284, - "loudness": -5.762, - "mode": 1, - "speechiness": 0.0715, - "tempo": 130.007, - "time_signature": 4, - "valence": 0.775 - }, - { - "track_name": "Human After All - Emperor Machine Version", - "track_id": "0frwUWLdF1PnPF4ysjlBA4", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "0euaSBwkNAZFqyRcthOIa2" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 363946, - "explicit": false, - "popularity": 18, - "acousticness": 0.00222, - "danceability": 0.86, - "energy": 0.715, - "instrumentalness": 0.826, - "key": 4, - "liveness": 0.493, - "loudness": -4.891, - "mode": 0, - "speechiness": 0.0634, - "tempo": 136.495, - "time_signature": 4, - "valence": 0.438 - }, - { - "track_name": "Technologic - Le Knight Club Remix", - "track_id": "5b3n32izrzbkTMC16FZ83r", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "46C7zcoy351lNv6pMTStN9" - ], - "albums": [ - "11cpAynoDMZFD0B2xtw6OQ" - ], - "duration_ms": 328093, - "explicit": false, - "popularity": 25, - "acousticness": 0.0011, - "danceability": 0.581, - "energy": 0.9, - "instrumentalness": 0.378, - "key": 4, - "liveness": 0.137, - "loudness": -3.353, - "mode": 0, - "speechiness": 0.123, - "tempo": 127.508, - "time_signature": 4, - "valence": 0.569 - } - ], - [ - { - "track_name": "Human After All", - "track_id": "3aCKAkMx3yfaj3AO5Gz47e", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 319879, - "explicit": false, - "popularity": 49, - "acousticness": 0.00139, - "danceability": 0.608, - "energy": 0.725, - "instrumentalness": 0.0546, - "key": 0, - "liveness": 0.0802, - "loudness": -4.367, - "mode": 1, - "speechiness": 0.342, - "tempo": 136.251, - "time_signature": 4, - "valence": 0.802 - }, - { - "track_name": "The Prime Time of Your Life", - "track_id": "0UZRFYMoz9xmeE2AQUhTDl", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 263240, - "explicit": false, - "popularity": 40, - "acousticness": 4.51e-05, - "danceability": 0.503, - "energy": 0.507, - "instrumentalness": 0.514, - "key": 9, - "liveness": 0.288, - "loudness": -7.243, - "mode": 1, - "speechiness": 0.181, - "tempo": 128.606, - "time_signature": 4, - "valence": 0.0987 - }, - { - "track_name": "Robot Rock", - "track_id": "7LL40F6YdZgeiQ6en1c7Lk", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 287720, - "explicit": false, - "popularity": 58, - "acousticness": 6.94e-06, - "danceability": 0.59, - "energy": 0.787, - "instrumentalness": 0.845, - "key": 7, - "liveness": 0.0293, - "loudness": -5.766, - "mode": 1, - "speechiness": 0.0512, - "tempo": 111.926, - "time_signature": 4, - "valence": 0.598 - }, - { - "track_name": "Steam Machine", - "track_id": "60HSQkYSlJVtdRdHgzRsXz", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 321186, - "explicit": false, - "popularity": 35, - "acousticness": 5.07e-05, - "danceability": 0.518, - "energy": 0.745, - "instrumentalness": 0.802, - "key": 11, - "liveness": 0.229, - "loudness": -6.787, - "mode": 0, - "speechiness": 0.212, - "tempo": 92.07, - "time_signature": 4, - "valence": 0.549 - }, - { - "track_name": "Make Love", - "track_id": "4ABWPP59ItFKykdaDF09K5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 289680, - "explicit": false, - "popularity": 51, - "acousticness": 0.783, - "danceability": 0.697, - "energy": 0.548, - "instrumentalness": 0.841, - "key": 1, - "liveness": 0.132, - "loudness": -9.087, - "mode": 1, - "speechiness": 0.0561, - "tempo": 133.005, - "time_signature": 4, - "valence": 0.977 - }, - { - "track_name": "The Brainwasher", - "track_id": "73MAeHX5sqLYfuYclsrvHc", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 248400, - "explicit": false, - "popularity": 35, - "acousticness": 1.36e-05, - "danceability": 0.531, - "energy": 0.894, - "instrumentalness": 0.837, - "key": 6, - "liveness": 0.0742, - "loudness": -5.435, - "mode": 0, - "speechiness": 0.0466, - "tempo": 119.708, - "time_signature": 4, - "valence": 0.0382 - }, - { - "track_name": "On / Off", - "track_id": "3dWxT7lAv6lmXEW2AEZyPQ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 19200, - "explicit": false, - "popularity": 1, - "acousticness": 0.974, - "danceability": 0.597, - "energy": 0.54, - "instrumentalness": 1.26e-05, - "key": 8, - "liveness": 0.953, - "loudness": -15.07, - "mode": 1, - "speechiness": 0.425, - "tempo": 67.443, - "time_signature": 1, - "valence": 0.93 - }, - { - "track_name": "Television Rules the Nation", - "track_id": "37M8nuFfSrlKfTR0AAp7gK", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 287840, - "explicit": false, - "popularity": 40, - "acousticness": 6.04e-06, - "danceability": 0.702, - "energy": 0.567, - "instrumentalness": 0.706, - "key": 7, - "liveness": 0.1, - "loudness": -5.468, - "mode": 1, - "speechiness": 0.0897, - "tempo": 115.316, - "time_signature": 4, - "valence": 0.705 - }, - { - "track_name": "Technologic", - "track_id": "1iNeZGJsoC0D7ZyJTdIbDS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 284280, - "explicit": false, - "popularity": 56, - "acousticness": 0.000369, - "danceability": 0.812, - "energy": 0.516, - "instrumentalness": 1.09e-05, - "key": 9, - "liveness": 0.0991, - "loudness": -6.963, - "mode": 1, - "speechiness": 0.224, - "tempo": 127.498, - "time_signature": 4, - "valence": 0.633 - }, - { - "track_name": "Emotion", - "track_id": "0Dezmoeb373GNcYBjLVAMH", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2T7DdrOvsqOqU9bGTkjBYu" - ], - "duration_ms": 417320, - "explicit": false, - "popularity": 38, - "acousticness": 0.000555, - "danceability": 0.344, - "energy": 0.613, - "instrumentalness": 0.232, - "key": 7, - "liveness": 0.192, - "loudness": -6.881, - "mode": 1, - "speechiness": 0.0369, - "tempo": 98.305, - "time_signature": 4, - "valence": 0.053 - } - ], - [ - { - "track_name": "Ouverture", - "track_id": "1pyTJdbGVBVvKXC3MtemHA", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 160626, - "explicit": false, - "popularity": 34, - "acousticness": 0.0274, - "danceability": 0.592, - "energy": 0.829, - "instrumentalness": 0.885, - "key": 11, - "liveness": 0.0817, - "loudness": -10.497, - "mode": 1, - "speechiness": 0.0415, - "tempo": 122.999, - "time_signature": 4, - "valence": 0.0342 - }, - { - "track_name": "Aerodynamic - Daft Punk Remix", - "track_id": "37YWwmlRl1GonSwjRuOiEq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 370986, - "explicit": false, - "popularity": 47, - "acousticness": 0.413, - "danceability": 0.568, - "energy": 0.928, - "instrumentalness": 0.572, - "key": 11, - "liveness": 0.111, - "loudness": -6.071, - "mode": 0, - "speechiness": 0.0733, - "tempo": 122.892, - "time_signature": 4, - "valence": 0.181 - }, - { - "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", - "track_id": "5a8PsqWOuGh7FR1tC6UKUs", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "0KuF7reCTOZwV7YJnHQqgr" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 312506, - "explicit": false, - "popularity": 36, - "acousticness": 0.608, - "danceability": 0.85, - "energy": 0.74, - "instrumentalness": 0.000782, - "key": 11, - "liveness": 0.302, - "loudness": -6.327, - "mode": 0, - "speechiness": 0.0552, - "tempo": 123.451, - "time_signature": 4, - "valence": 0.907 - }, - { - "track_name": "Face to Face - Cosmo Vitelli Remix", - "track_id": "2obYlOGofygYwoQLjvQJz8", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "0mFsbKrHaJDM5DgL8g3Ke3" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 294986, - "explicit": false, - "popularity": 30, - "acousticness": 0.0296, - "danceability": 0.645, - "energy": 0.833, - "instrumentalness": 0.0837, - "key": 8, - "liveness": 0.0513, - "loudness": -6.102, - "mode": 0, - "speechiness": 0.0359, - "tempo": 134.985, - "time_signature": 4, - "valence": 0.853 - }, - { - "track_name": "Phoenix - Basement Jaxx Remix", - "track_id": "5PolXgvfH1jVf2yo746ukl", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4YrKBkKSVeqDamzBPWVnSJ" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 473053, - "explicit": false, - "popularity": 25, - "acousticness": 0.000288, - "danceability": 0.718, - "energy": 0.881, - "instrumentalness": 0.842, - "key": 7, - "liveness": 0.502, - "loudness": -8.029, - "mode": 1, - "speechiness": 0.0763, - "tempo": 124.856, - "time_signature": 4, - "valence": 0.622 - }, - { - "track_name": "Digital Love - Boris Dlugosch Remix", - "track_id": "4VoPoqo6tnziRul41NKYVJ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5mrwZhvK7J8K34cWeFG3ru" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 450546, - "explicit": false, - "popularity": 31, - "acousticness": 0.00366, - "danceability": 0.756, - "energy": 0.387, - "instrumentalness": 0.911, - "key": 9, - "liveness": 0.0653, - "loudness": -8.15, - "mode": 1, - "speechiness": 0.0588, - "tempo": 124.674, - "time_signature": 4, - "valence": 0.398 - }, - { - "track_name": "Harder, Better, Faster, Stronger - Jess & Crabbe Remix", - "track_id": "1tc1T1hH5HbRXx3aipDwRU", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "7xSJWld4zSgUutfCPweoy7" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 361000, - "explicit": false, - "popularity": 29, - "acousticness": 0.00036, - "danceability": 0.851, - "energy": 0.803, - "instrumentalness": 0.00453, - "key": 11, - "liveness": 0.101, - "loudness": -5.893, - "mode": 0, - "speechiness": 0.0632, - "tempo": 129.218, - "time_signature": 4, - "valence": 0.528 - }, - { - "track_name": "Face to Face - Demon Remix", - "track_id": "1dyoTxPBYJOlhD0DRn29Ly", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "4LiDDSfUo671okhAa6OSHY" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 419853, - "explicit": false, - "popularity": 28, - "acousticness": 0.000146, - "danceability": 0.907, - "energy": 0.479, - "instrumentalness": 0.838, - "key": 9, - "liveness": 0.0443, - "loudness": -8.268, - "mode": 1, - "speechiness": 0.187, - "tempo": 130.855, - "time_signature": 4, - "valence": 0.47 - }, - { - "track_name": "Crescendolls - Laidback Luke Remix", - "track_id": "1702kHIwlMLbTgnzPZbkno", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "53cQZtWDwDJwVCNZlfJ6Qk" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 325973, - "explicit": false, - "popularity": 24, - "acousticness": 0.000205, - "danceability": 0.634, - "energy": 0.962, - "instrumentalness": 0.901, - "key": 6, - "liveness": 0.0679, - "loudness": -6.193, - "mode": 1, - "speechiness": 0.056, - "tempo": 131.359, - "time_signature": 4, - "valence": 0.501 - }, - { - "track_name": "Aerodynamic - Slum Village Remix", - "track_id": "5rKOHcpjxzJUS3V36J8AxH", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1020a42xVklY6c56imNcaa" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 217920, - "explicit": true, - "popularity": 28, - "acousticness": 0.031, - "danceability": 0.785, - "energy": 0.569, - "instrumentalness": 0.178, - "key": 6, - "liveness": 0.138, - "loudness": -6.198, - "mode": 0, - "speechiness": 0.176, - "tempo": 94.801, - "time_signature": 4, - "valence": 0.768 - }, - { - "track_name": "Too Long - Gonzales Version", - "track_id": "3mEAtR6LFoCNsjg84gZF9L", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "0qudezVgvl4Chd9BgNFB83" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 193706, - "explicit": false, - "popularity": 29, - "acousticness": 0.721, - "danceability": 0.398, - "energy": 0.177, - "instrumentalness": 0, - "key": 8, - "liveness": 0.117, - "loudness": -12.834, - "mode": 1, - "speechiness": 0.029, - "tempo": 140.693, - "time_signature": 4, - "valence": 0.0686 - }, - { - "track_name": "Aerodynamite", - "track_id": "15WSNNQZRQDOrzuKYMyrDX", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 468427, - "explicit": false, - "popularity": 35, - "acousticness": 5.44e-05, - "danceability": 0.566, - "energy": 0.978, - "instrumentalness": 0.958, - "key": 9, - "liveness": 0.0297, - "loudness": -8.274, - "mode": 0, - "speechiness": 0.178, - "tempo": 121.989, - "time_signature": 4, - "valence": 0.106 - }, - { - "track_name": "One More Time - Romanthony's Unplugged", - "track_id": "6ju6DQ7uIuo74eh8iKUQu5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1xKryNto8SDKl2E6lBs23J" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 220586, - "explicit": false, - "popularity": 25, - "acousticness": 0.915, - "danceability": 0.602, - "energy": 0.0967, - "instrumentalness": 0.000775, - "key": 9, - "liveness": 0.241, - "loudness": -13.379, - "mode": 1, - "speechiness": 0.0559, - "tempo": 98.582, - "time_signature": 4, - "valence": 0.257 - }, - { - "track_name": "Something About Us (Love Theme from Interstella 5555)", - "track_id": "3SfSYQLgcrGajPkU5EEr2E", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1O5WUh9KsgHT2QaUCJeVPG" - ], - "duration_ms": 134933, - "explicit": false, - "popularity": 50, - "acousticness": 0.295, - "danceability": 0.889, - "energy": 0.423, - "instrumentalness": 0.449, - "key": 9, - "liveness": 0.084, - "loudness": -9.759, - "mode": 0, - "speechiness": 0.0456, - "tempo": 99.935, - "time_signature": 4, - "valence": 0.81 - } - ], - [ - { - "track_name": "Alive 1997", - "track_id": "0Kbvz9ZjihrcE1Vd1dDCZh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3Z7mPCcnwAzU7GtsRYf0HA" - ], - "duration_ms": 2731066, - "explicit": false, - "popularity": 34, - "acousticness": 0.00689, - "danceability": 0.612, - "energy": 0.989, - "instrumentalness": 0.114, - "key": 11, - "liveness": 0.201, - "loudness": -4.285, - "mode": 0, - "speechiness": 0.367, - "tempo": 135.796, - "time_signature": 4, - "valence": 0.105 - } - ], - [ - { - "track_name": "One More Time", - "track_id": "0DiWol3AO6WpXZgp0goxAV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 320357, - "explicit": false, - "popularity": 78, - "acousticness": 0.0194, - "danceability": 0.613, - "energy": 0.697, - "instrumentalness": 0, - "key": 2, - "liveness": 0.332, - "loudness": -8.618, - "mode": 1, - "speechiness": 0.133, - "tempo": 122.746, - "time_signature": 4, - "valence": 0.476 - }, - { - "track_name": "Aerodynamic", - "track_id": "3H3cOQ6LBLSvmcaV7QkZEu", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 212546, - "explicit": false, - "popularity": 63, - "acousticness": 0.329, - "danceability": 0.624, - "energy": 0.911, - "instrumentalness": 0.861, - "key": 7, - "liveness": 0.0727, - "loudness": -7.482, - "mode": 1, - "speechiness": 0.0524, - "tempo": 122.902, - "time_signature": 4, - "valence": 0.135 - }, - { - "track_name": "Digital Love", - "track_id": "2VEZx7NWsZ1D0eJ4uv5Fym", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 301373, - "explicit": false, - "popularity": 67, - "acousticness": 0.048, - "danceability": 0.644, - "energy": 0.664, - "instrumentalness": 0.867, - "key": 9, - "liveness": 0.342, - "loudness": -8.398, - "mode": 1, - "speechiness": 0.0332, - "tempo": 124.726, - "time_signature": 4, - "valence": 0.53 - }, - { - "track_name": "Harder, Better, Faster, Stronger", - "track_id": "5W3cjX2J3tjhG8zb6u0qHn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 224693, - "explicit": false, - "popularity": 73, - "acousticness": 0.0427, - "danceability": 0.817, - "energy": 0.716, - "instrumentalness": 0.00263, - "key": 6, - "liveness": 0.358, - "loudness": -8.898, - "mode": 0, - "speechiness": 0.144, - "tempo": 123.474, - "time_signature": 4, - "valence": 0.692 - }, - { - "track_name": "Crescendolls", - "track_id": "6vuPZX9fWESg5js2JFTQRJ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 211640, - "explicit": false, - "popularity": 57, - "acousticness": 0.0035, - "danceability": 0.697, - "energy": 0.75, - "instrumentalness": 0.922, - "key": 5, - "liveness": 0.0889, - "loudness": -8.503, - "mode": 0, - "speechiness": 0.0721, - "tempo": 124.048, - "time_signature": 4, - "valence": 0.937 - }, - { - "track_name": "Nightvision", - "track_id": "63JXZZRbmzooashakb0zbu", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 104466, - "explicit": false, - "popularity": 56, - "acousticness": 0.845, - "danceability": 0.491, - "energy": 0.186, - "instrumentalness": 0.916, - "key": 0, - "liveness": 0.109, - "loudness": -29.512, - "mode": 1, - "speechiness": 0.0321, - "tempo": 119.883, - "time_signature": 4, - "valence": 0.457 - }, - { - "track_name": "Superheroes", - "track_id": "186hvCTyrni4KT9nwIQ7zS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 237800, - "explicit": false, - "popularity": 56, - "acousticness": 0.00409, - "danceability": 0.619, - "energy": 0.74, - "instrumentalness": 0.00356, - "key": 11, - "liveness": 0.102, - "loudness": -8.204, - "mode": 0, - "speechiness": 0.0789, - "tempo": 140.874, - "time_signature": 4, - "valence": 0.674 - }, - { - "track_name": "High Life", - "track_id": "098ttCNmncrO4YvqWUNMvn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 201800, - "explicit": false, - "popularity": 56, - "acousticness": 0.00435, - "danceability": 0.653, - "energy": 0.869, - "instrumentalness": 0.413, - "key": 8, - "liveness": 0.334, - "loudness": -9.393, - "mode": 1, - "speechiness": 0.217, - "tempo": 125.207, - "time_signature": 4, - "valence": 0.515 - }, - { - "track_name": "Something About Us", - "track_id": "1NeLwFETswx8Fzxl2AFl91", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 232666, - "explicit": false, - "popularity": 72, - "acousticness": 0.44, - "danceability": 0.875, - "energy": 0.475, - "instrumentalness": 0.72, - "key": 9, - "liveness": 0.046, - "loudness": -12.673, - "mode": 0, - "speechiness": 0.0986, - "tempo": 99.958, - "time_signature": 4, - "valence": 0.384 - }, - { - "track_name": "Voyager", - "track_id": "7cMFjxhbXBpOlais7KMF3j", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 227866, - "explicit": false, - "popularity": 64, - "acousticness": 0.288, - "danceability": 0.669, - "energy": 0.743, - "instrumentalness": 0.805, - "key": 7, - "liveness": 0.309, - "loudness": -11.488, - "mode": 1, - "speechiness": 0.0494, - "tempo": 119.881, - "time_signature": 4, - "valence": 0.28 - }, - { - "track_name": "Veridis Quo", - "track_id": "2LD2gT7gwAurzdQDQtILds", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 345186, - "explicit": false, - "popularity": 69, - "acousticness": 0.479, - "danceability": 0.605, - "energy": 0.687, - "instrumentalness": 0.949, - "key": 9, - "liveness": 0.104, - "loudness": -13.928, - "mode": 0, - "speechiness": 0.045, - "tempo": 106.896, - "time_signature": 4, - "valence": 0.12 - }, - { - "track_name": "Short Circuit", - "track_id": "4npMbTuxrUA3Wd7edACZ2L", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 206866, - "explicit": false, - "popularity": 53, - "acousticness": 0.00461, - "danceability": 0.535, - "energy": 0.558, - "instrumentalness": 0.824, - "key": 6, - "liveness": 0.0821, - "loudness": -10.756, - "mode": 1, - "speechiness": 0.0741, - "tempo": 109.69, - "time_signature": 4, - "valence": 0.215 - }, - { - "track_name": "Face to Face", - "track_id": "7v9Q0dAb9t7h8gJOkcJHay", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 240173, - "explicit": false, - "popularity": 64, - "acousticness": 0.00134, - "danceability": 0.874, - "energy": 0.437, - "instrumentalness": 0.0296, - "key": 1, - "liveness": 0.0293, - "loudness": -10.235, - "mode": 0, - "speechiness": 0.0708, - "tempo": 117.791, - "time_signature": 4, - "valence": 0.962 - }, - { - "track_name": "Too Long", - "track_id": "3zMvotMEQK3xvH01vA9wAP", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2noRn2Aes5aoNVsU6iWThc" - ], - "duration_ms": 600293, - "explicit": false, - "popularity": 54, - "acousticness": 0.00211, - "danceability": 0.692, - "energy": 0.582, - "instrumentalness": 0, - "key": 5, - "liveness": 0.177, - "loudness": -10.164, - "mode": 0, - "speechiness": 0.301, - "tempo": 127.017, - "time_signature": 4, - "valence": 0.513 - } - ], - [ - { - "track_name": "Daftendirekt", - "track_id": "0wrjNnj3QP3K8JuCy91zWB", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 164560, - "explicit": false, - "popularity": 30, - "acousticness": 0.00695, - "danceability": 0.883, - "energy": 0.743, - "instrumentalness": 0.792, - "key": 5, - "liveness": 0.0936, - "loudness": -8.418, - "mode": 0, - "speechiness": 0.162, - "tempo": 111.019, - "time_signature": 4, - "valence": 0.337 - }, - { - "track_name": "WDPK 83.7 FM", - "track_id": "6pfNHtG6QKH1JB9Bm1SsPq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 28333, - "explicit": false, - "popularity": 3, - "acousticness": 0.00492, - "danceability": 0.856, - "energy": 0.569, - "instrumentalness": 0.0353, - "key": 1, - "liveness": 0.474, - "loudness": -5.916, - "mode": 1, - "speechiness": 0.206, - "tempo": 110.943, - "time_signature": 4, - "valence": 0.919 - }, - { - "track_name": "Revolution 909", - "track_id": "1GLVS763ScItK1BRzbpYcs", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 335026, - "explicit": false, - "popularity": 33, - "acousticness": 0.0265, - "danceability": 0.746, - "energy": 0.716, - "instrumentalness": 0.844, - "key": 11, - "liveness": 0.246, - "loudness": -7.918, - "mode": 1, - "speechiness": 0.137, - "tempo": 126.521, - "time_signature": 4, - "valence": 0.828 - }, - { - "track_name": "Da Funk", - "track_id": "4IUkEUQmp2HkJZrf0vUru5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 328680, - "explicit": false, - "popularity": 36, - "acousticness": 0.00196, - "danceability": 0.805, - "energy": 0.699, - "instrumentalness": 0.895, - "key": 0, - "liveness": 0.269, - "loudness": -5.269, - "mode": 0, - "speechiness": 0.0753, - "tempo": 111.215, - "time_signature": 4, - "valence": 0.892 - }, - { - "track_name": "Phoenix", - "track_id": "6NglQcVwf2YSQOyas9YuOk", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 297106, - "explicit": false, - "popularity": 30, - "acousticness": 1.91e-05, - "danceability": 0.804, - "energy": 0.719, - "instrumentalness": 0.926, - "key": 7, - "liveness": 0.0847, - "loudness": -8.207, - "mode": 1, - "speechiness": 0.0836, - "tempo": 126.874, - "time_signature": 4, - "valence": 0.567 - }, - { - "track_name": "Fresh", - "track_id": "4o1Xrjlz2WpNa97kkNXyVh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 244400, - "explicit": false, - "popularity": 30, - "acousticness": 0.268, - "danceability": 0.289, - "energy": 0.953, - "instrumentalness": 0.274, - "key": 1, - "liveness": 0.875, - "loudness": -9.315, - "mode": 1, - "speechiness": 0.645, - "tempo": 126.621, - "time_signature": 4, - "valence": 0.176 - }, - { - "track_name": "Around the World", - "track_id": "1q4poN5PaGvY1RbEC5gl5s", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 429533, - "explicit": false, - "popularity": 34, - "acousticness": 0.00359, - "danceability": 0.956, - "energy": 0.795, - "instrumentalness": 0.889, - "key": 7, - "liveness": 0.0906, - "loudness": -5.311, - "mode": 1, - "speechiness": 0.15, - "tempo": 121.294, - "time_signature": 4, - "valence": 0.839 - }, - { - "track_name": "Rollin' & Scratchin'", - "track_id": "7wWeIUvvfRaNirdlireOuX", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 448626, - "explicit": false, - "popularity": 29, - "acousticness": 0.00112, - "danceability": 0.822, - "energy": 0.791, - "instrumentalness": 0.602, - "key": 1, - "liveness": 0.0565, - "loudness": -4.87, - "mode": 1, - "speechiness": 0.0413, - "tempo": 130.06, - "time_signature": 4, - "valence": 0.21 - }, - { - "track_name": "Teachers", - "track_id": "4UHd9OG8OOPR2JEhXOVJgS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 173493, - "explicit": false, - "popularity": 27, - "acousticness": 0.03, - "danceability": 0.981, - "energy": 0.486, - "instrumentalness": 0.824, - "key": 6, - "liveness": 0.0995, - "loudness": -7.31, - "mode": 1, - "speechiness": 0.25, - "tempo": 123.193, - "time_signature": 4, - "valence": 0.823 - }, - { - "track_name": "High Fidelity", - "track_id": "25oB2tfQWWdGGr5GoKz0S8", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 362466, - "explicit": false, - "popularity": 26, - "acousticness": 0.000996, - "danceability": 0.799, - "energy": 0.66, - "instrumentalness": 0.446, - "key": 11, - "liveness": 0.313, - "loudness": -8.829, - "mode": 0, - "speechiness": 0.175, - "tempo": 125.909, - "time_signature": 4, - "valence": 0.391 - }, - { - "track_name": "Rock'n Roll", - "track_id": "41xqdrOR76ohQ4OeeMe1ZP", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 453866, - "explicit": false, - "popularity": 25, - "acousticness": 0.0169, - "danceability": 0.955, - "energy": 0.899, - "instrumentalness": 0.634, - "key": 1, - "liveness": 0.0642, - "loudness": -7.599, - "mode": 1, - "speechiness": 0.273, - "tempo": 134.937, - "time_signature": 4, - "valence": 0.331 - }, - { - "track_name": "Oh Yeah", - "track_id": "5VIciQgxKg7wyGJtdwYaeK", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 121200, - "explicit": false, - "popularity": 23, - "acousticness": 0.0706, - "danceability": 0.602, - "energy": 0.309, - "instrumentalness": 0.294, - "key": 8, - "liveness": 0.0895, - "loudness": -8.396, - "mode": 1, - "speechiness": 0.352, - "tempo": 176.704, - "time_signature": 5, - "valence": 0.559 - }, - { - "track_name": "Burnin'", - "track_id": "3TukSaT1CQlYuk8Y8FD5Z1", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 414173, - "explicit": false, - "popularity": 25, - "acousticness": 0.192, - "danceability": 0.87, - "energy": 0.875, - "instrumentalness": 0.363, - "key": 6, - "liveness": 0.0804, - "loudness": -8.501, - "mode": 0, - "speechiness": 0.205, - "tempo": 124.298, - "time_signature": 4, - "valence": 0.714 - }, - { - "track_name": "Indo Silver Club", - "track_id": "1Zc0ExmqbvUNCwxpO7iQpy", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 274733, - "explicit": false, - "popularity": 25, - "acousticness": 0.0886, - "danceability": 0.886, - "energy": 0.847, - "instrumentalness": 0.938, - "key": 11, - "liveness": 0.087, - "loudness": -8.297, - "mode": 1, - "speechiness": 0.101, - "tempo": 126.163, - "time_signature": 4, - "valence": 0.439 - }, - { - "track_name": "Alive", - "track_id": "1jmPN5cUQMSrhqmWHixXbv", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 316253, - "explicit": false, - "popularity": 26, - "acousticness": 5.42e-05, - "danceability": 0.723, - "energy": 0.716, - "instrumentalness": 0.904, - "key": 3, - "liveness": 0.072, - "loudness": -6.407, - "mode": 0, - "speechiness": 0.0436, - "tempo": 128.701, - "time_signature": 4, - "valence": 0.0751 - }, - { - "track_name": "Funk Ad", - "track_id": "5x0Si3aykdZzoHd9Uzh7gL", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 51400, - "explicit": false, - "popularity": 22, - "acousticness": 0.00021, - "danceability": 0.724, - "energy": 0.783, - "instrumentalness": 0.49, - "key": 7, - "liveness": 0.295, - "loudness": -8.957, - "mode": 1, - "speechiness": 0.176, - "tempo": 111.833, - "time_signature": 4, - "valence": 0.3 - }, - { - "track_name": "Around the World - I:Cube Remix", - "track_id": "2wJvgawO7sP1wnn8qFOcbc", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2HNNSjjaK20NZ9PDZ2EMwU" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 378786, - "explicit": false, - "popularity": 26, - "acousticness": 0.00199, - "danceability": 0.773, - "energy": 0.843, - "instrumentalness": 0.586, - "key": 1, - "liveness": 0.11, - "loudness": -7.845, - "mode": 1, - "speechiness": 0.0436, - "tempo": 129.028, - "time_signature": 4, - "valence": 0.755 - }, - { - "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", - "track_id": "4SuarAU6lLxIv1kQFD9Qgf", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1HT9k1ZSUL9IczSstOAgWJ", - "31ZNfGVEEcI9CyicPVJQni" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 536093, - "explicit": false, - "popularity": 28, - "acousticness": 0.000608, - "danceability": 0.8, - "energy": 0.934, - "instrumentalness": 0.882, - "key": 1, - "liveness": 0.687, - "loudness": -6.728, - "mode": 0, - "speechiness": 0.0969, - "tempo": 126.233, - "time_signature": 4, - "valence": 0.802 - }, - { - "track_name": "Around the World - Tee's Frozen Sun Mix", - "track_id": "4W10VdilnHOyPs0Z2bk0Ok", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3dE92yGWcrboP1kC5SWyqu" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 477066, - "explicit": false, - "popularity": 22, - "acousticness": 0.00094, - "danceability": 0.647, - "energy": 0.97, - "instrumentalness": 0.2, - "key": 11, - "liveness": 0.9, - "loudness": -7.259, - "mode": 0, - "speechiness": 0.0526, - "tempo": 127.62, - "time_signature": 4, - "valence": 0.497 - }, - { - "track_name": "Around the World - Mellow Mix", - "track_id": "3MERln0wX0uCa8BRSbSxIz", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5Fkj0k7EPUhIsESSIEA9f1" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 471453, - "explicit": false, - "popularity": 31, - "acousticness": 0.000379, - "danceability": 0.856, - "energy": 0.521, - "instrumentalness": 0.911, - "key": 4, - "liveness": 0.103, - "loudness": -8.061, - "mode": 0, - "speechiness": 0.0573, - "tempo": 124.986, - "time_signature": 4, - "valence": 0.778 - }, - { - "track_name": "Burnin' - DJ Sneak Main Mix", - "track_id": "27VUxjFyXj3HUiImMyF7Az", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5He9yPmPv0Du9hASUlTUjr" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 550666, - "explicit": false, - "popularity": 26, - "acousticness": 0.00817, - "danceability": 0.888, - "energy": 0.704, - "instrumentalness": 0.915, - "key": 11, - "liveness": 0.0314, - "loudness": -8.292, - "mode": 0, - "speechiness": 0.125, - "tempo": 128.517, - "time_signature": 4, - "valence": 0.296 - }, - { - "track_name": "Around the World - Kenlou Mix", - "track_id": "4yRhLnDM5WdSP4btzqzNLN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5Fkj0k7EPUhIsESSIEA9f1" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 470986, - "explicit": false, - "popularity": 29, - "acousticness": 0.00575, - "danceability": 0.892, - "energy": 0.484, - "instrumentalness": 0.859, - "key": 7, - "liveness": 0.118, - "loudness": -12.987, - "mode": 1, - "speechiness": 0.0715, - "tempo": 125.066, - "time_signature": 4, - "valence": 0.671 - }, - { - "track_name": "Burnin' - Ian Pooley Cut up Mix", - "track_id": "5mOg5qguKHwzN9vjM8XOYV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1m4GViPjIy4T8Pd0Iz6hRS" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 320800, - "explicit": false, - "popularity": 27, - "acousticness": 0.00115, - "danceability": 0.802, - "energy": 0.947, - "instrumentalness": 0.81, - "key": 9, - "liveness": 0.0441, - "loudness": -6.852, - "mode": 1, - "speechiness": 0.0893, - "tempo": 127.404, - "time_signature": 4, - "valence": 0.921 - }, - { - "track_name": "Around the World - Motorbass Vice Mix", - "track_id": "1DQUhQics4meI85bTnXHH1", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3QqRjNjJX6fPOn72pwXIvN" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 397373, - "explicit": false, - "popularity": 18, - "acousticness": 7.26e-05, - "danceability": 0.906, - "energy": 0.508, - "instrumentalness": 0.77, - "key": 5, - "liveness": 0.112, - "loudness": -9.94, - "mode": 0, - "speechiness": 0.233, - "tempo": 129.888, - "time_signature": 4, - "valence": 0.396 - }, - { - "track_name": "Around the World - M.A.W Remix", - "track_id": "4irrsXxMnNp5vW3fnFLBol", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5Fkj0k7EPUhIsESSIEA9f1" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 563773, - "explicit": false, - "popularity": 17, - "acousticness": 0.000767, - "danceability": 0.807, - "energy": 0.674, - "instrumentalness": 0.924, - "key": 7, - "liveness": 0.587, - "loudness": -7.925, - "mode": 1, - "speechiness": 0.0486, - "tempo": 127.22, - "time_signature": 4, - "valence": 0.749 - }, - { - "track_name": "Burnin' - Slam Mix", - "track_id": "3CYZvYvhv19Uq0NkL0uXwb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3dvQNG65MMzLa0Cosf6Ztq" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 407133, - "explicit": false, - "popularity": 19, - "acousticness": 0.000125, - "danceability": 0.805, - "energy": 0.805, - "instrumentalness": 0.908, - "key": 6, - "liveness": 0.0556, - "loudness": -8.512, - "mode": 0, - "speechiness": 0.0902, - "tempo": 123.596, - "time_signature": 4, - "valence": 0.0691 - }, - { - "track_name": "Around the World - Original Lead On Mix", - "track_id": "2ASfONRGdFOcetBvIeF1Qe", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3dE92yGWcrboP1kC5SWyqu" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 450320, - "explicit": false, - "popularity": 18, - "acousticness": 0.000232, - "danceability": 0.65, - "energy": 0.956, - "instrumentalness": 0.309, - "key": 11, - "liveness": 0.9, - "loudness": -6.867, - "mode": 0, - "speechiness": 0.049, - "tempo": 127.578, - "time_signature": 4, - "valence": 0.589 - }, - { - "track_name": "Burnin' - DJ Sneak Mongowarrier Mix", - "track_id": "1vHSWhEDYIGDTYjx3edz1E", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5He9yPmPv0Du9hASUlTUjr" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 623800, - "explicit": false, - "popularity": 17, - "acousticness": 0.00511, - "danceability": 0.773, - "energy": 0.981, - "instrumentalness": 0.779, - "key": 9, - "liveness": 0.111, - "loudness": -9.409, - "mode": 1, - "speechiness": 0.0863, - "tempo": 126.25, - "time_signature": 4, - "valence": 0.263 - }, - { - "track_name": "Around the World - RAW Dub", - "track_id": "6aXAO47l4zw21V4oWYGqAc", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5Fkj0k7EPUhIsESSIEA9f1" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 414560, - "explicit": false, - "popularity": 17, - "acousticness": 0.00346, - "danceability": 0.825, - "energy": 0.411, - "instrumentalness": 0.911, - "key": 4, - "liveness": 0.0944, - "loudness": -9.282, - "mode": 0, - "speechiness": 0.105, - "tempo": 126.973, - "time_signature": 4, - "valence": 0.433 - }, - { - "track_name": "Teachers - Extended Mix", - "track_id": "0L6O6XtSu0pok4UgFcNZz0", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 353960, - "explicit": false, - "popularity": 20, - "acousticness": 0.0193, - "danceability": 0.972, - "energy": 0.503, - "instrumentalness": 0.892, - "key": 6, - "liveness": 0.0912, - "loudness": -8.665, - "mode": 1, - "speechiness": 0.143, - "tempo": 123.182, - "time_signature": 4, - "valence": 0.789 - }, - { - "track_name": "Revolution 909 - Revolution A Cappella", - "track_id": "6PvNrIpNfEhR4X73Zhehwu", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6JRaPcrT3cMBEmkgSqEPhI" - ], - "duration_ms": 64573, - "explicit": false, - "popularity": 16, - "acousticness": 0.649, - "danceability": 0.805, - "energy": 0.29, - "instrumentalness": 0.000214, - "key": 11, - "liveness": 0.209, - "loudness": -18.058, - "mode": 1, - "speechiness": 0.0885, - "tempo": 126.849, - "time_signature": 4, - "valence": 0.153 - } - ], - [ - { - "track_name": "Daftendirekt", - "track_id": "7fYIXtdOUl8WqXAqQGyIHQ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 164560, - "explicit": false, - "popularity": 47, - "acousticness": 0.00695, - "danceability": 0.883, - "energy": 0.743, - "instrumentalness": 0.796, - "key": 5, - "liveness": 0.0936, - "loudness": -8.418, - "mode": 0, - "speechiness": 0.162, - "tempo": 111.019, - "time_signature": 4, - "valence": 0.336 - }, - { - "track_name": "WDPK 83.7 FM", - "track_id": "7dTWkvPOPgbGuMk4HDxNpY", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 28333, - "explicit": false, - "popularity": 10, - "acousticness": 0.00492, - "danceability": 0.856, - "energy": 0.569, - "instrumentalness": 0.0353, - "key": 1, - "liveness": 0.474, - "loudness": -5.916, - "mode": 1, - "speechiness": 0.206, - "tempo": 110.943, - "time_signature": 4, - "valence": 0.919 - }, - { - "track_name": "Revolution 909", - "track_id": "5pgZpHqfv4TSomtkfGZGrG", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 335026, - "explicit": false, - "popularity": 56, - "acousticness": 0.0265, - "danceability": 0.745, - "energy": 0.716, - "instrumentalness": 0.846, - "key": 11, - "liveness": 0.246, - "loudness": -7.918, - "mode": 1, - "speechiness": 0.136, - "tempo": 126.527, - "time_signature": 4, - "valence": 0.828 - }, - { - "track_name": "Da Funk", - "track_id": "0MyY4WcN7DIfbSmp5yej5z", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 328680, - "explicit": false, - "popularity": 64, - "acousticness": 0.00196, - "danceability": 0.806, - "energy": 0.7, - "instrumentalness": 0.891, - "key": 0, - "liveness": 0.267, - "loudness": -5.269, - "mode": 0, - "speechiness": 0.0752, - "tempo": 111.215, - "time_signature": 4, - "valence": 0.892 - }, - { - "track_name": "Phoenix", - "track_id": "6nQy5XEEEJKu8FE1FS2Wbt", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 297106, - "explicit": false, - "popularity": 44, - "acousticness": 1.91e-05, - "danceability": 0.804, - "energy": 0.719, - "instrumentalness": 0.926, - "key": 7, - "liveness": 0.0847, - "loudness": -8.207, - "mode": 1, - "speechiness": 0.0835, - "tempo": 126.874, - "time_signature": 4, - "valence": 0.569 - }, - { - "track_name": "Fresh", - "track_id": "78H72MElkOY9cRnaudxZFY", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 244400, - "explicit": false, - "popularity": 50, - "acousticness": 0.268, - "danceability": 0.503, - "energy": 0.952, - "instrumentalness": 0.272, - "key": 1, - "liveness": 0.875, - "loudness": -9.308, - "mode": 1, - "speechiness": 0.572, - "tempo": 126.345, - "time_signature": 4, - "valence": 0.174 - }, - { - "track_name": "Around the World", - "track_id": "1pKYYY0dkg23sQQXi0Q5zN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 429533, - "explicit": false, - "popularity": 74, - "acousticness": 0.00356, - "danceability": 0.956, - "energy": 0.795, - "instrumentalness": 0.889, - "key": 7, - "liveness": 0.0906, - "loudness": -5.311, - "mode": 1, - "speechiness": 0.15, - "tempo": 121.294, - "time_signature": 4, - "valence": 0.841 - }, - { - "track_name": "Rollin' & Scratchin'", - "track_id": "6hgBJPTHoDJyxydmtFWHKf", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 448626, - "explicit": false, - "popularity": 46, - "acousticness": 0.00108, - "danceability": 0.822, - "energy": 0.791, - "instrumentalness": 0.621, - "key": 1, - "liveness": 0.0567, - "loudness": -4.87, - "mode": 1, - "speechiness": 0.0414, - "tempo": 130.059, - "time_signature": 4, - "valence": 0.21 - }, - { - "track_name": "Teachers", - "track_id": "4ZdjCuiWBv2weLftWPJ72c", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 173493, - "explicit": false, - "popularity": 43, - "acousticness": 0.03, - "danceability": 0.98, - "energy": 0.486, - "instrumentalness": 0.823, - "key": 6, - "liveness": 0.0995, - "loudness": -7.31, - "mode": 1, - "speechiness": 0.251, - "tempo": 123.206, - "time_signature": 4, - "valence": 0.823 - }, - { - "track_name": "High Fidelity", - "track_id": "63ZAmhkAV6Kaw955ohbEsN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 362466, - "explicit": false, - "popularity": 41, - "acousticness": 0.000996, - "danceability": 0.799, - "energy": 0.66, - "instrumentalness": 0.446, - "key": 11, - "liveness": 0.313, - "loudness": -8.829, - "mode": 0, - "speechiness": 0.175, - "tempo": 125.909, - "time_signature": 4, - "valence": 0.391 - }, - { - "track_name": "Rock'n Roll", - "track_id": "1nluqUxDKnwWyScYVeQHXa", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 453866, - "explicit": false, - "popularity": 40, - "acousticness": 0.0171, - "danceability": 0.955, - "energy": 0.899, - "instrumentalness": 0.64, - "key": 1, - "liveness": 0.0642, - "loudness": -7.599, - "mode": 1, - "speechiness": 0.273, - "tempo": 134.941, - "time_signature": 4, - "valence": 0.331 - }, - { - "track_name": "Oh Yeah", - "track_id": "3Pm4jgrXCu0W7gTqyrlR4F", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 121200, - "explicit": false, - "popularity": 39, - "acousticness": 0.0706, - "danceability": 0.602, - "energy": 0.309, - "instrumentalness": 0.294, - "key": 8, - "liveness": 0.0895, - "loudness": -8.396, - "mode": 1, - "speechiness": 0.352, - "tempo": 176.704, - "time_signature": 5, - "valence": 0.559 - }, - { - "track_name": "Burnin'", - "track_id": "6nSOhDfZOulWp0pnEHFrnn", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 414173, - "explicit": false, - "popularity": 43, - "acousticness": 0.192, - "danceability": 0.87, - "energy": 0.875, - "instrumentalness": 0.357, - "key": 6, - "liveness": 0.0804, - "loudness": -8.501, - "mode": 0, - "speechiness": 0.205, - "tempo": 124.298, - "time_signature": 4, - "valence": 0.715 - }, - { - "track_name": "Indo Silver Club", - "track_id": "4jF8GAMRCOenL17cNnBDI0", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 274733, - "explicit": false, - "popularity": 41, - "acousticness": 0.0888, - "danceability": 0.886, - "energy": 0.847, - "instrumentalness": 0.937, - "key": 11, - "liveness": 0.087, - "loudness": -8.296, - "mode": 1, - "speechiness": 0.1, - "tempo": 126.163, - "time_signature": 4, - "valence": 0.443 - }, - { - "track_name": "Alive", - "track_id": "1PH5Es89c1cENU8WVuWwbp", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 316253, - "explicit": false, - "popularity": 44, - "acousticness": 5.42e-05, - "danceability": 0.723, - "energy": 0.716, - "instrumentalness": 0.905, - "key": 3, - "liveness": 0.072, - "loudness": -6.407, - "mode": 0, - "speechiness": 0.0437, - "tempo": 128.701, - "time_signature": 4, - "valence": 0.0748 - }, - { - "track_name": "Funk Ad", - "track_id": "0cjavaamK4gxP9iZYw5I2X", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5uRdvUR7xCnHmUW8n64n9y" - ], - "duration_ms": 51400, - "explicit": false, - "popularity": 37, - "acousticness": 0.00021, - "danceability": 0.724, - "energy": 0.783, - "instrumentalness": 0.49, - "key": 7, - "liveness": 0.295, - "loudness": -8.958, - "mode": 1, - "speechiness": 0.176, - "tempo": 111.833, - "time_signature": 4, - "valence": 0.3 - } - ], - [ - { - "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", - "track_id": "6rMuHJjLnEQpBuc0TSkeFv", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1rAv1GhTQ2rmG94p9lU3rB", - "4nUBBtLtzqZGpdiynTJbYJ" - ], - "albums": [ - "3YcIVKVDqiVvPobsotuhgx" - ], - "duration_ms": 239213, - "explicit": false, - "popularity": 54, - "acousticness": 0.11, - "danceability": 0.636, - "energy": 0.635, - "instrumentalness": 0.643, - "key": 1, - "liveness": 0.61, - "loudness": -10.532, - "mode": 1, - "speechiness": 0.0534, - "tempo": 110.031, - "time_signature": 4, - "valence": 0.192 - } - ], - [ - { - "track_name": "GLBTM (Studio Outtakes)", - "track_id": "02CsNQg3AKP7OdDmzzDWc5", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1gDbMxDY14mf9OZzpQfON0" - ], - "duration_ms": 381666, - "explicit": false, - "popularity": 40, - "acousticness": 0.00337, - "danceability": 0.764, - "energy": 0.559, - "instrumentalness": 0.82, - "key": 9, - "liveness": 0.068, - "loudness": -10.856, - "mode": 0, - "speechiness": 0.0344, - "tempo": 119.004, - "time_signature": 4, - "valence": 0.346 - }, - { - "track_name": "GLBTM (Studio Outtakes) [Edit]", - "track_id": "6gLkmtXYQHitabChjGfiqy", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1gDbMxDY14mf9OZzpQfON0" - ], - "duration_ms": 158790, - "explicit": false, - "popularity": 41, - "acousticness": 0.00121, - "danceability": 0.7, - "energy": 0.68, - "instrumentalness": 0.794, - "key": 9, - "liveness": 0.31, - "loudness": -10.386, - "mode": 0, - "speechiness": 0.0273, - "tempo": 119.038, - "time_signature": 4, - "valence": 0.334 - }, - { - "track_name": "Give Life Back to Music", - "track_id": "10fbCavbRqZcQmZNIgK5Ti", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1gDbMxDY14mf9OZzpQfON0" - ], - "duration_ms": 275386, - "explicit": false, - "popularity": 35, - "acousticness": 0.00292, - "danceability": 0.788, - "energy": 0.616, - "instrumentalness": 0.548, - "key": 9, - "liveness": 0.0952, - "loudness": -10.671, - "mode": 0, - "speechiness": 0.0337, - "tempo": 119.038, - "time_signature": 4, - "valence": 0.696 - } - ], - [ - { - "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", - "track_id": "4VCDNR9AYxBZuGRfrhvnT4", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "0URgTo9T2POPAXgjqeVHVv" - ], - "duration_ms": 497146, - "explicit": false, - "popularity": 32, - "acousticness": 0.0227, - "danceability": 0.916, - "energy": 0.406, - "instrumentalness": 2.93e-05, - "key": 0, - "liveness": 0.33, - "loudness": -12.322, - "mode": 1, - "speechiness": 0.227, - "tempo": 130.026, - "time_signature": 4, - "valence": 0.611 - }, - { - "track_name": "Fragments of Time (feat. Todd Edwards)", - "track_id": "7J9Vmy8RXPFY88reizJEwa", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "6MFopqejpmTUUZlcRmGzgg" - ], - "albums": [ - "0URgTo9T2POPAXgjqeVHVv" - ], - "duration_ms": 279773, - "explicit": false, - "popularity": 38, - "acousticness": 0.0413, - "danceability": 0.807, - "energy": 0.51, - "instrumentalness": 0.115, - "key": 0, - "liveness": 0.104, - "loudness": -9.729, - "mode": 1, - "speechiness": 0.0433, - "tempo": 130.118, - "time_signature": 4, - "valence": 0.961 - } - ], - [ - { - "track_name": "Derezzed - From TRON: Legacy/Avicii \"So Amazing Mix\"", - "track_id": "2ewHAevJOazIhkzgLxb6Bh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3ML85bvNeLUHa32Hq704qn" - ], - "albums": [ - "3wDNqlA3VDqLKyeTlHKO8P" - ], - "duration_ms": 303920, - "explicit": false, - "popularity": 25, - "acousticness": 0.0562, - "danceability": 0.734, - "energy": 0.757, - "instrumentalness": 0.0762, - "key": 7, - "liveness": 0.283, - "loudness": -3.661, - "mode": 0, - "speechiness": 0.163, - "tempo": 127.993, - "time_signature": 4, - "valence": 0.158 - } - ], - [ - { - "track_name": "Get Lucky - Daft Punk Remix", - "track_id": "78NwNb2BPO7OKDYYRWB1WT", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz", - "584LILU27vO7VKK6YhZ1Na" - ], - "albums": [ - "4IjfJlYFVmkPH5WQdFuyS8" - ], - "duration_ms": 632693, - "explicit": false, - "popularity": 36, - "acousticness": 0.0267, - "danceability": 0.821, - "energy": 0.793, - "instrumentalness": 1.37e-05, - "key": 6, - "liveness": 0.0751, - "loudness": -9.003, - "mode": 0, - "speechiness": 0.0391, - "tempo": 116.009, - "time_signature": 4, - "valence": 0.912 - } - ], - [ - { - "track_name": "Get Lucky (Radio Edit) [feat. Pharrell Williams and Nile Rodgers]", - "track_id": "2Foc5Q5nqNiosCNqttzHof", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "2RdwBSPQiwcmiDo9kixcl8", - "3yDIp0kaq9EFKe07X1X2rz" - ], - "albums": [ - "2ePFIvZKMe8zefATp9ofFA" - ], - "duration_ms": 248413, - "explicit": false, - "popularity": 82, - "acousticness": 0.0426, - "danceability": 0.794, - "energy": 0.811, - "instrumentalness": 1.07e-06, - "key": 6, - "liveness": 0.101, - "loudness": -8.966, - "mode": 0, - "speechiness": 0.038, - "tempo": 116.047, - "time_signature": 4, - "valence": 0.862 - } - ], - [ - { - "track_name": "Technologic - Radio Edit [Radio Edit]", - "track_id": "6qIqFdJ8gIXphYO5GkXR1l", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "5QXkaMax7wx3eI65FUSboS" - ], - "duration_ms": 166586, - "explicit": false, - "popularity": 34, - "acousticness": 0.000356, - "danceability": 0.791, - "energy": 0.56, - "instrumentalness": 1.05e-06, - "key": 9, - "liveness": 0.107, - "loudness": -5.774, - "mode": 1, - "speechiness": 0.236, - "tempo": 127.458, - "time_signature": 4, - "valence": 0.712 - } - ], - [ - { - "track_name": "Robot Rock - Edit [Edit]", - "track_id": "2gvSbIHvBKebtleZClEC9L", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6nwye4zd7OY5FmMKZRMiDl" - ], - "duration_ms": 187733, - "explicit": false, - "popularity": 43, - "acousticness": 1.08e-05, - "danceability": 0.628, - "energy": 0.72, - "instrumentalness": 0.771, - "key": 7, - "liveness": 0.0332, - "loudness": -6.052, - "mode": 1, - "speechiness": 0.0598, - "tempo": 111.942, - "time_signature": 4, - "valence": 0.514 - } - ], - [ - { - "track_name": "Human After All - Medley", - "track_id": "6aRRLvPFcmKD1aGVU04xGi", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4KmFHj9bLSp2sWeYILTYJz" - ], - "duration_ms": 199880, - "explicit": false, - "popularity": 20, - "acousticness": 0.000378, - "danceability": 0.373, - "energy": 0.813, - "instrumentalness": 0.321, - "key": 7, - "liveness": 0.0624, - "loudness": -5.443, - "mode": 1, - "speechiness": 0.175, - "tempo": 131.437, - "time_signature": 4, - "valence": 0.392 - } - ], - [ - { - "track_name": "Something About Us (Love Theme from Interstella 5555)", - "track_id": "17PwbYemqwgiOFg0boOFru", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2CvZLTWcP7LMVV4GkE67xH" - ], - "duration_ms": 134933, - "explicit": false, - "popularity": 36, - "acousticness": 0.295, - "danceability": 0.889, - "energy": 0.423, - "instrumentalness": 0.449, - "key": 9, - "liveness": 0.084, - "loudness": -9.759, - "mode": 0, - "speechiness": 0.0456, - "tempo": 99.935, - "time_signature": 4, - "valence": 0.81 - }, - { - "track_name": "Veridis Quo", - "track_id": "6fSXNDuKucAxQGPz1CHUrg", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2CvZLTWcP7LMVV4GkE67xH" - ], - "duration_ms": 345186, - "explicit": false, - "popularity": 36, - "acousticness": 0.479, - "danceability": 0.605, - "energy": 0.687, - "instrumentalness": 0.949, - "key": 9, - "liveness": 0.104, - "loudness": -13.928, - "mode": 0, - "speechiness": 0.045, - "tempo": 106.896, - "time_signature": 4, - "valence": 0.12 - }, - { - "track_name": "Voyager - Dominique Torti's Wild Style Edit", - "track_id": "5bQxXxULHDbS8EaHlIIzQW", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1FeMiF3aRrgJz69y01jiwt" - ], - "albums": [ - "2CvZLTWcP7LMVV4GkE67xH" - ], - "duration_ms": 392733, - "explicit": false, - "popularity": 29, - "acousticness": 0.0934, - "danceability": 0.694, - "energy": 0.671, - "instrumentalness": 0.779, - "key": 4, - "liveness": 0.127, - "loudness": -11.236, - "mode": 0, - "speechiness": 0.0552, - "tempo": 119.896, - "time_signature": 4, - "valence": 0.179 - }, - { - "track_name": "Something About Us", - "track_id": "2dVNTxLs6VIPMyvVgZ6pGP", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2CvZLTWcP7LMVV4GkE67xH" - ], - "duration_ms": 232666, - "explicit": false, - "popularity": 35, - "acousticness": 0.44, - "danceability": 0.875, - "energy": 0.475, - "instrumentalness": 0.72, - "key": 9, - "liveness": 0.046, - "loudness": -12.673, - "mode": 0, - "speechiness": 0.0986, - "tempo": 99.958, - "time_signature": 4, - "valence": 0.384 - } - ], - [ - { - "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", - "track_id": "2De3sEoBWy7HYz4vdIzClL", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3XiVwyHlgGP6XxTdYdDuVI" - ], - "duration_ms": 214240, - "explicit": false, - "popularity": 34, - "acousticness": 0.000945, - "danceability": 0.537, - "energy": 0.841, - "instrumentalness": 0.023, - "key": 5, - "liveness": 0.944, - "loudness": -10.405, - "mode": 0, - "speechiness": 0.0921, - "tempo": 126.078, - "time_signature": 4, - "valence": 0.522 - }, - { - "track_name": "Harder, Better, Faster, Stronger - Alive Extended 2007", - "track_id": "30NTB3ooCZlzJPv13pihQh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3XiVwyHlgGP6XxTdYdDuVI" - ], - "duration_ms": 283080, - "explicit": false, - "popularity": 35, - "acousticness": 0.00239, - "danceability": 0.549, - "energy": 0.825, - "instrumentalness": 0.0281, - "key": 5, - "liveness": 0.896, - "loudness": -10.713, - "mode": 0, - "speechiness": 0.0748, - "tempo": 126.134, - "time_signature": 4, - "valence": 0.459 - } - ], - [ - { - "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", - "track_id": "7z2Xur2O6Dy9mh8oSauXa2", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "1MmZZolm7iTNArajmWJ6gb" - ], - "duration_ms": 204560, - "explicit": false, - "popularity": 48, - "acousticness": 0.000922, - "danceability": 0.538, - "energy": 0.837, - "instrumentalness": 0.0137, - "key": 5, - "liveness": 0.929, - "loudness": -10.314, - "mode": 0, - "speechiness": 0.097, - "tempo": 126.095, - "time_signature": 4, - "valence": 0.561 - } - ], - [ - { - "track_name": "Harder, Better, Faster, Stronger", - "track_id": "2cJz1loJp5EZM6shmQpLZN", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "0A88p2r8PWnWGvWjzAnUrV" - ], - "duration_ms": 226413, - "explicit": false, - "popularity": 44, - "acousticness": 0.0392, - "danceability": 0.814, - "energy": 0.73, - "instrumentalness": 0.00333, - "key": 6, - "liveness": 0.343, - "loudness": -8.876, - "mode": 0, - "speechiness": 0.149, - "tempo": 123.494, - "time_signature": 4, - "valence": 0.646 - }, - { - "track_name": "Harder, Better, Faster, Stronger - Breakers Break Remix", - "track_id": "3v7KM7bDxBOT1b0vO4Uwra", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1FeMiF3aRrgJz69y01jiwt" - ], - "albums": [ - "0A88p2r8PWnWGvWjzAnUrV" - ], - "duration_ms": 278680, - "explicit": false, - "popularity": 24, - "acousticness": 0.00221, - "danceability": 0.794, - "energy": 0.858, - "instrumentalness": 0.00459, - "key": 7, - "liveness": 0.22, - "loudness": -8.129, - "mode": 1, - "speechiness": 0.0648, - "tempo": 123.695, - "time_signature": 4, - "valence": 0.805 - }, - { - "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", - "track_id": "7hfXlSioLg6uhTGc171inR", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "0KuF7reCTOZwV7YJnHQqgr" - ], - "albums": [ - "0A88p2r8PWnWGvWjzAnUrV" - ], - "duration_ms": 312506, - "explicit": false, - "popularity": 20, - "acousticness": 0.608, - "danceability": 0.85, - "energy": 0.74, - "instrumentalness": 0.000782, - "key": 11, - "liveness": 0.302, - "loudness": -6.327, - "mode": 0, - "speechiness": 0.0552, - "tempo": 123.451, - "time_signature": 4, - "valence": 0.907 - }, - { - "track_name": "Harder, Better, Faster, Stronger - Pete Heller's Stylus Mix", - "track_id": "6ArDOAsJAGK6aJu8McFRcq", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "5BiJE5QAwptqJobHRpBLFf" - ], - "albums": [ - "0A88p2r8PWnWGvWjzAnUrV" - ], - "duration_ms": 554880, - "explicit": false, - "popularity": 18, - "acousticness": 2.54e-05, - "danceability": 0.742, - "energy": 0.904, - "instrumentalness": 0.79, - "key": 11, - "liveness": 0.0836, - "loudness": -8.057, - "mode": 0, - "speechiness": 0.0491, - "tempo": 128.04, - "time_signature": 4, - "valence": 0.702 - } - ], - [ - { - "track_name": "Digital Love - Radio Edit [Radio Edit]", - "track_id": "5D06AhoBSkwDbgkuALoIot", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3UvcQMj1oRf9D3bPz4P1Zf" - ], - "duration_ms": 240826, - "explicit": false, - "popularity": 34, - "acousticness": 0.0595, - "danceability": 0.65, - "energy": 0.691, - "instrumentalness": 0.791, - "key": 9, - "liveness": 0.137, - "loudness": -8.304, - "mode": 1, - "speechiness": 0.0325, - "tempo": 124.716, - "time_signature": 4, - "valence": 0.658 - }, - { - "track_name": "Digital Love", - "track_id": "2g3f7VYFeceaDgjyj1dDF3", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3UvcQMj1oRf9D3bPz4P1Zf" - ], - "duration_ms": 301373, - "explicit": false, - "popularity": 31, - "acousticness": 0.0481, - "danceability": 0.644, - "energy": 0.664, - "instrumentalness": 0.862, - "key": 9, - "liveness": 0.342, - "loudness": -8.398, - "mode": 1, - "speechiness": 0.0333, - "tempo": 124.726, - "time_signature": 4, - "valence": 0.53 - }, - { - "track_name": "Digital Dub", - "track_id": "4I30FykkDte2yxDbngKtjj", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "3UvcQMj1oRf9D3bPz4P1Zf" - ], - "duration_ms": 299960, - "explicit": false, - "popularity": 21, - "acousticness": 0.0383, - "danceability": 0.628, - "energy": 0.664, - "instrumentalness": 0.968, - "key": 9, - "liveness": 0.378, - "loudness": -8.496, - "mode": 1, - "speechiness": 0.0305, - "tempo": 124.703, - "time_signature": 4, - "valence": 0.521 - } - ], - [ - { - "track_name": "Aerodynamic", - "track_id": "5o5O70lyFH1sTDNyktHbTA", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6a34lYgmrwXe9jChS9ARZd" - ], - "duration_ms": 212546, - "explicit": false, - "popularity": 31, - "acousticness": 0.328, - "danceability": 0.624, - "energy": 0.911, - "instrumentalness": 0.861, - "key": 7, - "liveness": 0.0727, - "loudness": -7.482, - "mode": 1, - "speechiness": 0.0524, - "tempo": 122.902, - "time_signature": 4, - "valence": 0.135 - }, - { - "track_name": "Aerodynamite", - "track_id": "1Z1lRAs3IkySfpJrf9J1VW", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "6a34lYgmrwXe9jChS9ARZd" - ], - "duration_ms": 468427, - "explicit": false, - "popularity": 26, - "acousticness": 5.44e-05, - "danceability": 0.566, - "energy": 0.978, - "instrumentalness": 0.958, - "key": 9, - "liveness": 0.0297, - "loudness": -8.274, - "mode": 0, - "speechiness": 0.178, - "tempo": 121.989, - "time_signature": 4, - "valence": 0.106 - } - ], - [ - { - "track_name": "One More Time - Radio Edit [Short Radio Edit]", - "track_id": "2Uy6EhQXAYkXA6MohPgjpV", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "0bHuuhpKn42ktYbyTIeumE" - ], - "duration_ms": 235466, - "explicit": false, - "popularity": 58, - "acousticness": 0.0348, - "danceability": 0.648, - "energy": 0.671, - "instrumentalness": 0, - "key": 2, - "liveness": 0.376, - "loudness": -8.49, - "mode": 1, - "speechiness": 0.104, - "tempo": 122.891, - "time_signature": 4, - "valence": 0.533 - }, - { - "track_name": "One More Time - Radio Edit", - "track_id": "5F0fiSkDxZL5V3SlnTNhKh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "0bHuuhpKn42ktYbyTIeumE" - ], - "duration_ms": 320293, - "explicit": false, - "popularity": 39, - "acousticness": 0.018, - "danceability": 0.608, - "energy": 0.695, - "instrumentalness": 0, - "key": 2, - "liveness": 0.339, - "loudness": -8.598, - "mode": 1, - "speechiness": 0.134, - "tempo": 122.824, - "time_signature": 4, - "valence": 0.476 - }, - { - "track_name": "One More Time - 12 Mix", - "track_id": "5P0cYWH6mpkdrmsgo5e1fe", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "0bHuuhpKn42ktYbyTIeumE" - ], - "duration_ms": 480040, - "explicit": false, - "popularity": 37, - "acousticness": 0.00391, - "danceability": 0.667, - "energy": 0.736, - "instrumentalness": 3.14e-05, - "key": 2, - "liveness": 0.342, - "loudness": -8.463, - "mode": 1, - "speechiness": 0.129, - "tempo": 122.904, - "time_signature": 4, - "valence": 0.522 - } - ], - [ - { - "track_name": "Revolution 909 - Radio Edit [Radio Edit]", - "track_id": "4ru9Flq2yjmjTLRXUbdHNJ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2Xjx9rNWxYrLeBHOIwZV9r" - ], - "duration_ms": 226200, - "explicit": false, - "popularity": 25, - "acousticness": 0.0112, - "danceability": 0.773, - "energy": 0.729, - "instrumentalness": 0.796, - "key": 6, - "liveness": 0.347, - "loudness": -7.566, - "mode": 0, - "speechiness": 0.134, - "tempo": 126.525, - "time_signature": 4, - "valence": 0.849 - }, - { - "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", - "track_id": "7mC59tsgCysbQ1H3W3c4xZ", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1HT9k1ZSUL9IczSstOAgWJ", - "31ZNfGVEEcI9CyicPVJQni" - ], - "albums": [ - "2Xjx9rNWxYrLeBHOIwZV9r" - ], - "duration_ms": 536093, - "explicit": false, - "popularity": 18, - "acousticness": 0.00061, - "danceability": 0.801, - "energy": 0.934, - "instrumentalness": 0.881, - "key": 1, - "liveness": 0.691, - "loudness": -6.728, - "mode": 0, - "speechiness": 0.0969, - "tempo": 126.233, - "time_signature": 4, - "valence": 0.799 - }, - { - "track_name": "Revolution 909 - Revolution A Cappella", - "track_id": "5Te0VxSSZQm5A9xvZqTNKE", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2Xjx9rNWxYrLeBHOIwZV9r" - ], - "duration_ms": 64573, - "explicit": false, - "popularity": 12, - "acousticness": 0.649, - "danceability": 0.805, - "energy": 0.29, - "instrumentalness": 0.000214, - "key": 11, - "liveness": 0.209, - "loudness": -18.058, - "mode": 1, - "speechiness": 0.0885, - "tempo": 126.849, - "time_signature": 4, - "valence": 0.153 - }, - { - "track_name": "Revolution 909", - "track_id": "5MWXqasXXDT9n1wdTC0vH1", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "2Xjx9rNWxYrLeBHOIwZV9r" - ], - "duration_ms": 335026, - "explicit": false, - "popularity": 23, - "acousticness": 0.0265, - "danceability": 0.745, - "energy": 0.716, - "instrumentalness": 0.846, - "key": 11, - "liveness": 0.246, - "loudness": -7.918, - "mode": 1, - "speechiness": 0.136, - "tempo": 126.527, - "time_signature": 4, - "valence": 0.828 - } - ], - [ - { - "track_name": "Burnin' - Edit Version [Edit Version]", - "track_id": "71dkXboU04Jp5oaqkjK5xd", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4tzfn6ulHYqCdPHkvOWQvZ" - ], - "duration_ms": 228293, - "explicit": false, - "popularity": 28, - "acousticness": 0.195, - "danceability": 0.83, - "energy": 0.884, - "instrumentalness": 0.235, - "key": 6, - "liveness": 0.105, - "loudness": -8.338, - "mode": 0, - "speechiness": 0.246, - "tempo": 124.304, - "time_signature": 4, - "valence": 0.735 - }, - { - "track_name": "Burnin' - Ian Pooley Cut up Mix", - "track_id": "6w4DJaCo6gQOftTr1DBQtX", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "1m4GViPjIy4T8Pd0Iz6hRS" - ], - "albums": [ - "4tzfn6ulHYqCdPHkvOWQvZ" - ], - "duration_ms": 320800, - "explicit": false, - "popularity": 19, - "acousticness": 0.00115, - "danceability": 0.802, - "energy": 0.947, - "instrumentalness": 0.81, - "key": 9, - "liveness": 0.0441, - "loudness": -6.852, - "mode": 1, - "speechiness": 0.0894, - "tempo": 127.404, - "time_signature": 4, - "valence": 0.92 - }, - { - "track_name": "Burnin' - Slam Mix", - "track_id": "7FFzJPMJz2GeAJpp8FySrS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3dvQNG65MMzLa0Cosf6Ztq" - ], - "albums": [ - "4tzfn6ulHYqCdPHkvOWQvZ" - ], - "duration_ms": 407133, - "explicit": false, - "popularity": 16, - "acousticness": 0.000125, - "danceability": 0.805, - "energy": 0.806, - "instrumentalness": 0.906, - "key": 6, - "liveness": 0.0556, - "loudness": -8.512, - "mode": 0, - "speechiness": 0.0898, - "tempo": 123.597, - "time_signature": 4, - "valence": 0.0692 - }, - { - "track_name": "Burnin'", - "track_id": "7fumss9IkI26dBu2e85JSo", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4tzfn6ulHYqCdPHkvOWQvZ" - ], - "duration_ms": 414173, - "explicit": false, - "popularity": 20, - "acousticness": 0.192, - "danceability": 0.87, - "energy": 0.875, - "instrumentalness": 0.357, - "key": 6, - "liveness": 0.0804, - "loudness": -8.501, - "mode": 0, - "speechiness": 0.205, - "tempo": 124.298, - "time_signature": 4, - "valence": 0.715 - } - ], - [ - { - "track_name": "Around the World - Radio Edit [Radio Edit]", - "track_id": "6XKvPNWlmnN0gJejCKm1k7", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4TaKGJaappn4hWMuLdwUEF" - ], - "duration_ms": 241466, - "explicit": false, - "popularity": 52, - "acousticness": 0.00417, - "danceability": 0.934, - "energy": 0.76, - "instrumentalness": 0.906, - "key": 7, - "liveness": 0.0656, - "loudness": -5.549, - "mode": 1, - "speechiness": 0.148, - "tempo": 121.302, - "time_signature": 4, - "valence": 0.864 - }, - { - "track_name": "Around the World", - "track_id": "4NTnsmgHxlu92IlJqFwvoz", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4TaKGJaappn4hWMuLdwUEF" - ], - "duration_ms": 429533, - "explicit": false, - "popularity": 36, - "acousticness": 0.00356, - "danceability": 0.956, - "energy": 0.795, - "instrumentalness": 0.889, - "key": 7, - "liveness": 0.0906, - "loudness": -5.311, - "mode": 1, - "speechiness": 0.15, - "tempo": 121.294, - "time_signature": 4, - "valence": 0.841 - }, - { - "track_name": "Teachers - Extended Mix", - "track_id": "77ergXeMeeb3wyvxFOBfZb", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4TaKGJaappn4hWMuLdwUEF" - ], - "duration_ms": 353960, - "explicit": false, - "popularity": 22, - "acousticness": 0.0193, - "danceability": 0.972, - "energy": 0.503, - "instrumentalness": 0.892, - "key": 6, - "liveness": 0.0912, - "loudness": -8.665, - "mode": 1, - "speechiness": 0.143, - "tempo": 123.182, - "time_signature": 4, - "valence": 0.789 - }, - { - "track_name": "Around the World - Motorbass Vice Mix", - "track_id": "258dUXRcX7Qt4TFp81cN2S", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi", - "3QqRjNjJX6fPOn72pwXIvN" - ], - "albums": [ - "4TaKGJaappn4hWMuLdwUEF" - ], - "duration_ms": 397373, - "explicit": false, - "popularity": 18, - "acousticness": 7.26e-05, - "danceability": 0.906, - "energy": 0.508, - "instrumentalness": 0.768, - "key": 5, - "liveness": 0.112, - "loudness": -9.94, - "mode": 0, - "speechiness": 0.234, - "tempo": 129.887, - "time_signature": 4, - "valence": 0.395 - } - ], - [ - { - "track_name": "Da Funk - Radio Edit", - "track_id": "1IBxtCOTtdU9StLpNK6wZh", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4iPei0ERbLxTwUd888Hv5G" - ], - "duration_ms": 229826, - "explicit": false, - "popularity": 35, - "acousticness": 0.00332, - "danceability": 0.795, - "energy": 0.696, - "instrumentalness": 0.863, - "key": 0, - "liveness": 0.328, - "loudness": -5.829, - "mode": 0, - "speechiness": 0.0698, - "tempo": 111.214, - "time_signature": 4, - "valence": 0.928 - }, - { - "track_name": "Musique", - "track_id": "5N3FZ8eZ2mWwSWaJRAGHfS", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4iPei0ERbLxTwUd888Hv5G" - ], - "duration_ms": 413600, - "explicit": false, - "popularity": 39, - "acousticness": 0.00164, - "danceability": 0.821, - "energy": 0.885, - "instrumentalness": 0.848, - "key": 11, - "liveness": 0.0851, - "loudness": -6.996, - "mode": 1, - "speechiness": 0.0811, - "tempo": 117.206, - "time_signature": 4, - "valence": 0.832 - }, - { - "track_name": "Da Funk", - "track_id": "1r0dZYmg4dIJsKdUx2xFma", - "artists": [ - "4tZwfgrHOc3mvqYlEYSvVi" - ], - "albums": [ - "4iPei0ERbLxTwUd888Hv5G" - ], - "duration_ms": 334440, - "explicit": false, - "popularity": 33, - "acousticness": 0.00217, - "danceability": 0.8, - "energy": 0.692, - "instrumentalness": 0.861, - "key": 0, - "liveness": 0.227, - "loudness": -5.315, - "mode": 0, - "speechiness": 0.0746, - "tempo": 111.226, - "time_signature": 4, - "valence": 0.896 - } - ] + { + "track_name": "Give Life Back to Music (Drumless Edition)", + "track_id": "3HmKTOTV4sxvQocdkDdb0u", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 275520, + "explicit": false, + "popularity": 54, + "acousticness": 0.124, + "danceability": 0.549, + "energy": 0.481, + "instrumentalness": 0.42, + "key": 9, + "liveness": 0.135, + "loudness": -11.245, + "mode": 0, + "speechiness": 0.0595, + "tempo": 118.954, + "time_signature": 4, + "valence": 0.802 + }, + { + "track_name": "The Game of Love (Drumless Edition)", + "track_id": "5ji1dPNLh6c9mvK7XoNOjM", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 322306, + "explicit": false, + "popularity": 52, + "acousticness": 0.932, + "danceability": 0.575, + "energy": 0.396, + "instrumentalness": 0.194, + "key": 9, + "liveness": 0.107, + "loudness": -14.872, + "mode": 0, + "speechiness": 0.0548, + "tempo": 179.903, + "time_signature": 4, + "valence": 0.378 + }, + { + "track_name": "Giorgio by Moroder (Drumless Edition)", + "track_id": "30rdWWtFS20ROidDcitfHf", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 545520, + "explicit": false, + "popularity": 52, + "acousticness": 0.272, + "danceability": 0.589, + "energy": 0.538, + "instrumentalness": 0.623, + "key": 9, + "liveness": 0.384, + "loudness": -13.064, + "mode": 0, + "speechiness": 0.0519, + "tempo": 113.075, + "time_signature": 4, + "valence": 0.552 + }, + { + "track_name": "Within (Drumless Edition)", + "track_id": "28ghWbRd3ZlaeYdKklfQDJ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 228493, + "explicit": false, + "popularity": 52, + "acousticness": 0.947, + "danceability": 0.592, + "energy": 0.196, + "instrumentalness": 0.488, + "key": 10, + "liveness": 0.118, + "loudness": -16.833, + "mode": 0, + "speechiness": 0.0355, + "tempo": 110.11, + "time_signature": 4, + "valence": 0.049 + }, + { + "track_name": "Instant Crush (Drumless Edition) (feat. Julian Casablancas)", + "track_id": "2jmKcUO1mjqU4uypiDvpny", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1rAv1GhTQ2rmG94p9lU3rB" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 337400, + "explicit": false, + "popularity": 54, + "acousticness": 0.498, + "danceability": 0.487, + "energy": 0.505, + "instrumentalness": 0.779, + "key": 10, + "liveness": 0.0865, + "loudness": -10.184, + "mode": 0, + "speechiness": 0.0305, + "tempo": 137.191, + "time_signature": 5, + "valence": 0.202 + }, + { + "track_name": "Lose Yourself to Dance (Drumless Edition) (feat. Pharrell Williams)", + "track_id": "0kad6OnJfgIEplpjja5jfl", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 354400, + "explicit": false, + "popularity": 53, + "acousticness": 0.385, + "danceability": 0.671, + "energy": 0.725, + "instrumentalness": 0.000845, + "key": 10, + "liveness": 0.0784, + "loudness": -7.587, + "mode": 0, + "speechiness": 0.0621, + "tempo": 199.844, + "time_signature": 4, + "valence": 0.912 + }, + { + "track_name": "Touch (Drumless Edition) (feat. Paul Williams)", + "track_id": "64xYUSFAQhkXL9bWZfvgDV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3f626JSVauIhTQgatsFcs4" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 499813, + "explicit": false, + "popularity": 50, + "acousticness": 0.717, + "danceability": 0.208, + "energy": 0.338, + "instrumentalness": 0.159, + "key": 6, + "liveness": 0.0811, + "loudness": -13.77, + "mode": 0, + "speechiness": 0.0571, + "tempo": 69.515, + "time_signature": 3, + "valence": 0.159 + }, + { + "track_name": "Get Lucky (Drumless Edition) (feat. Pharrell Williams and Nile Rodgers)", + "track_id": "2jyjdujFPnzqtCr3229yls", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 369746, + "explicit": false, + "popularity": 53, + "acousticness": 0.358, + "danceability": 0.854, + "energy": 0.578, + "instrumentalness": 0, + "key": 6, + "liveness": 0.0861, + "loudness": -10.602, + "mode": 0, + "speechiness": 0.0452, + "tempo": 116.052, + "time_signature": 4, + "valence": 0.845 + }, + { + "track_name": "Beyond (Drumless Edition)", + "track_id": "4MeKGdl7CImLdWxvjB9lTa", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 290333, + "explicit": false, + "popularity": 59, + "acousticness": 0.861, + "danceability": 0.432, + "energy": 0.442, + "instrumentalness": 0.757, + "key": 8, + "liveness": 0.383, + "loudness": -12.891, + "mode": 0, + "speechiness": 0.0351, + "tempo": 103.998, + "time_signature": 4, + "valence": 0.716 + }, + { + "track_name": "Motherboard (Drumless Edition)", + "track_id": "444SlMZ9mcxTHiB7J1H6IF", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 341853, + "explicit": false, + "popularity": 53, + "acousticness": 0.906, + "danceability": 0.511, + "energy": 0.453, + "instrumentalness": 0.894, + "key": 4, + "liveness": 0.663, + "loudness": -17.414, + "mode": 0, + "speechiness": 0.0371, + "tempo": 102.902, + "time_signature": 4, + "valence": 0.13 + }, + { + "track_name": "Fragments of Time (Drumless Edition) (feat. Todd Edwards)", + "track_id": "6XRP3yOrS9tgLVwIOL5Oit", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 279920, + "explicit": false, + "popularity": 48, + "acousticness": 0.719, + "danceability": 0.864, + "energy": 0.347, + "instrumentalness": 0.00281, + "key": 0, + "liveness": 0.0864, + "loudness": -11.208, + "mode": 1, + "speechiness": 0.037, + "tempo": 129.984, + "time_signature": 4, + "valence": 0.733 + }, + { + "track_name": "Doin' it Right (Drumless Edition) (feat. Panda Bear)", + "track_id": "4wUZgNANjM4GqDJSOJkytV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1R84VlXnFFULOsWWV8IrCQ" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 251426, + "explicit": false, + "popularity": 48, + "acousticness": 0.925, + "danceability": 0.875, + "energy": 0.313, + "instrumentalness": 0, + "key": 6, + "liveness": 0.554, + "loudness": -8.919, + "mode": 1, + "speechiness": 0.0979, + "tempo": 89.019, + "time_signature": 4, + "valence": 0.361 + }, + { + "track_name": "Contact (Drumless Edition)", + "track_id": "3RCYGIVLV33JCNwzMVyWMI", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5AFf68gtvNgGLZarsyEEL8" + ], + "duration_ms": 383506, + "explicit": false, + "popularity": 47, + "acousticness": 0.176, + "danceability": 0.301, + "energy": 0.691, + "instrumentalness": 0.896, + "key": 11, + "liveness": 0.0741, + "loudness": -9.232, + "mode": 0, + "speechiness": 0.0464, + "tempo": 124.159, + "time_signature": 4, + "valence": 0.132 + }, + { + "track_name": "Give Life Back to Music", + "track_id": "5aPrFctv3WJZyJ99Ld7leT", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 275386, + "explicit": false, + "popularity": 49, + "acousticness": 0.00292, + "danceability": 0.788, + "energy": 0.616, + "instrumentalness": 0.548, + "key": 9, + "liveness": 0.0952, + "loudness": -10.671, + "mode": 0, + "speechiness": 0.0337, + "tempo": 119.038, + "time_signature": 4, + "valence": 0.696 + }, + { + "track_name": "The Game of Love", + "track_id": "3wOQ7foaNccbOM5kbtqwkx", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 322146, + "explicit": false, + "popularity": 46, + "acousticness": 0.825, + "danceability": 0.712, + "energy": 0.5, + "instrumentalness": 0.315, + "key": 9, + "liveness": 0.106, + "loudness": -11.948, + "mode": 0, + "speechiness": 0.0338, + "tempo": 90.038, + "time_signature": 4, + "valence": 0.68 + }, + { + "track_name": "Giorgio by Moroder", + "track_id": "2eXJRM1lQJ591AStNA26Yx", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 544626, + "explicit": false, + "popularity": 48, + "acousticness": 0.0689, + "danceability": 0.735, + "energy": 0.682, + "instrumentalness": 0.531, + "key": 9, + "liveness": 0.381, + "loudness": -10.42, + "mode": 0, + "speechiness": 0.0502, + "tempo": 113.203, + "time_signature": 4, + "valence": 0.408 + }, + { + "track_name": "Within", + "track_id": "3LWZv4XgPP958j9a3gTYuq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 228506, + "explicit": false, + "popularity": 47, + "acousticness": 0.895, + "danceability": 0.702, + "energy": 0.298, + "instrumentalness": 0.473, + "key": 10, + "liveness": 0.103, + "loudness": -14.12, + "mode": 0, + "speechiness": 0.0315, + "tempo": 110.116, + "time_signature": 4, + "valence": 0.0634 + }, + { + "track_name": "Instant Crush (feat. Julian Casablancas)", + "track_id": "0f8GgsD1lDtRBAS5GEDKgg", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1rAv1GhTQ2rmG94p9lU3rB" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 337560, + "explicit": false, + "popularity": 51, + "acousticness": 0.0422, + "danceability": 0.775, + "energy": 0.585, + "instrumentalness": 0.61, + "key": 10, + "liveness": 0.077, + "loudness": -9.516, + "mode": 0, + "speechiness": 0.027, + "tempo": 109.942, + "time_signature": 4, + "valence": 0.526 + }, + { + "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", + "track_id": "5VnKPeawtH2h8fmqAvBDqY", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 353893, + "explicit": false, + "popularity": 48, + "acousticness": 0.0852, + "danceability": 0.832, + "energy": 0.659, + "instrumentalness": 0.00113, + "key": 10, + "liveness": 0.0753, + "loudness": -7.828, + "mode": 0, + "speechiness": 0.0568, + "tempo": 100.163, + "time_signature": 4, + "valence": 0.675 + }, + { + "track_name": "Touch (feat. Paul Williams)", + "track_id": "3hFObHqnsUQ2PCA2UpVFu8", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3f626JSVauIhTQgatsFcs4" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 498960, + "explicit": false, + "popularity": 46, + "acousticness": 0.475, + "danceability": 0.291, + "energy": 0.412, + "instrumentalness": 0.0832, + "key": 6, + "liveness": 0.079, + "loudness": -12.659, + "mode": 0, + "speechiness": 0.0457, + "tempo": 90.526, + "time_signature": 4, + "valence": 0.119 + }, + { + "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", + "track_id": "2olIQt0rL0hOHau1SJ4xf2", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 369626, + "explicit": false, + "popularity": 49, + "acousticness": 0.0378, + "danceability": 0.81, + "energy": 0.793, + "instrumentalness": 1.77e-06, + "key": 6, + "liveness": 0.072, + "loudness": -9.404, + "mode": 0, + "speechiness": 0.0403, + "tempo": 116.05, + "time_signature": 4, + "valence": 0.863 + }, + { + "track_name": "Beyond", + "track_id": "3UB3z6fgDJw1A122BKc4sP", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 290240, + "explicit": false, + "popularity": 44, + "acousticness": 0.367, + "danceability": 0.625, + "energy": 0.648, + "instrumentalness": 0.491, + "key": 8, + "liveness": 0.368, + "loudness": -11.33, + "mode": 0, + "speechiness": 0.0343, + "tempo": 104.025, + "time_signature": 4, + "valence": 0.785 + }, + { + "track_name": "Motherboard", + "track_id": "3mEWSc9vWFXGvpgEEvxuX7", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 341653, + "explicit": false, + "popularity": 43, + "acousticness": 0.512, + "danceability": 0.548, + "energy": 0.707, + "instrumentalness": 0.926, + "key": 4, + "liveness": 0.105, + "loudness": -14.902, + "mode": 0, + "speechiness": 0.0352, + "tempo": 103.012, + "time_signature": 4, + "valence": 0.283 + }, + { + "track_name": "Fragments of Time (feat. Todd Edwards)", + "track_id": "5gYw8hl2Xp4aGLndo5cXWh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 279773, + "explicit": false, + "popularity": 45, + "acousticness": 0.0413, + "danceability": 0.807, + "energy": 0.51, + "instrumentalness": 0.115, + "key": 0, + "liveness": 0.104, + "loudness": -9.729, + "mode": 1, + "speechiness": 0.0433, + "tempo": 130.118, + "time_signature": 4, + "valence": 0.961 + }, + { + "track_name": "Doin' it Right (feat. Panda Bear)", + "track_id": "1OQP3Wil7orelGkRCFU1cQ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1R84VlXnFFULOsWWV8IrCQ" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 251293, + "explicit": false, + "popularity": 45, + "acousticness": 0.388, + "danceability": 0.804, + "energy": 0.451, + "instrumentalness": 2.08e-05, + "key": 6, + "liveness": 0.0924, + "loudness": -8.207, + "mode": 1, + "speechiness": 0.0948, + "tempo": 178.05, + "time_signature": 4, + "valence": 0.19 + }, + { + "track_name": "Contact", + "track_id": "5pHSnKStU4XLB6y03b1c1W", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 383626, + "explicit": false, + "popularity": 42, + "acousticness": 0.00271, + "danceability": 0.415, + "energy": 0.757, + "instrumentalness": 0.732, + "key": 11, + "liveness": 0.0695, + "loudness": -8.423, + "mode": 0, + "speechiness": 0.0496, + "tempo": 123.933, + "time_signature": 4, + "valence": 0.086 + }, + { + "track_name": "Horizon Ouverture", + "track_id": "1kOPoZDgQean1ecxJT0GIT", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 127693, + "explicit": false, + "popularity": 46, + "acousticness": 0.94, + "danceability": 0.146, + "energy": 0.135, + "instrumentalness": 0.845, + "key": 4, + "liveness": 0.172, + "loudness": -17.494, + "mode": 0, + "speechiness": 0.0367, + "tempo": 84.855, + "time_signature": 3, + "valence": 0.0392 + }, + { + "track_name": "Horizon (Japan CD)", + "track_id": "6iZRqJjpbOVEv4mFTpqg1d", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 262560, + "explicit": false, + "popularity": 53, + "acousticness": 0.0289, + "danceability": 0.551, + "energy": 0.274, + "instrumentalness": 0.925, + "key": 4, + "liveness": 0.112, + "loudness": -15.865, + "mode": 0, + "speechiness": 0.0282, + "tempo": 110.181, + "time_signature": 4, + "valence": 0.129 + }, + { + "track_name": "GLBTM (Studio Outtakes)", + "track_id": "6QxktTtoOGxB8vrD7LQjm5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 381666, + "explicit": false, + "popularity": 45, + "acousticness": 0.00325, + "danceability": 0.764, + "energy": 0.558, + "instrumentalness": 0.815, + "key": 9, + "liveness": 0.0677, + "loudness": -10.856, + "mode": 0, + "speechiness": 0.0342, + "tempo": 119.004, + "time_signature": 4, + "valence": 0.349 + }, + { + "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", + "track_id": "4r4fX4NZIqVIhGyDvERp0l", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1rAv1GhTQ2rmG94p9lU3rB", + "4nUBBtLtzqZGpdiynTJbYJ" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 239213, + "explicit": false, + "popularity": 63, + "acousticness": 0.11, + "danceability": 0.636, + "energy": 0.635, + "instrumentalness": 0.643, + "key": 1, + "liveness": 0.61, + "loudness": -10.532, + "mode": 1, + "speechiness": 0.0534, + "tempo": 110.031, + "time_signature": 4, + "valence": 0.192 + }, + { + "track_name": "GL (Early Take) [feat. Pharrell Williams and Nile Rodgers]", + "track_id": "4v1pwKLYGnW6RMLzdp3x4k", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 32893, + "explicit": false, + "popularity": 47, + "acousticness": 0.328, + "danceability": 0.704, + "energy": 0.664, + "instrumentalness": 0.76, + "key": 6, + "liveness": 0.075, + "loudness": -12.664, + "mode": 0, + "speechiness": 0.0605, + "tempo": 116.069, + "time_signature": 4, + "valence": 0.371 + }, + { + "track_name": "Prime (2012 Unfinished)", + "track_id": "1iAsoOFV16Ax6OFKMq8sld", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 286400, + "explicit": false, + "popularity": 48, + "acousticness": 0.273, + "danceability": 0.485, + "energy": 0.75, + "instrumentalness": 0.946, + "key": 9, + "liveness": 0.672, + "loudness": -10.847, + "mode": 0, + "speechiness": 0.0348, + "tempo": 117.013, + "time_signature": 4, + "valence": 0.431 + }, + { + "track_name": "LYTD (Vocoder Tests) [feat. Pharrell Williams]", + "track_id": "3PgYTZHsdWp4C21bQ8zxvM", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 128440, + "explicit": false, + "popularity": 48, + "acousticness": 0.218, + "danceability": 0.827, + "energy": 0.473, + "instrumentalness": 0.000121, + "key": 10, + "liveness": 0.106, + "loudness": -9.411, + "mode": 0, + "speechiness": 0.0541, + "tempo": 100.017, + "time_signature": 4, + "valence": 0.719 + }, + { + "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", + "track_id": "6JiQWzHFGbnW9aY3yUHO4b", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 497146, + "explicit": false, + "popularity": 40, + "acousticness": 0.0227, + "danceability": 0.916, + "energy": 0.406, + "instrumentalness": 2.93e-05, + "key": 0, + "liveness": 0.33, + "loudness": -12.322, + "mode": 1, + "speechiness": 0.227, + "tempo": 130.026, + "time_signature": 4, + "valence": 0.611 + }, + { + "track_name": "Touch (2021 Epilogue) [feat. Paul Williams]", + "track_id": "7oMbGRDGVDIb6ZeVcq7LfW", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3f626JSVauIhTQgatsFcs4" + ], + "albums": [ + "4mAhdh996uW5SnnFKXUmC0" + ], + "duration_ms": 179986, + "explicit": false, + "popularity": 45, + "acousticness": 0.0586, + "danceability": 0.341, + "energy": 0.362, + "instrumentalness": 0.854, + "key": 6, + "liveness": 0.273, + "loudness": -13.173, + "mode": 0, + "speechiness": 0.0296, + "tempo": 90.229, + "time_signature": 4, + "valence": 0.088 + }, + { + "track_name": "Give Life Back to Music", + "track_id": "0dEIca2nhcxDUV8C5QkPYb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 275386, + "explicit": false, + "popularity": 64, + "acousticness": 0.00286, + "danceability": 0.788, + "energy": 0.616, + "instrumentalness": 0.549, + "key": 9, + "liveness": 0.0952, + "loudness": -10.671, + "mode": 0, + "speechiness": 0.0337, + "tempo": 119.037, + "time_signature": 4, + "valence": 0.696 + }, + { + "track_name": "The Game of Love", + "track_id": "3ctALmweZBapfBdFiIVpji", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 322146, + "explicit": false, + "popularity": 59, + "acousticness": 0.825, + "danceability": 0.712, + "energy": 0.5, + "instrumentalness": 0.314, + "key": 9, + "liveness": 0.106, + "loudness": -11.948, + "mode": 0, + "speechiness": 0.0338, + "tempo": 90.039, + "time_signature": 4, + "valence": 0.682 + }, + { + "track_name": "Giorgio by Moroder", + "track_id": "0oks4FnzhNp5QPTZtoet7c", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 544626, + "explicit": false, + "popularity": 65, + "acousticness": 0.0692, + "danceability": 0.74, + "energy": 0.682, + "instrumentalness": 0.53, + "key": 9, + "liveness": 0.381, + "loudness": -10.42, + "mode": 0, + "speechiness": 0.0504, + "tempo": 113.201, + "time_signature": 4, + "valence": 0.41 + }, + { + "track_name": "Within", + "track_id": "7Bxv0WL7UC6WwQpk9TzdMJ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 228506, + "explicit": false, + "popularity": 59, + "acousticness": 0.894, + "danceability": 0.702, + "energy": 0.297, + "instrumentalness": 0.485, + "key": 10, + "liveness": 0.103, + "loudness": -14.116, + "mode": 0, + "speechiness": 0.0317, + "tempo": 110.116, + "time_signature": 4, + "valence": 0.0676 + }, + { + "track_name": "Instant Crush (feat. Julian Casablancas)", + "track_id": "2cGxRwrMyEAp8dEbuZaVv6", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1rAv1GhTQ2rmG94p9lU3rB" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 337560, + "explicit": false, + "popularity": 77, + "acousticness": 0.0422, + "danceability": 0.775, + "energy": 0.585, + "instrumentalness": 0.619, + "key": 10, + "liveness": 0.077, + "loudness": -9.516, + "mode": 0, + "speechiness": 0.0271, + "tempo": 109.942, + "time_signature": 4, + "valence": 0.518 + }, + { + "track_name": "Lose Yourself to Dance (feat. Pharrell Williams)", + "track_id": "5CMjjywI0eZMixPeqNd75R", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 353893, + "explicit": false, + "popularity": 70, + "acousticness": 0.0839, + "danceability": 0.832, + "energy": 0.659, + "instrumentalness": 0.00114, + "key": 10, + "liveness": 0.0753, + "loudness": -7.828, + "mode": 0, + "speechiness": 0.057, + "tempo": 100.163, + "time_signature": 4, + "valence": 0.674 + }, + { + "track_name": "Touch (feat. Paul Williams)", + "track_id": "7oaEjLP2dTJLJsITbAxTOz", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3f626JSVauIhTQgatsFcs4" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 498960, + "explicit": false, + "popularity": 60, + "acousticness": 0.477, + "danceability": 0.29, + "energy": 0.412, + "instrumentalness": 0.0839, + "key": 6, + "liveness": 0.079, + "loudness": -12.659, + "mode": 0, + "speechiness": 0.0458, + "tempo": 90.539, + "time_signature": 4, + "valence": 0.12 + }, + { + "track_name": "Get Lucky (feat. Pharrell Williams and Nile Rodgers)", + "track_id": "69kOkLUCkxIZYexIgSG8rq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 369626, + "explicit": false, + "popularity": 75, + "acousticness": 0.0378, + "danceability": 0.81, + "energy": 0.793, + "instrumentalness": 1.77e-06, + "key": 6, + "liveness": 0.072, + "loudness": -9.404, + "mode": 0, + "speechiness": 0.0403, + "tempo": 116.05, + "time_signature": 4, + "valence": 0.863 + }, + { + "track_name": "Beyond", + "track_id": "0k1xMUwn9sb7bZiqdT9ygx", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 290240, + "explicit": false, + "popularity": 57, + "acousticness": 0.367, + "danceability": 0.716, + "energy": 0.648, + "instrumentalness": 0.485, + "key": 8, + "liveness": 0.368, + "loudness": -11.33, + "mode": 0, + "speechiness": 0.0337, + "tempo": 104.022, + "time_signature": 4, + "valence": 0.789 + }, + { + "track_name": "Motherboard", + "track_id": "79koEJRtKOOGJ0VSAF3FMk", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 341653, + "explicit": false, + "popularity": 55, + "acousticness": 0.512, + "danceability": 0.548, + "energy": 0.707, + "instrumentalness": 0.922, + "key": 4, + "liveness": 0.105, + "loudness": -14.902, + "mode": 0, + "speechiness": 0.0352, + "tempo": 103.009, + "time_signature": 4, + "valence": 0.284 + }, + { + "track_name": "Fragments of Time (feat. Todd Edwards)", + "track_id": "0IedgQjjJ8Ad4B3UDQ5Lyn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 279773, + "explicit": false, + "popularity": 62, + "acousticness": 0.041, + "danceability": 0.807, + "energy": 0.51, + "instrumentalness": 0.115, + "key": 0, + "liveness": 0.104, + "loudness": -9.729, + "mode": 1, + "speechiness": 0.0433, + "tempo": 130.118, + "time_signature": 4, + "valence": 0.961 + }, + { + "track_name": "Doin' it Right (feat. Panda Bear)", + "track_id": "36c4JohayB9qd64eidQMBi", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1R84VlXnFFULOsWWV8IrCQ" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 251293, + "explicit": false, + "popularity": 63, + "acousticness": 0.388, + "danceability": 0.804, + "energy": 0.451, + "instrumentalness": 2.17e-05, + "key": 6, + "liveness": 0.0924, + "loudness": -8.207, + "mode": 1, + "speechiness": 0.0949, + "tempo": 178.061, + "time_signature": 4, + "valence": 0.19 + }, + { + "track_name": "Contact", + "track_id": "2KHRENHQzTIQ001nlP9Gdc", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4m2880jivSbbyEGAKfITCa" + ], + "duration_ms": 383626, + "explicit": false, + "popularity": 55, + "acousticness": 0.00282, + "danceability": 0.4, + "energy": 0.756, + "instrumentalness": 0.753, + "key": 11, + "liveness": 0.0695, + "loudness": -8.423, + "mode": 0, + "speechiness": 0.0492, + "tempo": 123.828, + "time_signature": 4, + "valence": 0.0924 + }, + { + "track_name": "Episode 1, Giorgio Moroder", + "track_id": "4l2bO887Yauqos4LwkCwBm", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 473506, + "explicit": false, + "popularity": 25, + "acousticness": 0.506, + "danceability": 0.717, + "energy": 0.382, + "instrumentalness": 0, + "key": 9, + "liveness": 0.242, + "loudness": -13.752, + "mode": 1, + "speechiness": 0.64, + "tempo": 116.632, + "time_signature": 4, + "valence": 0.622 + }, + { + "track_name": "Episode 2, Todd Edwards", + "track_id": "3K6HXNtxo1A2eCthCzrwaS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 458493, + "explicit": false, + "popularity": 20, + "acousticness": 0.424, + "danceability": 0.723, + "energy": 0.389, + "instrumentalness": 0, + "key": 9, + "liveness": 0.183, + "loudness": -13.204, + "mode": 1, + "speechiness": 0.8, + "tempo": 118.413, + "time_signature": 3, + "valence": 0.624 + }, + { + "track_name": "Episode 3, Nile Rodgers", + "track_id": "2fJp2bDmhG62vlmUpuWjxb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 453200, + "explicit": false, + "popularity": 19, + "acousticness": 0.359, + "danceability": 0.707, + "energy": 0.515, + "instrumentalness": 0, + "key": 6, + "liveness": 0.237, + "loudness": -12.299, + "mode": 0, + "speechiness": 0.772, + "tempo": 115.171, + "time_signature": 4, + "valence": 0.654 + }, + { + "track_name": "Episode 4, Pharrell Williams", + "track_id": "5pZHN9b6KrXlUC5Dt3FA0O", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 422826, + "explicit": false, + "popularity": 20, + "acousticness": 0.297, + "danceability": 0.635, + "energy": 0.476, + "instrumentalness": 0, + "key": 6, + "liveness": 0.181, + "loudness": -13.942, + "mode": 0, + "speechiness": 0.446, + "tempo": 116.154, + "time_signature": 4, + "valence": 0.6 + }, + { + "track_name": "Episode 5, Panda Bear", + "track_id": "4I2apNr2XWqSo2UdEFwUsv", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 457813, + "explicit": false, + "popularity": 18, + "acousticness": 0.313, + "danceability": 0.679, + "energy": 0.377, + "instrumentalness": 0, + "key": 2, + "liveness": 0.163, + "loudness": -14.144, + "mode": 1, + "speechiness": 0.553, + "tempo": 116.597, + "time_signature": 4, + "valence": 0.586 + }, + { + "track_name": "Episode 6, Chilly Gonzales", + "track_id": "6TOFKxiVogOtLKEBGMIFX7", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 516466, + "explicit": false, + "popularity": 17, + "acousticness": 0.666, + "danceability": 0.573, + "energy": 0.442, + "instrumentalness": 0, + "key": 7, + "liveness": 0.23, + "loudness": -13.044, + "mode": 1, + "speechiness": 0.664, + "tempo": 80.7, + "time_signature": 3, + "valence": 0.55 + }, + { + "track_name": "Episode 7, DJ Falcon", + "track_id": "40DD7ZKO1urSddN6HhMfuh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 485933, + "explicit": false, + "popularity": 16, + "acousticness": 0.752, + "danceability": 0.689, + "energy": 0.394, + "instrumentalness": 0, + "key": 9, + "liveness": 0.259, + "loudness": -10.859, + "mode": 1, + "speechiness": 0.768, + "tempo": 112.787, + "time_signature": 4, + "valence": 0.666 + }, + { + "track_name": "Episode 8, Paul Williams", + "track_id": "4TgBZlDIwm4kagFvqnw08R", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3QbWxiYTlTCLjHYgrgMCfU" + ], + "duration_ms": 449320, + "explicit": false, + "popularity": 16, + "acousticness": 0.798, + "danceability": 0.718, + "energy": 0.388, + "instrumentalness": 0, + "key": 9, + "liveness": 0.263, + "loudness": -12.546, + "mode": 1, + "speechiness": 0.833, + "tempo": 123.655, + "time_signature": 4, + "valence": 0.661 + }, + { + "track_name": "Derezzed - Remixed by The Glitch Mob", + "track_id": "4lteJuSjb9Jt9W1W7PIU2U", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3a9qv6NLHnsVxJUtKOMHvD" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 262240, + "explicit": false, + "popularity": 49, + "acousticness": 0.0569, + "danceability": 0.518, + "energy": 0.527, + "instrumentalness": 0.00263, + "key": 8, + "liveness": 0.107, + "loudness": -7.684, + "mode": 1, + "speechiness": 0.0687, + "tempo": 96.995, + "time_signature": 4, + "valence": 0.213 + }, + { + "track_name": "Fall - Remixed by M83 VS Big Black Delta", + "track_id": "66uVqkmHAc0MBUzoPhIypN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4CecgT3PfTiMzdO3pFCDNP", + "63MQldklfxkjYDoUE4Tppz", + "2TXpVEw5FbzDh93tLoDm0i" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 234986, + "explicit": false, + "popularity": 43, + "acousticness": 0.00141, + "danceability": 0.373, + "energy": 0.841, + "instrumentalness": 0.642, + "key": 4, + "liveness": 0.342, + "loudness": -6.475, + "mode": 0, + "speechiness": 0.0614, + "tempo": 89.926, + "time_signature": 4, + "valence": 0.164 + }, + { + "track_name": "The Grid - Remixed by The Crystal Method", + "track_id": "4OEnpg5ubhg6OQ4M2ZjtsL", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5eKLa1xyHLq8ERWmT1CRHj" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 267786, + "explicit": false, + "popularity": 41, + "acousticness": 0.0283, + "danceability": 0.634, + "energy": 0.798, + "instrumentalness": 0.546, + "key": 1, + "liveness": 0.1, + "loudness": -6.86, + "mode": 1, + "speechiness": 0.0607, + "tempo": 125.011, + "time_signature": 4, + "valence": 0.494 + }, + { + "track_name": "Adagio for TRON - Remixed by Teddybears", + "track_id": "2EyK6JBWqftJlxAuqd0Dsq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3gqv1kgivAc92KnUm4elKv" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 334346, + "explicit": false, + "popularity": 39, + "acousticness": 0.00531, + "danceability": 0.741, + "energy": 0.806, + "instrumentalness": 0.783, + "key": 1, + "liveness": 0.133, + "loudness": -6.443, + "mode": 0, + "speechiness": 0.0371, + "tempo": 126.967, + "time_signature": 4, + "valence": 0.248 + }, + { + "track_name": "The Son of Flynn - Remixed by Ki:Theory", + "track_id": "1TT6gRprLQ5vSWgoWpyKfR", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1mB4aweE1XGdjbFVFC8i5m" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 291506, + "explicit": false, + "popularity": 38, + "acousticness": 0.0175, + "danceability": 0.431, + "energy": 0.955, + "instrumentalness": 0.693, + "key": 7, + "liveness": 0.164, + "loudness": -5.601, + "mode": 0, + "speechiness": 0.0361, + "tempo": 106.011, + "time_signature": 4, + "valence": 0.282 + }, + { + "track_name": "C.L.U. - Remixed by Paul Oakenfold", + "track_id": "6hEvTmmvby9ZTkSdfmPW3m", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5MO2kbaGGA2a8kL4c9qqHq" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 275266, + "explicit": false, + "popularity": 36, + "acousticness": 0.000132, + "danceability": 0.595, + "energy": 0.605, + "instrumentalness": 0.802, + "key": 6, + "liveness": 0.181, + "loudness": -6.746, + "mode": 0, + "speechiness": 0.031, + "tempo": 130.019, + "time_signature": 4, + "valence": 0.163 + }, + { + "track_name": "The Son of Flynn - Remixed by Moby", + "track_id": "03uOJUuuTgaFFI1Efal1no", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3OsRAKCvk37zwYcnzRf5XF" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 392293, + "explicit": false, + "popularity": 40, + "acousticness": 0.543, + "danceability": 0.621, + "energy": 0.853, + "instrumentalness": 0.912, + "key": 7, + "liveness": 0.423, + "loudness": -7.504, + "mode": 0, + "speechiness": 0.0311, + "tempo": 105.997, + "time_signature": 4, + "valence": 0.2 + }, + { + "track_name": "End of Line - Remixed by Boys Noize", + "track_id": "3YYnfKM02WkygOwg6ozfrL", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "62k5LKMhymqlDNo2DWOvvv" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 340186, + "explicit": false, + "popularity": 36, + "acousticness": 0.00244, + "danceability": 0.602, + "energy": 0.879, + "instrumentalness": 0.931, + "key": 9, + "liveness": 0.108, + "loudness": -6.703, + "mode": 0, + "speechiness": 0.107, + "tempo": 122.995, + "time_signature": 4, + "valence": 0.354 + }, + { + "track_name": "Rinzler - Remixed by Kaskade", + "track_id": "2jFLd9OdNcLsblpv4fDTRn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6TQj5BFPooTa08A7pk8AQ1" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 412440, + "explicit": false, + "popularity": 35, + "acousticness": 0.000704, + "danceability": 0.597, + "energy": 0.814, + "instrumentalness": 0.889, + "key": 11, + "liveness": 0.124, + "loudness": -6.992, + "mode": 0, + "speechiness": 0.0528, + "tempo": 128.002, + "time_signature": 4, + "valence": 0.396 + }, + { + "track_name": "Encom Part 2 - Remixed by Com Truise", + "track_id": "3SL3UavpjRKNMM9UVlE9Bx", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2wouN3QXejYa5tKetYdcVX" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 292093, + "explicit": false, + "popularity": 36, + "acousticness": 0.0084, + "danceability": 0.488, + "energy": 0.934, + "instrumentalness": 0.815, + "key": 7, + "liveness": 0.153, + "loudness": -7.189, + "mode": 0, + "speechiness": 0.0535, + "tempo": 165.98, + "time_signature": 4, + "valence": 0.266 + }, + { + "track_name": "End of Line - Remixed by Photek", + "track_id": "2UBYw2qf9PkvoKQ610ocft", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3hXDMlrPegHRO0zUvBsRSI" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 318720, + "explicit": false, + "popularity": 42, + "acousticness": 0.00105, + "danceability": 0.581, + "energy": 0.806, + "instrumentalness": 0.00461, + "key": 11, + "liveness": 0.216, + "loudness": -4.555, + "mode": 0, + "speechiness": 0.0417, + "tempo": 98.006, + "time_signature": 4, + "valence": 0.528 + }, + { + "track_name": "Arena - Remixed by The Japanese Popstars", + "track_id": "7irNlzUSPNgCDtEyQuS3lm", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5F8v5xSIGtfukNxq0Jqgwh" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 367720, + "explicit": false, + "popularity": 32, + "acousticness": 8.91e-05, + "danceability": 0.517, + "energy": 0.796, + "instrumentalness": 0.877, + "key": 10, + "liveness": 0.111, + "loudness": -6.212, + "mode": 0, + "speechiness": 0.0433, + "tempo": 124.99, + "time_signature": 4, + "valence": 0.292 + }, + { + "track_name": "Derezzed - Remixed by Avicii", + "track_id": "1rn6JIHBuBZiwvA57jeoOB", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1vCWHaC5f2uS3yhpwWbIA6" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 303946, + "explicit": false, + "popularity": 41, + "acousticness": 0.124, + "danceability": 0.712, + "energy": 0.725, + "instrumentalness": 0.834, + "key": 7, + "liveness": 0.283, + "loudness": -7.317, + "mode": 0, + "speechiness": 0.104, + "tempo": 127.985, + "time_signature": 4, + "valence": 0.156 + }, + { + "track_name": "Solar Sailer - Remixed by Pretty Lights", + "track_id": "4OgB6TRmIGBRT4NoFxxIQd", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4iVhFmG8YCCEHANGeUUS9q" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 272853, + "explicit": false, + "popularity": 36, + "acousticness": 0.026, + "danceability": 0.363, + "energy": 0.733, + "instrumentalness": 0.472, + "key": 3, + "liveness": 0.247, + "loudness": -8.478, + "mode": 0, + "speechiness": 0.208, + "tempo": 95.803, + "time_signature": 5, + "valence": 0.406 + }, + { + "track_name": "TRON Legacy (End Titles) - Remixed by Sander Kleinenberg", + "track_id": "1Nv1h7ANN9E4rAjLP4OfgA", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3CfH3WZPzbk5mNDWXpGIy6" + ], + "albums": [ + "382ObEPsp2rxGrnsizN5TX" + ], + "duration_ms": 304466, + "explicit": false, + "popularity": 33, + "acousticness": 0.00288, + "danceability": 0.69, + "energy": 0.912, + "instrumentalness": 0.389, + "key": 1, + "liveness": 0.338, + "loudness": -4.101, + "mode": 1, + "speechiness": 0.0485, + "tempo": 124.018, + "time_signature": 4, + "valence": 0.601 + }, + { + "track_name": "Overture", + "track_id": "4uXQXq2AH6mAB8gvTzNUab", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 148006, + "explicit": false, + "popularity": 49, + "acousticness": 0.856, + "danceability": 0.163, + "energy": 0.055, + "instrumentalness": 0.954, + "key": 1, + "liveness": 0.128, + "loudness": -14.79, + "mode": 1, + "speechiness": 0.04, + "tempo": 71.682, + "time_signature": 3, + "valence": 0.0364 + }, + { + "track_name": "The Grid", + "track_id": "2tRWMCijEFsGPDxBgHxHre", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 96739, + "explicit": false, + "popularity": 53, + "acousticness": 0.307, + "danceability": 0.556, + "energy": 0.53, + "instrumentalness": 0.22, + "key": 1, + "liveness": 0.333, + "loudness": -13.527, + "mode": 1, + "speechiness": 0.0387, + "tempo": 102.018, + "time_signature": 4, + "valence": 0.0645 + }, + { + "track_name": "The Son of Flynn", + "track_id": "3zL0LAsSh3dTO73dSOKWkr", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 95226, + "explicit": false, + "popularity": 56, + "acousticness": 0.896, + "danceability": 0.539, + "energy": 0.777, + "instrumentalness": 0.912, + "key": 0, + "liveness": 0.222, + "loudness": -17.645, + "mode": 0, + "speechiness": 0.0535, + "tempo": 105.989, + "time_signature": 4, + "valence": 0.022 + }, + { + "track_name": "Recognizer", + "track_id": "6dooKqgWKBVwQLLarxJPDM", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 157719, + "explicit": false, + "popularity": 52, + "acousticness": 0.484, + "danceability": 0.579, + "energy": 0.534, + "instrumentalness": 0.547, + "key": 1, + "liveness": 0.108, + "loudness": -14.585, + "mode": 1, + "speechiness": 0.0391, + "tempo": 104.011, + "time_signature": 4, + "valence": 0.0768 + }, + { + "track_name": "Armory", + "track_id": "6NbukMzsdx888nymIiWKlV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 122975, + "explicit": false, + "popularity": 48, + "acousticness": 0.677, + "danceability": 0.393, + "energy": 0.0554, + "instrumentalness": 0.927, + "key": 5, + "liveness": 0.116, + "loudness": -23.97, + "mode": 0, + "speechiness": 0.038, + "tempo": 96.013, + "time_signature": 4, + "valence": 0.0327 + }, + { + "track_name": "Arena", + "track_id": "4csD9dmdLHnarNyu1wG8Iv", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 93236, + "explicit": false, + "popularity": 51, + "acousticness": 0.0181, + "danceability": 0.168, + "energy": 0.411, + "instrumentalness": 0.972, + "key": 3, + "liveness": 0.0702, + "loudness": -13.573, + "mode": 1, + "speechiness": 0.037, + "tempo": 99.991, + "time_signature": 4, + "valence": 0.101 + }, + { + "track_name": "Rinzler", + "track_id": "70RkgofUfQHLl2FT2Mx5zq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 137635, + "explicit": false, + "popularity": 51, + "acousticness": 0.483, + "danceability": 0.498, + "energy": 0.62, + "instrumentalness": 0.813, + "key": 9, + "liveness": 0.0947, + "loudness": -14.651, + "mode": 1, + "speechiness": 0.0477, + "tempo": 90.046, + "time_signature": 4, + "valence": 0.0348 + }, + { + "track_name": "The Game Has Changed", + "track_id": "1LaCW0R8Q7oIY3tKtDgZOw", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 205474, + "explicit": false, + "popularity": 50, + "acousticness": 0.442, + "danceability": 0.542, + "energy": 0.504, + "instrumentalness": 0.733, + "key": 2, + "liveness": 0.0826, + "loudness": -14.779, + "mode": 1, + "speechiness": 0.0416, + "tempo": 99.956, + "time_signature": 4, + "valence": 0.0625 + }, + { + "track_name": "Outlands", + "track_id": "1lQZ7fJRndezv3hnEtadcI", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 162501, + "explicit": false, + "popularity": 48, + "acousticness": 0.786, + "danceability": 0.573, + "energy": 0.455, + "instrumentalness": 0.626, + "key": 0, + "liveness": 0.193, + "loudness": -16.105, + "mode": 1, + "speechiness": 0.0367, + "tempo": 113.185, + "time_signature": 4, + "valence": 0.151 + }, + { + "track_name": "Adagio For TRON", + "track_id": "6c9LokX8oCb3c3VT0Ok0ep", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 251070, + "explicit": false, + "popularity": 47, + "acousticness": 0.715, + "danceability": 0.111, + "energy": 0.114, + "instrumentalness": 0.88, + "key": 1, + "liveness": 0.128, + "loudness": -19.883, + "mode": 0, + "speechiness": 0.0456, + "tempo": 92.764, + "time_signature": 3, + "valence": 0.0371 + }, + { + "track_name": "Nocturne", + "track_id": "7toH0mW6Noyt5B0nczGqj5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 101688, + "explicit": false, + "popularity": 49, + "acousticness": 0.391, + "danceability": 0.182, + "energy": 0.033, + "instrumentalness": 0.706, + "key": 9, + "liveness": 0.11, + "loudness": -27.558, + "mode": 0, + "speechiness": 0.0369, + "tempo": 68.469, + "time_signature": 5, + "valence": 0.0348 + }, + { + "track_name": "End of Line", + "track_id": "09TlxralXOGX35LUutvw7I", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 156486, + "explicit": false, + "popularity": 64, + "acousticness": 0.000594, + "danceability": 0.182, + "energy": 0.449, + "instrumentalness": 0.738, + "key": 2, + "liveness": 0.283, + "loudness": -11.344, + "mode": 1, + "speechiness": 0.0305, + "tempo": 195.86, + "time_signature": 4, + "valence": 0.0396 + }, + { + "track_name": "Derezzed", + "track_id": "7hqlHZIXhwAzpWQxm9KzBd", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 104113, + "explicit": false, + "popularity": 55, + "acousticness": 0.00109, + "danceability": 0.539, + "energy": 0.617, + "instrumentalness": 0.762, + "key": 1, + "liveness": 0.18, + "loudness": -10.057, + "mode": 1, + "speechiness": 0.046, + "tempo": 119.993, + "time_signature": 4, + "valence": 0.0772 + }, + { + "track_name": "Fall", + "track_id": "5pPKx6IhpBIqdMGAC0RYn9", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 82605, + "explicit": false, + "popularity": 48, + "acousticness": 4.61e-05, + "danceability": 0.361, + "energy": 0.588, + "instrumentalness": 0.967, + "key": 11, + "liveness": 0.153, + "loudness": -10.154, + "mode": 0, + "speechiness": 0.0284, + "tempo": 89.99, + "time_signature": 4, + "valence": 0.274 + }, + { + "track_name": "Solar Sailer", + "track_id": "770xg19bhZii0ARFBn1qR5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 162126, + "explicit": false, + "popularity": 48, + "acousticness": 0.867, + "danceability": 0.177, + "energy": 0.172, + "instrumentalness": 0.815, + "key": 10, + "liveness": 0.103, + "loudness": -23.405, + "mode": 0, + "speechiness": 0.0382, + "tempo": 124.141, + "time_signature": 3, + "valence": 0.0385 + }, + { + "track_name": "Rectifier", + "track_id": "6lEEO57pUsxL33F3tSNWV3", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 134047, + "explicit": false, + "popularity": 44, + "acousticness": 0.49, + "danceability": 0.449, + "energy": 0.198, + "instrumentalness": 0.917, + "key": 2, + "liveness": 0.106, + "loudness": -14.778, + "mode": 1, + "speechiness": 0.0343, + "tempo": 131.866, + "time_signature": 4, + "valence": 0.0399 + }, + { + "track_name": "Disc Wars", + "track_id": "1OAEosQeqo1Q2RKkipkkiP", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 251453, + "explicit": false, + "popularity": 46, + "acousticness": 0.408, + "danceability": 0.544, + "energy": 0.489, + "instrumentalness": 0.892, + "key": 2, + "liveness": 0.114, + "loudness": -14.516, + "mode": 1, + "speechiness": 0.0305, + "tempo": 160.013, + "time_signature": 4, + "valence": 0.352 + }, + { + "track_name": "C.L.U.", + "track_id": "5yq0Wr88ARxysyYEEfVY2E", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 279313, + "explicit": false, + "popularity": 45, + "acousticness": 0.345, + "danceability": 0.337, + "energy": 0.517, + "instrumentalness": 0.768, + "key": 7, + "liveness": 0.222, + "loudness": -13.119, + "mode": 1, + "speechiness": 0.0344, + "tempo": 86.024, + "time_signature": 4, + "valence": 0.0398 + }, + { + "track_name": "Arrival", + "track_id": "4Fm7MMYiSRriB4eTvulVKQ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 120489, + "explicit": false, + "popularity": 44, + "acousticness": 0.907, + "danceability": 0.0849, + "energy": 0.104, + "instrumentalness": 0.721, + "key": 8, + "liveness": 0.116, + "loudness": -22.836, + "mode": 0, + "speechiness": 0.0441, + "tempo": 84.002, + "time_signature": 5, + "valence": 0.0658 + }, + { + "track_name": "Flynn Lives", + "track_id": "3szggCvjcOLWroR6DM9cJn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 202150, + "explicit": false, + "popularity": 45, + "acousticness": 0.95, + "danceability": 0.448, + "energy": 0.271, + "instrumentalness": 0.667, + "key": 1, + "liveness": 0.13, + "loudness": -14.263, + "mode": 1, + "speechiness": 0.0335, + "tempo": 107.988, + "time_signature": 4, + "valence": 0.0527 + }, + { + "track_name": "TRON Legacy (End Titles)", + "track_id": "69T9xcz6U8GFYmdPLkYn4J", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 197825, + "explicit": false, + "popularity": 47, + "acousticness": 1.31e-05, + "danceability": 0.419, + "energy": 0.815, + "instrumentalness": 0.854, + "key": 1, + "liveness": 0.357, + "loudness": -9.162, + "mode": 0, + "speechiness": 0.0413, + "tempo": 101.97, + "time_signature": 4, + "valence": 0.0397 + }, + { + "track_name": "Finale", + "track_id": "2URbRukS6KLiQOGAhGP40J", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 262779, + "explicit": false, + "popularity": 42, + "acousticness": 0.931, + "danceability": 0.0782, + "energy": 0.11, + "instrumentalness": 0.919, + "key": 5, + "liveness": 0.103, + "loudness": -15.15, + "mode": 1, + "speechiness": 0.0466, + "tempo": 71.202, + "time_signature": 3, + "valence": 0.0295 + }, + { + "track_name": "Sea of Simulation", + "track_id": "1dsetWQ7Jx0uygKHPH0GBk", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 160659, + "explicit": false, + "popularity": 45, + "acousticness": 0.0535, + "danceability": 0.511, + "energy": 0.65, + "instrumentalness": 0.764, + "key": 0, + "liveness": 0.277, + "loudness": -11.899, + "mode": 1, + "speechiness": 0.034, + "tempo": 113.711, + "time_signature": 4, + "valence": 0.0878 + }, + { + "track_name": "Encom Part II", + "track_id": "37OFlKZy7bJeF6vzFmekfK", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 136760, + "explicit": false, + "popularity": 46, + "acousticness": 0.443, + "danceability": 0.431, + "energy": 0.455, + "instrumentalness": 0.684, + "key": 7, + "liveness": 0.124, + "loudness": -14.287, + "mode": 0, + "speechiness": 0.0362, + "tempo": 160.558, + "time_signature": 4, + "valence": 0.446 + }, + { + "track_name": "Encom Part I", + "track_id": "0wuXtDn3vPxvG6szydUznc", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 231680, + "explicit": false, + "popularity": 42, + "acousticness": 0.762, + "danceability": 0.394, + "energy": 0.174, + "instrumentalness": 0.87, + "key": 7, + "liveness": 0.0964, + "loudness": -28.356, + "mode": 1, + "speechiness": 0.0423, + "tempo": 79.321, + "time_signature": 4, + "valence": 0.0566 + }, + { + "track_name": "Round One", + "track_id": "0wF6Fj7kEhrfVWC3AgCRBx", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 100026, + "explicit": false, + "popularity": 42, + "acousticness": 0.286, + "danceability": 0.377, + "energy": 0.409, + "instrumentalness": 0.607, + "key": 8, + "liveness": 0.101, + "loudness": -20.093, + "mode": 1, + "speechiness": 0.0371, + "tempo": 108.033, + "time_signature": 4, + "valence": 0.0213 + }, + { + "track_name": "Castor", + "track_id": "6w5ZzNX84SzG5ob8tm4Ozq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 138506, + "explicit": false, + "popularity": 44, + "acousticness": 0.0592, + "danceability": 0.451, + "energy": 0.823, + "instrumentalness": 0.89, + "key": 2, + "liveness": 0.202, + "loudness": -10.739, + "mode": 1, + "speechiness": 0.0399, + "tempo": 116.986, + "time_signature": 4, + "valence": 0.325 + }, + { + "track_name": "Reflections", + "track_id": "2Aq8H7LO9IujF4uFUaCpfj", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 161300, + "explicit": false, + "popularity": 42, + "acousticness": 0.778, + "danceability": 0.392, + "energy": 0.192, + "instrumentalness": 0.782, + "key": 7, + "liveness": 0.112, + "loudness": -19.268, + "mode": 1, + "speechiness": 0.0432, + "tempo": 159.663, + "time_signature": 3, + "valence": 0.0389 + }, + { + "track_name": "Sunrise Prelude", + "track_id": "5EkLu4IaWJuFfDlPdCtjQX", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 171266, + "explicit": false, + "popularity": 42, + "acousticness": 0.899, + "danceability": 0.299, + "energy": 0.149, + "instrumentalness": 0.964, + "key": 0, + "liveness": 0.198, + "loudness": -18.969, + "mode": 0, + "speechiness": 0.0368, + "tempo": 115.768, + "time_signature": 4, + "valence": 0.0394 + }, + { + "track_name": "Father and Son", + "track_id": "5OO1MmnLVRPYjDGbDC9c5s", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 189946, + "explicit": false, + "popularity": 43, + "acousticness": 0.73, + "danceability": 0.154, + "energy": 0.035, + "instrumentalness": 0.951, + "key": 8, + "liveness": 0.108, + "loudness": -22.888, + "mode": 0, + "speechiness": 0.0423, + "tempo": 134.547, + "time_signature": 3, + "valence": 0.0353 + }, + { + "track_name": "Outlands, Part II", + "track_id": "0KCzXogxEjPDOYrwvC7Dkg", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3AMXFnwHWXCvNr5NCCpLZI" + ], + "duration_ms": 174200, + "explicit": false, + "popularity": 45, + "acousticness": 0.703, + "danceability": 0.436, + "energy": 0.308, + "instrumentalness": 0.745, + "key": 0, + "liveness": 0.298, + "loudness": -17.853, + "mode": 1, + "speechiness": 0.0299, + "tempo": 113.226, + "time_signature": 4, + "valence": 0.0656 + }, + { + "track_name": "Overture", + "track_id": "1wlLWCKOYy3o2GlVR1szY2", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 148013, + "explicit": false, + "popularity": 38, + "acousticness": 0.878, + "danceability": 0.168, + "energy": 0.0674, + "instrumentalness": 0.96, + "key": 1, + "liveness": 0.13, + "loudness": -14.688, + "mode": 1, + "speechiness": 0.0459, + "tempo": 115.697, + "time_signature": 4, + "valence": 0.0361 + }, + { + "track_name": "The Grid", + "track_id": "5z9v299A7qXXSk2VY0sUu0", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 96746, + "explicit": false, + "popularity": 33, + "acousticness": 0.264, + "danceability": 0.557, + "energy": 0.504, + "instrumentalness": 0.184, + "key": 1, + "liveness": 0.3, + "loudness": -13.53, + "mode": 1, + "speechiness": 0.0369, + "tempo": 102.019, + "time_signature": 4, + "valence": 0.0652 + }, + { + "track_name": "The Son of Flynn", + "track_id": "5JSkyPoYHVT85NSd60PVEz", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 95226, + "explicit": false, + "popularity": 40, + "acousticness": 0.914, + "danceability": 0.542, + "energy": 0.776, + "instrumentalness": 0.884, + "key": 0, + "liveness": 0.262, + "loudness": -17.679, + "mode": 0, + "speechiness": 0.0463, + "tempo": 106.005, + "time_signature": 4, + "valence": 0.0229 + }, + { + "track_name": "Recognizer", + "track_id": "4rFzvCOKRgYftDUT3huz3B", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 157706, + "explicit": false, + "popularity": 33, + "acousticness": 0.463, + "danceability": 0.578, + "energy": 0.535, + "instrumentalness": 0.583, + "key": 1, + "liveness": 0.108, + "loudness": -14.616, + "mode": 1, + "speechiness": 0.0389, + "tempo": 104.003, + "time_signature": 4, + "valence": 0.0826 + }, + { + "track_name": "Armory", + "track_id": "4YqGC8ipqztRCy5mNZtjla", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 122986, + "explicit": false, + "popularity": 29, + "acousticness": 0.661, + "danceability": 0.383, + "energy": 0.0546, + "instrumentalness": 0.946, + "key": 5, + "liveness": 0.115, + "loudness": -23.993, + "mode": 0, + "speechiness": 0.0371, + "tempo": 96.018, + "time_signature": 4, + "valence": 0.033 + }, + { + "track_name": "Arena", + "track_id": "4Zv7ylukNTHhaev69SfrXb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 93226, + "explicit": false, + "popularity": 30, + "acousticness": 0.0138, + "danceability": 0.31, + "energy": 0.412, + "instrumentalness": 0.99, + "key": 8, + "liveness": 0.0734, + "loudness": -13.547, + "mode": 1, + "speechiness": 0.0361, + "tempo": 66.637, + "time_signature": 5, + "valence": 0.0824 + }, + { + "track_name": "Rinzler", + "track_id": "69Ars6Qne4yAQjhuZef7Hp", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 137640, + "explicit": false, + "popularity": 31, + "acousticness": 0.48, + "danceability": 0.498, + "energy": 0.65, + "instrumentalness": 0.815, + "key": 9, + "liveness": 0.0995, + "loudness": -14.715, + "mode": 1, + "speechiness": 0.0451, + "tempo": 90.021, + "time_signature": 4, + "valence": 0.0359 + }, + { + "track_name": "The Game Has Changed", + "track_id": "44OU8uZ2h9xVcJgKPJKU77", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 205450, + "explicit": false, + "popularity": 32, + "acousticness": 0.431, + "danceability": 0.543, + "energy": 0.502, + "instrumentalness": 0.73, + "key": 9, + "liveness": 0.102, + "loudness": -14.793, + "mode": 1, + "speechiness": 0.0413, + "tempo": 99.989, + "time_signature": 4, + "valence": 0.0566 + }, + { + "track_name": "Outlands", + "track_id": "0KE5Uw9yO4ROgON70Gnihb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 162446, + "explicit": false, + "popularity": 32, + "acousticness": 0.791, + "danceability": 0.574, + "energy": 0.444, + "instrumentalness": 0.644, + "key": 0, + "liveness": 0.278, + "loudness": -16.001, + "mode": 1, + "speechiness": 0.0378, + "tempo": 113.175, + "time_signature": 4, + "valence": 0.165 + }, + { + "track_name": "Adagio For TRON", + "track_id": "6pt4V8ttgLOm1Z1W4tsiTY", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 251093, + "explicit": false, + "popularity": 31, + "acousticness": 0.725, + "danceability": 0.0631, + "energy": 0.115, + "instrumentalness": 0.888, + "key": 1, + "liveness": 0.127, + "loudness": -19.971, + "mode": 0, + "speechiness": 0.0528, + "tempo": 59.122, + "time_signature": 4, + "valence": 0.0369 + }, + { + "track_name": "Nocturne", + "track_id": "3TsNCTLRDiUxYflxu4BJYu", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 101680, + "explicit": false, + "popularity": 30, + "acousticness": 0.404, + "danceability": 0.169, + "energy": 0.0501, + "instrumentalness": 0.651, + "key": 9, + "liveness": 0.11, + "loudness": -27.297, + "mode": 0, + "speechiness": 0.0386, + "tempo": 87.519, + "time_signature": 1, + "valence": 0.0354 + }, + { + "track_name": "End of Line", + "track_id": "10Qq6hFWwd5V8Aez8GNLh3", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 156480, + "explicit": false, + "popularity": 35, + "acousticness": 0.000466, + "danceability": 0.37, + "energy": 0.447, + "instrumentalness": 0.753, + "key": 2, + "liveness": 0.304, + "loudness": -11.355, + "mode": 1, + "speechiness": 0.0278, + "tempo": 195.948, + "time_signature": 4, + "valence": 0.0389 + }, + { + "track_name": "Derezzed", + "track_id": "5aZCwTIsfqv22p5bewcrgf", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 104120, + "explicit": false, + "popularity": 40, + "acousticness": 0.00159, + "danceability": 0.536, + "energy": 0.616, + "instrumentalness": 0.773, + "key": 1, + "liveness": 0.195, + "loudness": -10.019, + "mode": 1, + "speechiness": 0.0488, + "tempo": 119.988, + "time_signature": 4, + "valence": 0.101 + }, + { + "track_name": "Fall", + "track_id": "0cM9xIaDQ4DBhH7wMfwqQV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 82613, + "explicit": false, + "popularity": 31, + "acousticness": 4.71e-05, + "danceability": 0.276, + "energy": 0.634, + "instrumentalness": 0.966, + "key": 11, + "liveness": 0.164, + "loudness": -10.119, + "mode": 0, + "speechiness": 0.0302, + "tempo": 179.975, + "time_signature": 4, + "valence": 0.237 + }, + { + "track_name": "Solar Sailer", + "track_id": "2pnJ87yTVpkgtZh6Tq4vKh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 162075, + "explicit": false, + "popularity": 38, + "acousticness": 0.857, + "danceability": 0.176, + "energy": 0.169, + "instrumentalness": 0.812, + "key": 10, + "liveness": 0.108, + "loudness": -23.316, + "mode": 0, + "speechiness": 0.0402, + "tempo": 124.278, + "time_signature": 3, + "valence": 0.0382 + }, + { + "track_name": "Rectifier", + "track_id": "3SyKgztarlfkJZDeovcHJl", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 134053, + "explicit": false, + "popularity": 26, + "acousticness": 0.58, + "danceability": 0.448, + "energy": 0.193, + "instrumentalness": 0.915, + "key": 2, + "liveness": 0.123, + "loudness": -14.898, + "mode": 1, + "speechiness": 0.0347, + "tempo": 65.963, + "time_signature": 4, + "valence": 0.0395 + }, + { + "track_name": "Disc Wars", + "track_id": "4GspJiSjfLnpAqd8pMK32l", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 251440, + "explicit": false, + "popularity": 29, + "acousticness": 0.433, + "danceability": 0.552, + "energy": 0.479, + "instrumentalness": 0.899, + "key": 2, + "liveness": 0.117, + "loudness": -14.566, + "mode": 1, + "speechiness": 0.0306, + "tempo": 159.978, + "time_signature": 4, + "valence": 0.352 + }, + { + "track_name": "C.L.U.", + "track_id": "3woftPuFttI6yDyzvfgSQI", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 279320, + "explicit": false, + "popularity": 27, + "acousticness": 0.343, + "danceability": 0.341, + "energy": 0.509, + "instrumentalness": 0.788, + "key": 7, + "liveness": 0.228, + "loudness": -13.112, + "mode": 1, + "speechiness": 0.0339, + "tempo": 87.498, + "time_signature": 4, + "valence": 0.0615 + }, + { + "track_name": "Arrival", + "track_id": "4DoZWTMW5kd9E366wvDY72", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 120493, + "explicit": false, + "popularity": 27, + "acousticness": 0.91, + "danceability": 0.0592, + "energy": 0.131, + "instrumentalness": 0.747, + "key": 8, + "liveness": 0.11, + "loudness": -22.586, + "mode": 0, + "speechiness": 0.0487, + "tempo": 62.97, + "time_signature": 4, + "valence": 0.0386 + }, + { + "track_name": "Flynn Lives", + "track_id": "1rbJA2CB4x69TQBtWkq4n4", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 202146, + "explicit": false, + "popularity": 32, + "acousticness": 0.951, + "danceability": 0.442, + "energy": 0.271, + "instrumentalness": 0.633, + "key": 1, + "liveness": 0.197, + "loudness": -14.377, + "mode": 1, + "speechiness": 0.0353, + "tempo": 108.007, + "time_signature": 4, + "valence": 0.0441 + }, + { + "track_name": "TRON Legacy (End Titles)", + "track_id": "0pVib2tLYRTMY91aXWtulu", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 197826, + "explicit": false, + "popularity": 33, + "acousticness": 1.54e-05, + "danceability": 0.423, + "energy": 0.823, + "instrumentalness": 0.836, + "key": 1, + "liveness": 0.361, + "loudness": -9.145, + "mode": 0, + "speechiness": 0.0414, + "tempo": 101.988, + "time_signature": 4, + "valence": 0.0455 + }, + { + "track_name": "Finale", + "track_id": "3IC3f2c4P7mod0wCgpDzzb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2GC8kfyiyPjyheUUWyEY8F" + ], + "duration_ms": 262786, + "explicit": false, + "popularity": 25, + "acousticness": 0.931, + "danceability": 0.0757, + "energy": 0.103, + "instrumentalness": 0.889, + "key": 5, + "liveness": 0.0974, + "loudness": -15.183, + "mode": 1, + "speechiness": 0.0488, + "tempo": 62.105, + "time_signature": 4, + "valence": 0.0289 + }, + { + "track_name": "Robot Rock / Oh Yeah", + "track_id": "5eS6pTvDNOvh2kyxeZtK3r", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 387506, + "explicit": false, + "popularity": 52, + "acousticness": 0.00018, + "danceability": 0.479, + "energy": 0.678, + "instrumentalness": 0.661, + "key": 2, + "liveness": 0.421, + "loudness": -12.17, + "mode": 1, + "speechiness": 0.0758, + "tempo": 116.033, + "time_signature": 4, + "valence": 0.227 + }, + { + "track_name": "Touch It / Technologic", + "track_id": "4IdiGMOzEYXOh2897XOV8i", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 329653, + "explicit": false, + "popularity": 53, + "acousticness": 0.00494, + "danceability": 0.52, + "energy": 0.545, + "instrumentalness": 0.285, + "key": 11, + "liveness": 0.464, + "loudness": -12.67, + "mode": 0, + "speechiness": 0.158, + "tempo": 121.78, + "time_signature": 4, + "valence": 0.233 + }, + { + "track_name": "Television Rules the Nation / Crescendolls", + "track_id": "1E8S3CSv20KrKT0C1yAjkO", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 290840, + "explicit": false, + "popularity": 54, + "acousticness": 6.53e-05, + "danceability": 0.58, + "energy": 0.786, + "instrumentalness": 0.207, + "key": 6, + "liveness": 0.461, + "loudness": -9.979, + "mode": 1, + "speechiness": 0.0675, + "tempo": 126.004, + "time_signature": 4, + "valence": 0.558 + }, + { + "track_name": "Too Long / Steam Machine", + "track_id": "3n4ow4XGzwSIPxA3JHLF9p", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 421600, + "explicit": false, + "popularity": 51, + "acousticness": 0.000605, + "danceability": 0.381, + "energy": 0.721, + "instrumentalness": 0.776, + "key": 5, + "liveness": 0.112, + "loudness": -9.967, + "mode": 0, + "speechiness": 0.0464, + "tempo": 125.603, + "time_signature": 4, + "valence": 0.225 + }, + { + "track_name": "Around the World / Harder, Better, Faster, Stronger", + "track_id": "5RByQFt9Mlo8hDYJ921tCv", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 342626, + "explicit": false, + "popularity": 58, + "acousticness": 0.00152, + "danceability": 0.629, + "energy": 0.787, + "instrumentalness": 0.359, + "key": 5, + "liveness": 0.209, + "loudness": -8.399, + "mode": 0, + "speechiness": 0.0646, + "tempo": 125.998, + "time_signature": 4, + "valence": 0.581 + }, + { + "track_name": "Burnin' / Too Long", + "track_id": "3Ons6C3wXBMi8nYpLBMlVe", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 431506, + "explicit": false, + "popularity": 47, + "acousticness": 0.000207, + "danceability": 0.602, + "energy": 0.793, + "instrumentalness": 0.0476, + "key": 10, + "liveness": 0.686, + "loudness": -10.462, + "mode": 0, + "speechiness": 0.0946, + "tempo": 127.016, + "time_signature": 4, + "valence": 0.35 + }, + { + "track_name": "Face to Face / Short Circuit", + "track_id": "5XzGyYZemDuCG3OdbhVFvh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 295226, + "explicit": false, + "popularity": 47, + "acousticness": 0.261, + "danceability": 0.525, + "energy": 0.599, + "instrumentalness": 0.021, + "key": 6, + "liveness": 0.717, + "loudness": -12.666, + "mode": 1, + "speechiness": 0.0581, + "tempo": 125.976, + "time_signature": 4, + "valence": 0.188 + }, + { + "track_name": "One More Time / Aerodynamic", + "track_id": "1H1d4dr7Hk5Rrd8Tb5y5yr", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 370533, + "explicit": false, + "popularity": 52, + "acousticness": 0.038, + "danceability": 0.45, + "energy": 0.846, + "instrumentalness": 0.266, + "key": 11, + "liveness": 0.222, + "loudness": -9.996, + "mode": 0, + "speechiness": 0.102, + "tempo": 124.239, + "time_signature": 4, + "valence": 0.414 + }, + { + "track_name": "Aerodynamic Beats / Gabrielle , Forget About the World", + "track_id": "0rFTPTXuVFIOYGnqXbWm3X", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 211760, + "explicit": false, + "popularity": 45, + "acousticness": 0.0123, + "danceability": 0.591, + "energy": 0.789, + "instrumentalness": 0.826, + "key": 6, + "liveness": 0.403, + "loudness": -12.041, + "mode": 0, + "speechiness": 0.0707, + "tempo": 127.028, + "time_signature": 4, + "valence": 0.396 + }, + { + "track_name": "Prime Time of Your Life / Brainwasher / Rollin' & Scratchin' / Alive", + "track_id": "3qVD67mL0JxgU0VQVKR52G", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 622480, + "explicit": false, + "popularity": 46, + "acousticness": 5.55e-05, + "danceability": 0.531, + "energy": 0.846, + "instrumentalness": 0.816, + "key": 11, + "liveness": 0.881, + "loudness": -9.652, + "mode": 0, + "speechiness": 0.052, + "tempo": 130.032, + "time_signature": 4, + "valence": 0.055 + }, + { + "track_name": "Da Funk / Daftendirekt", + "track_id": "5OWhFeNXZ2RGbsGpl3rIc3", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 396973, + "explicit": false, + "popularity": 45, + "acousticness": 0.00994, + "danceability": 0.676, + "energy": 0.859, + "instrumentalness": 0.754, + "key": 5, + "liveness": 0.98, + "loudness": -9.602, + "mode": 0, + "speechiness": 0.0412, + "tempo": 111.991, + "time_signature": 4, + "valence": 0.546 + }, + { + "track_name": "Superheroes / Human After All / Rock'n Roll", + "track_id": "029O4HWI1pVXLfFdfQd1Jb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 341106, + "explicit": false, + "popularity": 45, + "acousticness": 4.48e-05, + "danceability": 0.487, + "energy": 0.723, + "instrumentalness": 0.383, + "key": 7, + "liveness": 0.819, + "loudness": -11.148, + "mode": 1, + "speechiness": 0.143, + "tempo": 138.007, + "time_signature": 4, + "valence": 0.391 + }, + { + "track_name": "Human After All / Together / One More Time / Music Sounds Better with You", + "track_id": "5q2KGgJV5l4MAnnGIrvKSK", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "7u6zL7kqpgLPISZYXNTgYk" + ], + "duration_ms": 598666, + "explicit": false, + "popularity": 46, + "acousticness": 8.19e-05, + "danceability": 0.471, + "energy": 0.848, + "instrumentalness": 0.284, + "key": 11, + "liveness": 0.952, + "loudness": -11.331, + "mode": 0, + "speechiness": 0.0595, + "tempo": 131.045, + "time_signature": 4, + "valence": 0.117 + }, + { + "track_name": "Robot Rock - Soulwax Remix", + "track_id": "0BEDdX7TWPEt1gWnbVbHdN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "43mWhBXSflupNLuNjM5vff" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 390506, + "explicit": false, + "popularity": 29, + "acousticness": 0.000988, + "danceability": 0.851, + "energy": 0.569, + "instrumentalness": 0.664, + "key": 7, + "liveness": 0.154, + "loudness": -3.453, + "mode": 1, + "speechiness": 0.0375, + "tempo": 123.014, + "time_signature": 4, + "valence": 0.516 + }, + { + "track_name": "Human After All - SebastiAn Remix", + "track_id": "4TeYKbvzloWQ1eGG4JB4b6", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5tOWIviwLM1EIqGAbF8VSU" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 287640, + "explicit": false, + "popularity": 30, + "acousticness": 0.00038, + "danceability": 0.593, + "energy": 0.926, + "instrumentalness": 0.83, + "key": 4, + "liveness": 0.628, + "loudness": -3.813, + "mode": 0, + "speechiness": 0.209, + "tempo": 122.863, + "time_signature": 4, + "valence": 0.516 + }, + { + "track_name": "Technologic - Peaches No Logic Remix", + "track_id": "6Wn1bfoqAXHqzjoNSzpiKs", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1gkSl4XpHIHI4I1WQbfXOE" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 280413, + "explicit": false, + "popularity": 24, + "acousticness": 0.000682, + "danceability": 0.897, + "energy": 0.684, + "instrumentalness": 0.015, + "key": 1, + "liveness": 0.302, + "loudness": -7.828, + "mode": 1, + "speechiness": 0.0801, + "tempo": 135.989, + "time_signature": 4, + "valence": 0.762 + }, + { + "track_name": "Brainwasher - Erol Alkan's Horrorhouse Dub", + "track_id": "14vpfA3QRbZQNEn7ojtL3Z", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3jQ8hpdQo3TCEnb5gmOtH5" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 364040, + "explicit": false, + "popularity": 21, + "acousticness": 0.000466, + "danceability": 0.696, + "energy": 0.972, + "instrumentalness": 0.9, + "key": 8, + "liveness": 0.298, + "loudness": -5.051, + "mode": 1, + "speechiness": 0.0831, + "tempo": 120.016, + "time_signature": 4, + "valence": 0.386 + }, + { + "track_name": "Prime Time of Your Life - Para One Remix", + "track_id": "7z04OESfPf9PiaJPX3h5hr", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5MRONaryo2z75lLiuJ0NWJ" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 231560, + "explicit": false, + "popularity": 26, + "acousticness": 0.000104, + "danceability": 0.44, + "energy": 0.74, + "instrumentalness": 0.856, + "key": 7, + "liveness": 0.061, + "loudness": -4.836, + "mode": 1, + "speechiness": 0.155, + "tempo": 128.004, + "time_signature": 4, + "valence": 0.795 + }, + { + "track_name": "Human After All - \"Guy-Man After All\" Justice Remix", + "track_id": "2QkzakBouxPqiWI7ke3Tso", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1gR0gsQYfi6joyO1dlp76N" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 240373, + "explicit": false, + "popularity": 25, + "acousticness": 0.000265, + "danceability": 0.698, + "energy": 0.9, + "instrumentalness": 0.762, + "key": 1, + "liveness": 0.0826, + "loudness": -5.312, + "mode": 1, + "speechiness": 0.0475, + "tempo": 121.978, + "time_signature": 4, + "valence": 0.13 + }, + { + "track_name": "Technologic - Digitalism Remix", + "track_id": "01sOjRlYusOIfxC9qaSYqQ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2fBURuq7FrlH6z5F92mpOl" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 361213, + "explicit": false, + "popularity": 23, + "acousticness": 0.00158, + "danceability": 0.539, + "energy": 0.524, + "instrumentalness": 0.301, + "key": 9, + "liveness": 0.0379, + "loudness": -5.681, + "mode": 0, + "speechiness": 0.0787, + "tempo": 127.048, + "time_signature": 4, + "valence": 0.504 + }, + { + "track_name": "Human After All - Alter Ego Remix", + "track_id": "1wjNeiqNI6gXr8MJgnVIo2", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1bnxrGpNXaVSzgbwEFL0qj" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 565826, + "explicit": false, + "popularity": 20, + "acousticness": 9.39e-06, + "danceability": 0.786, + "energy": 0.458, + "instrumentalness": 8.68e-05, + "key": 4, + "liveness": 0.0969, + "loudness": -5.221, + "mode": 1, + "speechiness": 0.109, + "tempo": 128.979, + "time_signature": 4, + "valence": 0.537 + }, + { + "track_name": "Technologic - Vitalic Remix", + "track_id": "1QKWEOrj8Ee8PBu6mPVSw1", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4M84umUNRbZy1mJleyyRM9" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 324840, + "explicit": false, + "popularity": 22, + "acousticness": 0.00177, + "danceability": 0.674, + "energy": 0.839, + "instrumentalness": 0.749, + "key": 7, + "liveness": 0.167, + "loudness": -9.859, + "mode": 1, + "speechiness": 0.165, + "tempo": 129.177, + "time_signature": 4, + "valence": 0.728 + }, + { + "track_name": "Robot Rock - Maximum Overdrive Mix", + "track_id": "6QqtrujZQLMtsHiyk9rKyA", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 355960, + "explicit": false, + "popularity": 25, + "acousticness": 2.57e-06, + "danceability": 0.293, + "energy": 0.648, + "instrumentalness": 0.687, + "key": 2, + "liveness": 0.103, + "loudness": -6.755, + "mode": 1, + "speechiness": 0.179, + "tempo": 139.19, + "time_signature": 4, + "valence": 0.161 + }, + { + "track_name": "Technologic - Liquid Twins Remix", + "track_id": "11L5sMCBeor1mFUW0cXrIR", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6fJLczsevKaRi1D8zX7vRJ" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 250573, + "explicit": false, + "popularity": 22, + "acousticness": 0.000568, + "danceability": 0.67, + "energy": 0.72, + "instrumentalness": 0.616, + "key": 7, + "liveness": 0.0559, + "loudness": -5.507, + "mode": 1, + "speechiness": 0.183, + "tempo": 125.99, + "time_signature": 4, + "valence": 0.462 + }, + { + "track_name": "Technologic - Basement Jaxx Kontrol Mixx", + "track_id": "6RZRao7yG0G50VRvu3M4ct", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4YrKBkKSVeqDamzBPWVnSJ" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 331693, + "explicit": false, + "popularity": 19, + "acousticness": 0.000388, + "danceability": 0.563, + "energy": 0.912, + "instrumentalness": 0.79, + "key": 7, + "liveness": 0.459, + "loudness": -8.514, + "mode": 1, + "speechiness": 0.0881, + "tempo": 127.999, + "time_signature": 4, + "valence": 0.49 + }, + { + "track_name": "Human After All - The Juan Mclean Remix", + "track_id": "7v7NHYIzIs9anGBUFFMamf", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "7gG6LkU3pCSQmCIPR4aSBt" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 403026, + "explicit": false, + "popularity": 19, + "acousticness": 0.0132, + "danceability": 0.826, + "energy": 0.833, + "instrumentalness": 0.559, + "key": 9, + "liveness": 0.284, + "loudness": -5.762, + "mode": 1, + "speechiness": 0.0715, + "tempo": 130.007, + "time_signature": 4, + "valence": 0.775 + }, + { + "track_name": "Human After All - Emperor Machine Version", + "track_id": "0frwUWLdF1PnPF4ysjlBA4", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "0euaSBwkNAZFqyRcthOIa2" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 363946, + "explicit": false, + "popularity": 18, + "acousticness": 0.00222, + "danceability": 0.86, + "energy": 0.715, + "instrumentalness": 0.826, + "key": 4, + "liveness": 0.493, + "loudness": -4.891, + "mode": 0, + "speechiness": 0.0634, + "tempo": 136.495, + "time_signature": 4, + "valence": 0.438 + }, + { + "track_name": "Technologic - Le Knight Club Remix", + "track_id": "5b3n32izrzbkTMC16FZ83r", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "46C7zcoy351lNv6pMTStN9" + ], + "albums": [ + "11cpAynoDMZFD0B2xtw6OQ" + ], + "duration_ms": 328093, + "explicit": false, + "popularity": 25, + "acousticness": 0.0011, + "danceability": 0.581, + "energy": 0.9, + "instrumentalness": 0.378, + "key": 4, + "liveness": 0.137, + "loudness": -3.353, + "mode": 0, + "speechiness": 0.123, + "tempo": 127.508, + "time_signature": 4, + "valence": 0.569 + }, + { + "track_name": "Human After All", + "track_id": "3aCKAkMx3yfaj3AO5Gz47e", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 319879, + "explicit": false, + "popularity": 49, + "acousticness": 0.00139, + "danceability": 0.608, + "energy": 0.725, + "instrumentalness": 0.0546, + "key": 0, + "liveness": 0.0802, + "loudness": -4.367, + "mode": 1, + "speechiness": 0.342, + "tempo": 136.251, + "time_signature": 4, + "valence": 0.802 + }, + { + "track_name": "The Prime Time of Your Life", + "track_id": "0UZRFYMoz9xmeE2AQUhTDl", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 263240, + "explicit": false, + "popularity": 40, + "acousticness": 4.51e-05, + "danceability": 0.503, + "energy": 0.507, + "instrumentalness": 0.514, + "key": 9, + "liveness": 0.288, + "loudness": -7.243, + "mode": 1, + "speechiness": 0.181, + "tempo": 128.606, + "time_signature": 4, + "valence": 0.0987 + }, + { + "track_name": "Robot Rock", + "track_id": "7LL40F6YdZgeiQ6en1c7Lk", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 287720, + "explicit": false, + "popularity": 58, + "acousticness": 6.94e-06, + "danceability": 0.59, + "energy": 0.787, + "instrumentalness": 0.845, + "key": 7, + "liveness": 0.0293, + "loudness": -5.766, + "mode": 1, + "speechiness": 0.0512, + "tempo": 111.926, + "time_signature": 4, + "valence": 0.598 + }, + { + "track_name": "Steam Machine", + "track_id": "60HSQkYSlJVtdRdHgzRsXz", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 321186, + "explicit": false, + "popularity": 35, + "acousticness": 5.07e-05, + "danceability": 0.518, + "energy": 0.745, + "instrumentalness": 0.802, + "key": 11, + "liveness": 0.229, + "loudness": -6.787, + "mode": 0, + "speechiness": 0.212, + "tempo": 92.07, + "time_signature": 4, + "valence": 0.549 + }, + { + "track_name": "Make Love", + "track_id": "4ABWPP59ItFKykdaDF09K5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 289680, + "explicit": false, + "popularity": 51, + "acousticness": 0.783, + "danceability": 0.697, + "energy": 0.548, + "instrumentalness": 0.841, + "key": 1, + "liveness": 0.132, + "loudness": -9.087, + "mode": 1, + "speechiness": 0.0561, + "tempo": 133.005, + "time_signature": 4, + "valence": 0.977 + }, + { + "track_name": "The Brainwasher", + "track_id": "73MAeHX5sqLYfuYclsrvHc", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 248400, + "explicit": false, + "popularity": 35, + "acousticness": 1.36e-05, + "danceability": 0.531, + "energy": 0.894, + "instrumentalness": 0.837, + "key": 6, + "liveness": 0.0742, + "loudness": -5.435, + "mode": 0, + "speechiness": 0.0466, + "tempo": 119.708, + "time_signature": 4, + "valence": 0.0382 + }, + { + "track_name": "On / Off", + "track_id": "3dWxT7lAv6lmXEW2AEZyPQ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 19200, + "explicit": false, + "popularity": 1, + "acousticness": 0.974, + "danceability": 0.597, + "energy": 0.54, + "instrumentalness": 1.26e-05, + "key": 8, + "liveness": 0.953, + "loudness": -15.07, + "mode": 1, + "speechiness": 0.425, + "tempo": 67.443, + "time_signature": 1, + "valence": 0.93 + }, + { + "track_name": "Television Rules the Nation", + "track_id": "37M8nuFfSrlKfTR0AAp7gK", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 287840, + "explicit": false, + "popularity": 40, + "acousticness": 6.04e-06, + "danceability": 0.702, + "energy": 0.567, + "instrumentalness": 0.706, + "key": 7, + "liveness": 0.1, + "loudness": -5.468, + "mode": 1, + "speechiness": 0.0897, + "tempo": 115.316, + "time_signature": 4, + "valence": 0.705 + }, + { + "track_name": "Technologic", + "track_id": "1iNeZGJsoC0D7ZyJTdIbDS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 284280, + "explicit": false, + "popularity": 56, + "acousticness": 0.000369, + "danceability": 0.812, + "energy": 0.516, + "instrumentalness": 1.09e-05, + "key": 9, + "liveness": 0.0991, + "loudness": -6.963, + "mode": 1, + "speechiness": 0.224, + "tempo": 127.498, + "time_signature": 4, + "valence": 0.633 + }, + { + "track_name": "Emotion", + "track_id": "0Dezmoeb373GNcYBjLVAMH", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2T7DdrOvsqOqU9bGTkjBYu" + ], + "duration_ms": 417320, + "explicit": false, + "popularity": 38, + "acousticness": 0.000555, + "danceability": 0.344, + "energy": 0.613, + "instrumentalness": 0.232, + "key": 7, + "liveness": 0.192, + "loudness": -6.881, + "mode": 1, + "speechiness": 0.0369, + "tempo": 98.305, + "time_signature": 4, + "valence": 0.053 + }, + { + "track_name": "Ouverture", + "track_id": "1pyTJdbGVBVvKXC3MtemHA", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 160626, + "explicit": false, + "popularity": 34, + "acousticness": 0.0274, + "danceability": 0.592, + "energy": 0.829, + "instrumentalness": 0.885, + "key": 11, + "liveness": 0.0817, + "loudness": -10.497, + "mode": 1, + "speechiness": 0.0415, + "tempo": 122.999, + "time_signature": 4, + "valence": 0.0342 + }, + { + "track_name": "Aerodynamic - Daft Punk Remix", + "track_id": "37YWwmlRl1GonSwjRuOiEq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 370986, + "explicit": false, + "popularity": 47, + "acousticness": 0.413, + "danceability": 0.568, + "energy": 0.928, + "instrumentalness": 0.572, + "key": 11, + "liveness": 0.111, + "loudness": -6.071, + "mode": 0, + "speechiness": 0.0733, + "tempo": 122.892, + "time_signature": 4, + "valence": 0.181 + }, + { + "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", + "track_id": "5a8PsqWOuGh7FR1tC6UKUs", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "0KuF7reCTOZwV7YJnHQqgr" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 312506, + "explicit": false, + "popularity": 36, + "acousticness": 0.608, + "danceability": 0.85, + "energy": 0.74, + "instrumentalness": 0.000782, + "key": 11, + "liveness": 0.302, + "loudness": -6.327, + "mode": 0, + "speechiness": 0.0552, + "tempo": 123.451, + "time_signature": 4, + "valence": 0.907 + }, + { + "track_name": "Face to Face - Cosmo Vitelli Remix", + "track_id": "2obYlOGofygYwoQLjvQJz8", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "0mFsbKrHaJDM5DgL8g3Ke3" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 294986, + "explicit": false, + "popularity": 30, + "acousticness": 0.0296, + "danceability": 0.645, + "energy": 0.833, + "instrumentalness": 0.0837, + "key": 8, + "liveness": 0.0513, + "loudness": -6.102, + "mode": 0, + "speechiness": 0.0359, + "tempo": 134.985, + "time_signature": 4, + "valence": 0.853 + }, + { + "track_name": "Phoenix - Basement Jaxx Remix", + "track_id": "5PolXgvfH1jVf2yo746ukl", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4YrKBkKSVeqDamzBPWVnSJ" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 473053, + "explicit": false, + "popularity": 25, + "acousticness": 0.000288, + "danceability": 0.718, + "energy": 0.881, + "instrumentalness": 0.842, + "key": 7, + "liveness": 0.502, + "loudness": -8.029, + "mode": 1, + "speechiness": 0.0763, + "tempo": 124.856, + "time_signature": 4, + "valence": 0.622 + }, + { + "track_name": "Digital Love - Boris Dlugosch Remix", + "track_id": "4VoPoqo6tnziRul41NKYVJ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5mrwZhvK7J8K34cWeFG3ru" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 450546, + "explicit": false, + "popularity": 31, + "acousticness": 0.00366, + "danceability": 0.756, + "energy": 0.387, + "instrumentalness": 0.911, + "key": 9, + "liveness": 0.0653, + "loudness": -8.15, + "mode": 1, + "speechiness": 0.0588, + "tempo": 124.674, + "time_signature": 4, + "valence": 0.398 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Jess & Crabbe Remix", + "track_id": "1tc1T1hH5HbRXx3aipDwRU", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "7xSJWld4zSgUutfCPweoy7" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 361000, + "explicit": false, + "popularity": 29, + "acousticness": 0.00036, + "danceability": 0.851, + "energy": 0.803, + "instrumentalness": 0.00453, + "key": 11, + "liveness": 0.101, + "loudness": -5.893, + "mode": 0, + "speechiness": 0.0632, + "tempo": 129.218, + "time_signature": 4, + "valence": 0.528 + }, + { + "track_name": "Face to Face - Demon Remix", + "track_id": "1dyoTxPBYJOlhD0DRn29Ly", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "4LiDDSfUo671okhAa6OSHY" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 419853, + "explicit": false, + "popularity": 28, + "acousticness": 0.000146, + "danceability": 0.907, + "energy": 0.479, + "instrumentalness": 0.838, + "key": 9, + "liveness": 0.0443, + "loudness": -8.268, + "mode": 1, + "speechiness": 0.187, + "tempo": 130.855, + "time_signature": 4, + "valence": 0.47 + }, + { + "track_name": "Crescendolls - Laidback Luke Remix", + "track_id": "1702kHIwlMLbTgnzPZbkno", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "53cQZtWDwDJwVCNZlfJ6Qk" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 325973, + "explicit": false, + "popularity": 24, + "acousticness": 0.000205, + "danceability": 0.634, + "energy": 0.962, + "instrumentalness": 0.901, + "key": 6, + "liveness": 0.0679, + "loudness": -6.193, + "mode": 1, + "speechiness": 0.056, + "tempo": 131.359, + "time_signature": 4, + "valence": 0.501 + }, + { + "track_name": "Aerodynamic - Slum Village Remix", + "track_id": "5rKOHcpjxzJUS3V36J8AxH", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1020a42xVklY6c56imNcaa" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 217920, + "explicit": true, + "popularity": 28, + "acousticness": 0.031, + "danceability": 0.785, + "energy": 0.569, + "instrumentalness": 0.178, + "key": 6, + "liveness": 0.138, + "loudness": -6.198, + "mode": 0, + "speechiness": 0.176, + "tempo": 94.801, + "time_signature": 4, + "valence": 0.768 + }, + { + "track_name": "Too Long - Gonzales Version", + "track_id": "3mEAtR6LFoCNsjg84gZF9L", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "0qudezVgvl4Chd9BgNFB83" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 193706, + "explicit": false, + "popularity": 29, + "acousticness": 0.721, + "danceability": 0.398, + "energy": 0.177, + "instrumentalness": 0, + "key": 8, + "liveness": 0.117, + "loudness": -12.834, + "mode": 1, + "speechiness": 0.029, + "tempo": 140.693, + "time_signature": 4, + "valence": 0.0686 + }, + { + "track_name": "Aerodynamite", + "track_id": "15WSNNQZRQDOrzuKYMyrDX", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 468427, + "explicit": false, + "popularity": 35, + "acousticness": 5.44e-05, + "danceability": 0.566, + "energy": 0.978, + "instrumentalness": 0.958, + "key": 9, + "liveness": 0.0297, + "loudness": -8.274, + "mode": 0, + "speechiness": 0.178, + "tempo": 121.989, + "time_signature": 4, + "valence": 0.106 + }, + { + "track_name": "One More Time - Romanthony's Unplugged", + "track_id": "6ju6DQ7uIuo74eh8iKUQu5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1xKryNto8SDKl2E6lBs23J" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 220586, + "explicit": false, + "popularity": 25, + "acousticness": 0.915, + "danceability": 0.602, + "energy": 0.0967, + "instrumentalness": 0.000775, + "key": 9, + "liveness": 0.241, + "loudness": -13.379, + "mode": 1, + "speechiness": 0.0559, + "tempo": 98.582, + "time_signature": 4, + "valence": 0.257 + }, + { + "track_name": "Something About Us (Love Theme from Interstella 5555)", + "track_id": "3SfSYQLgcrGajPkU5EEr2E", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1O5WUh9KsgHT2QaUCJeVPG" + ], + "duration_ms": 134933, + "explicit": false, + "popularity": 50, + "acousticness": 0.295, + "danceability": 0.889, + "energy": 0.423, + "instrumentalness": 0.449, + "key": 9, + "liveness": 0.084, + "loudness": -9.759, + "mode": 0, + "speechiness": 0.0456, + "tempo": 99.935, + "time_signature": 4, + "valence": 0.81 + }, + { + "track_name": "Alive 1997", + "track_id": "0Kbvz9ZjihrcE1Vd1dDCZh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3Z7mPCcnwAzU7GtsRYf0HA" + ], + "duration_ms": 2731066, + "explicit": false, + "popularity": 34, + "acousticness": 0.00689, + "danceability": 0.612, + "energy": 0.989, + "instrumentalness": 0.114, + "key": 11, + "liveness": 0.201, + "loudness": -4.285, + "mode": 0, + "speechiness": 0.367, + "tempo": 135.796, + "time_signature": 4, + "valence": 0.105 + }, + { + "track_name": "One More Time", + "track_id": "0DiWol3AO6WpXZgp0goxAV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 320357, + "explicit": false, + "popularity": 78, + "acousticness": 0.0194, + "danceability": 0.613, + "energy": 0.697, + "instrumentalness": 0, + "key": 2, + "liveness": 0.332, + "loudness": -8.618, + "mode": 1, + "speechiness": 0.133, + "tempo": 122.746, + "time_signature": 4, + "valence": 0.476 + }, + { + "track_name": "Aerodynamic", + "track_id": "3H3cOQ6LBLSvmcaV7QkZEu", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 212546, + "explicit": false, + "popularity": 63, + "acousticness": 0.329, + "danceability": 0.624, + "energy": 0.911, + "instrumentalness": 0.861, + "key": 7, + "liveness": 0.0727, + "loudness": -7.482, + "mode": 1, + "speechiness": 0.0524, + "tempo": 122.902, + "time_signature": 4, + "valence": 0.135 + }, + { + "track_name": "Digital Love", + "track_id": "2VEZx7NWsZ1D0eJ4uv5Fym", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 301373, + "explicit": false, + "popularity": 67, + "acousticness": 0.048, + "danceability": 0.644, + "energy": 0.664, + "instrumentalness": 0.867, + "key": 9, + "liveness": 0.342, + "loudness": -8.398, + "mode": 1, + "speechiness": 0.0332, + "tempo": 124.726, + "time_signature": 4, + "valence": 0.53 + }, + { + "track_name": "Harder, Better, Faster, Stronger", + "track_id": "5W3cjX2J3tjhG8zb6u0qHn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 224693, + "explicit": false, + "popularity": 73, + "acousticness": 0.0427, + "danceability": 0.817, + "energy": 0.716, + "instrumentalness": 0.00263, + "key": 6, + "liveness": 0.358, + "loudness": -8.898, + "mode": 0, + "speechiness": 0.144, + "tempo": 123.474, + "time_signature": 4, + "valence": 0.692 + }, + { + "track_name": "Crescendolls", + "track_id": "6vuPZX9fWESg5js2JFTQRJ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 211640, + "explicit": false, + "popularity": 57, + "acousticness": 0.0035, + "danceability": 0.697, + "energy": 0.75, + "instrumentalness": 0.922, + "key": 5, + "liveness": 0.0889, + "loudness": -8.503, + "mode": 0, + "speechiness": 0.0721, + "tempo": 124.048, + "time_signature": 4, + "valence": 0.937 + }, + { + "track_name": "Nightvision", + "track_id": "63JXZZRbmzooashakb0zbu", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 104466, + "explicit": false, + "popularity": 56, + "acousticness": 0.845, + "danceability": 0.491, + "energy": 0.186, + "instrumentalness": 0.916, + "key": 0, + "liveness": 0.109, + "loudness": -29.512, + "mode": 1, + "speechiness": 0.0321, + "tempo": 119.883, + "time_signature": 4, + "valence": 0.457 + }, + { + "track_name": "Superheroes", + "track_id": "186hvCTyrni4KT9nwIQ7zS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 237800, + "explicit": false, + "popularity": 56, + "acousticness": 0.00409, + "danceability": 0.619, + "energy": 0.74, + "instrumentalness": 0.00356, + "key": 11, + "liveness": 0.102, + "loudness": -8.204, + "mode": 0, + "speechiness": 0.0789, + "tempo": 140.874, + "time_signature": 4, + "valence": 0.674 + }, + { + "track_name": "High Life", + "track_id": "098ttCNmncrO4YvqWUNMvn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 201800, + "explicit": false, + "popularity": 56, + "acousticness": 0.00435, + "danceability": 0.653, + "energy": 0.869, + "instrumentalness": 0.413, + "key": 8, + "liveness": 0.334, + "loudness": -9.393, + "mode": 1, + "speechiness": 0.217, + "tempo": 125.207, + "time_signature": 4, + "valence": 0.515 + }, + { + "track_name": "Something About Us", + "track_id": "1NeLwFETswx8Fzxl2AFl91", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 232666, + "explicit": false, + "popularity": 72, + "acousticness": 0.44, + "danceability": 0.875, + "energy": 0.475, + "instrumentalness": 0.72, + "key": 9, + "liveness": 0.046, + "loudness": -12.673, + "mode": 0, + "speechiness": 0.0986, + "tempo": 99.958, + "time_signature": 4, + "valence": 0.384 + }, + { + "track_name": "Voyager", + "track_id": "7cMFjxhbXBpOlais7KMF3j", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 227866, + "explicit": false, + "popularity": 64, + "acousticness": 0.288, + "danceability": 0.669, + "energy": 0.743, + "instrumentalness": 0.805, + "key": 7, + "liveness": 0.309, + "loudness": -11.488, + "mode": 1, + "speechiness": 0.0494, + "tempo": 119.881, + "time_signature": 4, + "valence": 0.28 + }, + { + "track_name": "Veridis Quo", + "track_id": "2LD2gT7gwAurzdQDQtILds", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 345186, + "explicit": false, + "popularity": 69, + "acousticness": 0.479, + "danceability": 0.605, + "energy": 0.687, + "instrumentalness": 0.949, + "key": 9, + "liveness": 0.104, + "loudness": -13.928, + "mode": 0, + "speechiness": 0.045, + "tempo": 106.896, + "time_signature": 4, + "valence": 0.12 + }, + { + "track_name": "Short Circuit", + "track_id": "4npMbTuxrUA3Wd7edACZ2L", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 206866, + "explicit": false, + "popularity": 53, + "acousticness": 0.00461, + "danceability": 0.535, + "energy": 0.558, + "instrumentalness": 0.824, + "key": 6, + "liveness": 0.0821, + "loudness": -10.756, + "mode": 1, + "speechiness": 0.0741, + "tempo": 109.69, + "time_signature": 4, + "valence": 0.215 + }, + { + "track_name": "Face to Face", + "track_id": "7v9Q0dAb9t7h8gJOkcJHay", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 240173, + "explicit": false, + "popularity": 64, + "acousticness": 0.00134, + "danceability": 0.874, + "energy": 0.437, + "instrumentalness": 0.0296, + "key": 1, + "liveness": 0.0293, + "loudness": -10.235, + "mode": 0, + "speechiness": 0.0708, + "tempo": 117.791, + "time_signature": 4, + "valence": 0.962 + }, + { + "track_name": "Too Long", + "track_id": "3zMvotMEQK3xvH01vA9wAP", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2noRn2Aes5aoNVsU6iWThc" + ], + "duration_ms": 600293, + "explicit": false, + "popularity": 54, + "acousticness": 0.00211, + "danceability": 0.692, + "energy": 0.582, + "instrumentalness": 0, + "key": 5, + "liveness": 0.177, + "loudness": -10.164, + "mode": 0, + "speechiness": 0.301, + "tempo": 127.017, + "time_signature": 4, + "valence": 0.513 + }, + { + "track_name": "Daftendirekt", + "track_id": "0wrjNnj3QP3K8JuCy91zWB", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 164560, + "explicit": false, + "popularity": 30, + "acousticness": 0.00695, + "danceability": 0.883, + "energy": 0.743, + "instrumentalness": 0.792, + "key": 5, + "liveness": 0.0936, + "loudness": -8.418, + "mode": 0, + "speechiness": 0.162, + "tempo": 111.019, + "time_signature": 4, + "valence": 0.337 + }, + { + "track_name": "WDPK 83.7 FM", + "track_id": "6pfNHtG6QKH1JB9Bm1SsPq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 28333, + "explicit": false, + "popularity": 3, + "acousticness": 0.00492, + "danceability": 0.856, + "energy": 0.569, + "instrumentalness": 0.0353, + "key": 1, + "liveness": 0.474, + "loudness": -5.916, + "mode": 1, + "speechiness": 0.206, + "tempo": 110.943, + "time_signature": 4, + "valence": 0.919 + }, + { + "track_name": "Revolution 909", + "track_id": "1GLVS763ScItK1BRzbpYcs", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 335026, + "explicit": false, + "popularity": 33, + "acousticness": 0.0265, + "danceability": 0.746, + "energy": 0.716, + "instrumentalness": 0.844, + "key": 11, + "liveness": 0.246, + "loudness": -7.918, + "mode": 1, + "speechiness": 0.137, + "tempo": 126.521, + "time_signature": 4, + "valence": 0.828 + }, + { + "track_name": "Da Funk", + "track_id": "4IUkEUQmp2HkJZrf0vUru5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 328680, + "explicit": false, + "popularity": 36, + "acousticness": 0.00196, + "danceability": 0.805, + "energy": 0.699, + "instrumentalness": 0.895, + "key": 0, + "liveness": 0.269, + "loudness": -5.269, + "mode": 0, + "speechiness": 0.0753, + "tempo": 111.215, + "time_signature": 4, + "valence": 0.892 + }, + { + "track_name": "Phoenix", + "track_id": "6NglQcVwf2YSQOyas9YuOk", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 297106, + "explicit": false, + "popularity": 30, + "acousticness": 1.91e-05, + "danceability": 0.804, + "energy": 0.719, + "instrumentalness": 0.926, + "key": 7, + "liveness": 0.0847, + "loudness": -8.207, + "mode": 1, + "speechiness": 0.0836, + "tempo": 126.874, + "time_signature": 4, + "valence": 0.567 + }, + { + "track_name": "Fresh", + "track_id": "4o1Xrjlz2WpNa97kkNXyVh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 244400, + "explicit": false, + "popularity": 30, + "acousticness": 0.268, + "danceability": 0.289, + "energy": 0.953, + "instrumentalness": 0.274, + "key": 1, + "liveness": 0.875, + "loudness": -9.315, + "mode": 1, + "speechiness": 0.645, + "tempo": 126.621, + "time_signature": 4, + "valence": 0.176 + }, + { + "track_name": "Around the World", + "track_id": "1q4poN5PaGvY1RbEC5gl5s", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 429533, + "explicit": false, + "popularity": 34, + "acousticness": 0.00359, + "danceability": 0.956, + "energy": 0.795, + "instrumentalness": 0.889, + "key": 7, + "liveness": 0.0906, + "loudness": -5.311, + "mode": 1, + "speechiness": 0.15, + "tempo": 121.294, + "time_signature": 4, + "valence": 0.839 + }, + { + "track_name": "Rollin' & Scratchin'", + "track_id": "7wWeIUvvfRaNirdlireOuX", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 448626, + "explicit": false, + "popularity": 29, + "acousticness": 0.00112, + "danceability": 0.822, + "energy": 0.791, + "instrumentalness": 0.602, + "key": 1, + "liveness": 0.0565, + "loudness": -4.87, + "mode": 1, + "speechiness": 0.0413, + "tempo": 130.06, + "time_signature": 4, + "valence": 0.21 + }, + { + "track_name": "Teachers", + "track_id": "4UHd9OG8OOPR2JEhXOVJgS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 173493, + "explicit": false, + "popularity": 27, + "acousticness": 0.03, + "danceability": 0.981, + "energy": 0.486, + "instrumentalness": 0.824, + "key": 6, + "liveness": 0.0995, + "loudness": -7.31, + "mode": 1, + "speechiness": 0.25, + "tempo": 123.193, + "time_signature": 4, + "valence": 0.823 + }, + { + "track_name": "High Fidelity", + "track_id": "25oB2tfQWWdGGr5GoKz0S8", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 362466, + "explicit": false, + "popularity": 26, + "acousticness": 0.000996, + "danceability": 0.799, + "energy": 0.66, + "instrumentalness": 0.446, + "key": 11, + "liveness": 0.313, + "loudness": -8.829, + "mode": 0, + "speechiness": 0.175, + "tempo": 125.909, + "time_signature": 4, + "valence": 0.391 + }, + { + "track_name": "Rock'n Roll", + "track_id": "41xqdrOR76ohQ4OeeMe1ZP", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 453866, + "explicit": false, + "popularity": 25, + "acousticness": 0.0169, + "danceability": 0.955, + "energy": 0.899, + "instrumentalness": 0.634, + "key": 1, + "liveness": 0.0642, + "loudness": -7.599, + "mode": 1, + "speechiness": 0.273, + "tempo": 134.937, + "time_signature": 4, + "valence": 0.331 + }, + { + "track_name": "Oh Yeah", + "track_id": "5VIciQgxKg7wyGJtdwYaeK", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 121200, + "explicit": false, + "popularity": 23, + "acousticness": 0.0706, + "danceability": 0.602, + "energy": 0.309, + "instrumentalness": 0.294, + "key": 8, + "liveness": 0.0895, + "loudness": -8.396, + "mode": 1, + "speechiness": 0.352, + "tempo": 176.704, + "time_signature": 5, + "valence": 0.559 + }, + { + "track_name": "Burnin'", + "track_id": "3TukSaT1CQlYuk8Y8FD5Z1", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 414173, + "explicit": false, + "popularity": 25, + "acousticness": 0.192, + "danceability": 0.87, + "energy": 0.875, + "instrumentalness": 0.363, + "key": 6, + "liveness": 0.0804, + "loudness": -8.501, + "mode": 0, + "speechiness": 0.205, + "tempo": 124.298, + "time_signature": 4, + "valence": 0.714 + }, + { + "track_name": "Indo Silver Club", + "track_id": "1Zc0ExmqbvUNCwxpO7iQpy", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 274733, + "explicit": false, + "popularity": 25, + "acousticness": 0.0886, + "danceability": 0.886, + "energy": 0.847, + "instrumentalness": 0.938, + "key": 11, + "liveness": 0.087, + "loudness": -8.297, + "mode": 1, + "speechiness": 0.101, + "tempo": 126.163, + "time_signature": 4, + "valence": 0.439 + }, + { + "track_name": "Alive", + "track_id": "1jmPN5cUQMSrhqmWHixXbv", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 316253, + "explicit": false, + "popularity": 26, + "acousticness": 5.42e-05, + "danceability": 0.723, + "energy": 0.716, + "instrumentalness": 0.904, + "key": 3, + "liveness": 0.072, + "loudness": -6.407, + "mode": 0, + "speechiness": 0.0436, + "tempo": 128.701, + "time_signature": 4, + "valence": 0.0751 + }, + { + "track_name": "Funk Ad", + "track_id": "5x0Si3aykdZzoHd9Uzh7gL", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 51400, + "explicit": false, + "popularity": 22, + "acousticness": 0.00021, + "danceability": 0.724, + "energy": 0.783, + "instrumentalness": 0.49, + "key": 7, + "liveness": 0.295, + "loudness": -8.957, + "mode": 1, + "speechiness": 0.176, + "tempo": 111.833, + "time_signature": 4, + "valence": 0.3 + }, + { + "track_name": "Around the World - I:Cube Remix", + "track_id": "2wJvgawO7sP1wnn8qFOcbc", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2HNNSjjaK20NZ9PDZ2EMwU" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 378786, + "explicit": false, + "popularity": 26, + "acousticness": 0.00199, + "danceability": 0.773, + "energy": 0.843, + "instrumentalness": 0.586, + "key": 1, + "liveness": 0.11, + "loudness": -7.845, + "mode": 1, + "speechiness": 0.0436, + "tempo": 129.028, + "time_signature": 4, + "valence": 0.755 + }, + { + "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", + "track_id": "4SuarAU6lLxIv1kQFD9Qgf", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1HT9k1ZSUL9IczSstOAgWJ", + "31ZNfGVEEcI9CyicPVJQni" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 536093, + "explicit": false, + "popularity": 28, + "acousticness": 0.000608, + "danceability": 0.8, + "energy": 0.934, + "instrumentalness": 0.882, + "key": 1, + "liveness": 0.687, + "loudness": -6.728, + "mode": 0, + "speechiness": 0.0969, + "tempo": 126.233, + "time_signature": 4, + "valence": 0.802 + }, + { + "track_name": "Around the World - Tee's Frozen Sun Mix", + "track_id": "4W10VdilnHOyPs0Z2bk0Ok", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3dE92yGWcrboP1kC5SWyqu" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 477066, + "explicit": false, + "popularity": 22, + "acousticness": 0.00094, + "danceability": 0.647, + "energy": 0.97, + "instrumentalness": 0.2, + "key": 11, + "liveness": 0.9, + "loudness": -7.259, + "mode": 0, + "speechiness": 0.0526, + "tempo": 127.62, + "time_signature": 4, + "valence": 0.497 + }, + { + "track_name": "Around the World - Mellow Mix", + "track_id": "3MERln0wX0uCa8BRSbSxIz", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5Fkj0k7EPUhIsESSIEA9f1" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 471453, + "explicit": false, + "popularity": 31, + "acousticness": 0.000379, + "danceability": 0.856, + "energy": 0.521, + "instrumentalness": 0.911, + "key": 4, + "liveness": 0.103, + "loudness": -8.061, + "mode": 0, + "speechiness": 0.0573, + "tempo": 124.986, + "time_signature": 4, + "valence": 0.778 + }, + { + "track_name": "Burnin' - DJ Sneak Main Mix", + "track_id": "27VUxjFyXj3HUiImMyF7Az", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5He9yPmPv0Du9hASUlTUjr" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 550666, + "explicit": false, + "popularity": 26, + "acousticness": 0.00817, + "danceability": 0.888, + "energy": 0.704, + "instrumentalness": 0.915, + "key": 11, + "liveness": 0.0314, + "loudness": -8.292, + "mode": 0, + "speechiness": 0.125, + "tempo": 128.517, + "time_signature": 4, + "valence": 0.296 + }, + { + "track_name": "Around the World - Kenlou Mix", + "track_id": "4yRhLnDM5WdSP4btzqzNLN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5Fkj0k7EPUhIsESSIEA9f1" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 470986, + "explicit": false, + "popularity": 29, + "acousticness": 0.00575, + "danceability": 0.892, + "energy": 0.484, + "instrumentalness": 0.859, + "key": 7, + "liveness": 0.118, + "loudness": -12.987, + "mode": 1, + "speechiness": 0.0715, + "tempo": 125.066, + "time_signature": 4, + "valence": 0.671 + }, + { + "track_name": "Burnin' - Ian Pooley Cut up Mix", + "track_id": "5mOg5qguKHwzN9vjM8XOYV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1m4GViPjIy4T8Pd0Iz6hRS" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 320800, + "explicit": false, + "popularity": 27, + "acousticness": 0.00115, + "danceability": 0.802, + "energy": 0.947, + "instrumentalness": 0.81, + "key": 9, + "liveness": 0.0441, + "loudness": -6.852, + "mode": 1, + "speechiness": 0.0893, + "tempo": 127.404, + "time_signature": 4, + "valence": 0.921 + }, + { + "track_name": "Around the World - Motorbass Vice Mix", + "track_id": "1DQUhQics4meI85bTnXHH1", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3QqRjNjJX6fPOn72pwXIvN" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 397373, + "explicit": false, + "popularity": 18, + "acousticness": 7.26e-05, + "danceability": 0.906, + "energy": 0.508, + "instrumentalness": 0.77, + "key": 5, + "liveness": 0.112, + "loudness": -9.94, + "mode": 0, + "speechiness": 0.233, + "tempo": 129.888, + "time_signature": 4, + "valence": 0.396 + }, + { + "track_name": "Around the World - M.A.W Remix", + "track_id": "4irrsXxMnNp5vW3fnFLBol", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5Fkj0k7EPUhIsESSIEA9f1" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 563773, + "explicit": false, + "popularity": 17, + "acousticness": 0.000767, + "danceability": 0.807, + "energy": 0.674, + "instrumentalness": 0.924, + "key": 7, + "liveness": 0.587, + "loudness": -7.925, + "mode": 1, + "speechiness": 0.0486, + "tempo": 127.22, + "time_signature": 4, + "valence": 0.749 + }, + { + "track_name": "Burnin' - Slam Mix", + "track_id": "3CYZvYvhv19Uq0NkL0uXwb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3dvQNG65MMzLa0Cosf6Ztq" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 407133, + "explicit": false, + "popularity": 19, + "acousticness": 0.000125, + "danceability": 0.805, + "energy": 0.805, + "instrumentalness": 0.908, + "key": 6, + "liveness": 0.0556, + "loudness": -8.512, + "mode": 0, + "speechiness": 0.0902, + "tempo": 123.596, + "time_signature": 4, + "valence": 0.0691 + }, + { + "track_name": "Around the World - Original Lead On Mix", + "track_id": "2ASfONRGdFOcetBvIeF1Qe", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3dE92yGWcrboP1kC5SWyqu" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 450320, + "explicit": false, + "popularity": 18, + "acousticness": 0.000232, + "danceability": 0.65, + "energy": 0.956, + "instrumentalness": 0.309, + "key": 11, + "liveness": 0.9, + "loudness": -6.867, + "mode": 0, + "speechiness": 0.049, + "tempo": 127.578, + "time_signature": 4, + "valence": 0.589 + }, + { + "track_name": "Burnin' - DJ Sneak Mongowarrier Mix", + "track_id": "1vHSWhEDYIGDTYjx3edz1E", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5He9yPmPv0Du9hASUlTUjr" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 623800, + "explicit": false, + "popularity": 17, + "acousticness": 0.00511, + "danceability": 0.773, + "energy": 0.981, + "instrumentalness": 0.779, + "key": 9, + "liveness": 0.111, + "loudness": -9.409, + "mode": 1, + "speechiness": 0.0863, + "tempo": 126.25, + "time_signature": 4, + "valence": 0.263 + }, + { + "track_name": "Around the World - RAW Dub", + "track_id": "6aXAO47l4zw21V4oWYGqAc", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5Fkj0k7EPUhIsESSIEA9f1" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 414560, + "explicit": false, + "popularity": 17, + "acousticness": 0.00346, + "danceability": 0.825, + "energy": 0.411, + "instrumentalness": 0.911, + "key": 4, + "liveness": 0.0944, + "loudness": -9.282, + "mode": 0, + "speechiness": 0.105, + "tempo": 126.973, + "time_signature": 4, + "valence": 0.433 + }, + { + "track_name": "Teachers - Extended Mix", + "track_id": "0L6O6XtSu0pok4UgFcNZz0", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 353960, + "explicit": false, + "popularity": 20, + "acousticness": 0.0193, + "danceability": 0.972, + "energy": 0.503, + "instrumentalness": 0.892, + "key": 6, + "liveness": 0.0912, + "loudness": -8.665, + "mode": 1, + "speechiness": 0.143, + "tempo": 123.182, + "time_signature": 4, + "valence": 0.789 + }, + { + "track_name": "Revolution 909 - Revolution A Cappella", + "track_id": "6PvNrIpNfEhR4X73Zhehwu", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6JRaPcrT3cMBEmkgSqEPhI" + ], + "duration_ms": 64573, + "explicit": false, + "popularity": 16, + "acousticness": 0.649, + "danceability": 0.805, + "energy": 0.29, + "instrumentalness": 0.000214, + "key": 11, + "liveness": 0.209, + "loudness": -18.058, + "mode": 1, + "speechiness": 0.0885, + "tempo": 126.849, + "time_signature": 4, + "valence": 0.153 + }, + { + "track_name": "Daftendirekt", + "track_id": "7fYIXtdOUl8WqXAqQGyIHQ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 164560, + "explicit": false, + "popularity": 47, + "acousticness": 0.00695, + "danceability": 0.883, + "energy": 0.743, + "instrumentalness": 0.796, + "key": 5, + "liveness": 0.0936, + "loudness": -8.418, + "mode": 0, + "speechiness": 0.162, + "tempo": 111.019, + "time_signature": 4, + "valence": 0.336 + }, + { + "track_name": "WDPK 83.7 FM", + "track_id": "7dTWkvPOPgbGuMk4HDxNpY", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 28333, + "explicit": false, + "popularity": 10, + "acousticness": 0.00492, + "danceability": 0.856, + "energy": 0.569, + "instrumentalness": 0.0353, + "key": 1, + "liveness": 0.474, + "loudness": -5.916, + "mode": 1, + "speechiness": 0.206, + "tempo": 110.943, + "time_signature": 4, + "valence": 0.919 + }, + { + "track_name": "Revolution 909", + "track_id": "5pgZpHqfv4TSomtkfGZGrG", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 335026, + "explicit": false, + "popularity": 56, + "acousticness": 0.0265, + "danceability": 0.745, + "energy": 0.716, + "instrumentalness": 0.846, + "key": 11, + "liveness": 0.246, + "loudness": -7.918, + "mode": 1, + "speechiness": 0.136, + "tempo": 126.527, + "time_signature": 4, + "valence": 0.828 + }, + { + "track_name": "Da Funk", + "track_id": "0MyY4WcN7DIfbSmp5yej5z", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 328680, + "explicit": false, + "popularity": 64, + "acousticness": 0.00196, + "danceability": 0.806, + "energy": 0.7, + "instrumentalness": 0.891, + "key": 0, + "liveness": 0.267, + "loudness": -5.269, + "mode": 0, + "speechiness": 0.0752, + "tempo": 111.215, + "time_signature": 4, + "valence": 0.892 + }, + { + "track_name": "Phoenix", + "track_id": "6nQy5XEEEJKu8FE1FS2Wbt", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 297106, + "explicit": false, + "popularity": 44, + "acousticness": 1.91e-05, + "danceability": 0.804, + "energy": 0.719, + "instrumentalness": 0.926, + "key": 7, + "liveness": 0.0847, + "loudness": -8.207, + "mode": 1, + "speechiness": 0.0835, + "tempo": 126.874, + "time_signature": 4, + "valence": 0.569 + }, + { + "track_name": "Fresh", + "track_id": "78H72MElkOY9cRnaudxZFY", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 244400, + "explicit": false, + "popularity": 50, + "acousticness": 0.268, + "danceability": 0.503, + "energy": 0.952, + "instrumentalness": 0.272, + "key": 1, + "liveness": 0.875, + "loudness": -9.308, + "mode": 1, + "speechiness": 0.572, + "tempo": 126.345, + "time_signature": 4, + "valence": 0.174 + }, + { + "track_name": "Around the World", + "track_id": "1pKYYY0dkg23sQQXi0Q5zN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 429533, + "explicit": false, + "popularity": 74, + "acousticness": 0.00356, + "danceability": 0.956, + "energy": 0.795, + "instrumentalness": 0.889, + "key": 7, + "liveness": 0.0906, + "loudness": -5.311, + "mode": 1, + "speechiness": 0.15, + "tempo": 121.294, + "time_signature": 4, + "valence": 0.841 + }, + { + "track_name": "Rollin' & Scratchin'", + "track_id": "6hgBJPTHoDJyxydmtFWHKf", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 448626, + "explicit": false, + "popularity": 46, + "acousticness": 0.00108, + "danceability": 0.822, + "energy": 0.791, + "instrumentalness": 0.621, + "key": 1, + "liveness": 0.0567, + "loudness": -4.87, + "mode": 1, + "speechiness": 0.0414, + "tempo": 130.059, + "time_signature": 4, + "valence": 0.21 + }, + { + "track_name": "Teachers", + "track_id": "4ZdjCuiWBv2weLftWPJ72c", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 173493, + "explicit": false, + "popularity": 43, + "acousticness": 0.03, + "danceability": 0.98, + "energy": 0.486, + "instrumentalness": 0.823, + "key": 6, + "liveness": 0.0995, + "loudness": -7.31, + "mode": 1, + "speechiness": 0.251, + "tempo": 123.206, + "time_signature": 4, + "valence": 0.823 + }, + { + "track_name": "High Fidelity", + "track_id": "63ZAmhkAV6Kaw955ohbEsN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 362466, + "explicit": false, + "popularity": 41, + "acousticness": 0.000996, + "danceability": 0.799, + "energy": 0.66, + "instrumentalness": 0.446, + "key": 11, + "liveness": 0.313, + "loudness": -8.829, + "mode": 0, + "speechiness": 0.175, + "tempo": 125.909, + "time_signature": 4, + "valence": 0.391 + }, + { + "track_name": "Rock'n Roll", + "track_id": "1nluqUxDKnwWyScYVeQHXa", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 453866, + "explicit": false, + "popularity": 40, + "acousticness": 0.0171, + "danceability": 0.955, + "energy": 0.899, + "instrumentalness": 0.64, + "key": 1, + "liveness": 0.0642, + "loudness": -7.599, + "mode": 1, + "speechiness": 0.273, + "tempo": 134.941, + "time_signature": 4, + "valence": 0.331 + }, + { + "track_name": "Oh Yeah", + "track_id": "3Pm4jgrXCu0W7gTqyrlR4F", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 121200, + "explicit": false, + "popularity": 39, + "acousticness": 0.0706, + "danceability": 0.602, + "energy": 0.309, + "instrumentalness": 0.294, + "key": 8, + "liveness": 0.0895, + "loudness": -8.396, + "mode": 1, + "speechiness": 0.352, + "tempo": 176.704, + "time_signature": 5, + "valence": 0.559 + }, + { + "track_name": "Burnin'", + "track_id": "6nSOhDfZOulWp0pnEHFrnn", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 414173, + "explicit": false, + "popularity": 43, + "acousticness": 0.192, + "danceability": 0.87, + "energy": 0.875, + "instrumentalness": 0.357, + "key": 6, + "liveness": 0.0804, + "loudness": -8.501, + "mode": 0, + "speechiness": 0.205, + "tempo": 124.298, + "time_signature": 4, + "valence": 0.715 + }, + { + "track_name": "Indo Silver Club", + "track_id": "4jF8GAMRCOenL17cNnBDI0", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 274733, + "explicit": false, + "popularity": 41, + "acousticness": 0.0888, + "danceability": 0.886, + "energy": 0.847, + "instrumentalness": 0.937, + "key": 11, + "liveness": 0.087, + "loudness": -8.296, + "mode": 1, + "speechiness": 0.1, + "tempo": 126.163, + "time_signature": 4, + "valence": 0.443 + }, + { + "track_name": "Alive", + "track_id": "1PH5Es89c1cENU8WVuWwbp", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 316253, + "explicit": false, + "popularity": 44, + "acousticness": 5.42e-05, + "danceability": 0.723, + "energy": 0.716, + "instrumentalness": 0.905, + "key": 3, + "liveness": 0.072, + "loudness": -6.407, + "mode": 0, + "speechiness": 0.0437, + "tempo": 128.701, + "time_signature": 4, + "valence": 0.0748 + }, + { + "track_name": "Funk Ad", + "track_id": "0cjavaamK4gxP9iZYw5I2X", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5uRdvUR7xCnHmUW8n64n9y" + ], + "duration_ms": 51400, + "explicit": false, + "popularity": 37, + "acousticness": 0.00021, + "danceability": 0.724, + "energy": 0.783, + "instrumentalness": 0.49, + "key": 7, + "liveness": 0.295, + "loudness": -8.958, + "mode": 1, + "speechiness": 0.176, + "tempo": 111.833, + "time_signature": 4, + "valence": 0.3 + }, + { + "track_name": "Infinity Repeating (2013 Demo) [feat. Julian Casablancas+The Voidz]", + "track_id": "6rMuHJjLnEQpBuc0TSkeFv", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1rAv1GhTQ2rmG94p9lU3rB", + "4nUBBtLtzqZGpdiynTJbYJ" + ], + "albums": [ + "3YcIVKVDqiVvPobsotuhgx" + ], + "duration_ms": 239213, + "explicit": false, + "popularity": 54, + "acousticness": 0.11, + "danceability": 0.636, + "energy": 0.635, + "instrumentalness": 0.643, + "key": 1, + "liveness": 0.61, + "loudness": -10.532, + "mode": 1, + "speechiness": 0.0534, + "tempo": 110.031, + "time_signature": 4, + "valence": 0.192 + }, + { + "track_name": "GLBTM (Studio Outtakes)", + "track_id": "02CsNQg3AKP7OdDmzzDWc5", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1gDbMxDY14mf9OZzpQfON0" + ], + "duration_ms": 381666, + "explicit": false, + "popularity": 40, + "acousticness": 0.00337, + "danceability": 0.764, + "energy": 0.559, + "instrumentalness": 0.82, + "key": 9, + "liveness": 0.068, + "loudness": -10.856, + "mode": 0, + "speechiness": 0.0344, + "tempo": 119.004, + "time_signature": 4, + "valence": 0.346 + }, + { + "track_name": "GLBTM (Studio Outtakes) [Edit]", + "track_id": "6gLkmtXYQHitabChjGfiqy", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1gDbMxDY14mf9OZzpQfON0" + ], + "duration_ms": 158790, + "explicit": false, + "popularity": 41, + "acousticness": 0.00121, + "danceability": 0.7, + "energy": 0.68, + "instrumentalness": 0.794, + "key": 9, + "liveness": 0.31, + "loudness": -10.386, + "mode": 0, + "speechiness": 0.0273, + "tempo": 119.038, + "time_signature": 4, + "valence": 0.334 + }, + { + "track_name": "Give Life Back to Music", + "track_id": "10fbCavbRqZcQmZNIgK5Ti", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1gDbMxDY14mf9OZzpQfON0" + ], + "duration_ms": 275386, + "explicit": false, + "popularity": 35, + "acousticness": 0.00292, + "danceability": 0.788, + "energy": 0.616, + "instrumentalness": 0.548, + "key": 9, + "liveness": 0.0952, + "loudness": -10.671, + "mode": 0, + "speechiness": 0.0337, + "tempo": 119.038, + "time_signature": 4, + "valence": 0.696 + }, + { + "track_name": "The Writing of Fragments of Time (feat. Todd Edwards)", + "track_id": "4VCDNR9AYxBZuGRfrhvnT4", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "0URgTo9T2POPAXgjqeVHVv" + ], + "duration_ms": 497146, + "explicit": false, + "popularity": 32, + "acousticness": 0.0227, + "danceability": 0.916, + "energy": 0.406, + "instrumentalness": 2.93e-05, + "key": 0, + "liveness": 0.33, + "loudness": -12.322, + "mode": 1, + "speechiness": 0.227, + "tempo": 130.026, + "time_signature": 4, + "valence": 0.611 + }, + { + "track_name": "Fragments of Time (feat. Todd Edwards)", + "track_id": "7J9Vmy8RXPFY88reizJEwa", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "6MFopqejpmTUUZlcRmGzgg" + ], + "albums": [ + "0URgTo9T2POPAXgjqeVHVv" + ], + "duration_ms": 279773, + "explicit": false, + "popularity": 38, + "acousticness": 0.0413, + "danceability": 0.807, + "energy": 0.51, + "instrumentalness": 0.115, + "key": 0, + "liveness": 0.104, + "loudness": -9.729, + "mode": 1, + "speechiness": 0.0433, + "tempo": 130.118, + "time_signature": 4, + "valence": 0.961 + }, + { + "track_name": "Derezzed - From TRON: Legacy/Avicii \"So Amazing Mix\"", + "track_id": "2ewHAevJOazIhkzgLxb6Bh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3ML85bvNeLUHa32Hq704qn" + ], + "albums": [ + "3wDNqlA3VDqLKyeTlHKO8P" + ], + "duration_ms": 303920, + "explicit": false, + "popularity": 25, + "acousticness": 0.0562, + "danceability": 0.734, + "energy": 0.757, + "instrumentalness": 0.0762, + "key": 7, + "liveness": 0.283, + "loudness": -3.661, + "mode": 0, + "speechiness": 0.163, + "tempo": 127.993, + "time_signature": 4, + "valence": 0.158 + }, + { + "track_name": "Get Lucky - Daft Punk Remix", + "track_id": "78NwNb2BPO7OKDYYRWB1WT", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz", + "584LILU27vO7VKK6YhZ1Na" + ], + "albums": [ + "4IjfJlYFVmkPH5WQdFuyS8" + ], + "duration_ms": 632693, + "explicit": false, + "popularity": 36, + "acousticness": 0.0267, + "danceability": 0.821, + "energy": 0.793, + "instrumentalness": 1.37e-05, + "key": 6, + "liveness": 0.0751, + "loudness": -9.003, + "mode": 0, + "speechiness": 0.0391, + "tempo": 116.009, + "time_signature": 4, + "valence": 0.912 + }, + { + "track_name": "Get Lucky (Radio Edit) [feat. Pharrell Williams and Nile Rodgers]", + "track_id": "2Foc5Q5nqNiosCNqttzHof", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "2RdwBSPQiwcmiDo9kixcl8", + "3yDIp0kaq9EFKe07X1X2rz" + ], + "albums": [ + "2ePFIvZKMe8zefATp9ofFA" + ], + "duration_ms": 248413, + "explicit": false, + "popularity": 82, + "acousticness": 0.0426, + "danceability": 0.794, + "energy": 0.811, + "instrumentalness": 1.07e-06, + "key": 6, + "liveness": 0.101, + "loudness": -8.966, + "mode": 0, + "speechiness": 0.038, + "tempo": 116.047, + "time_signature": 4, + "valence": 0.862 + }, + { + "track_name": "Technologic - Radio Edit [Radio Edit]", + "track_id": "6qIqFdJ8gIXphYO5GkXR1l", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "5QXkaMax7wx3eI65FUSboS" + ], + "duration_ms": 166586, + "explicit": false, + "popularity": 34, + "acousticness": 0.000356, + "danceability": 0.791, + "energy": 0.56, + "instrumentalness": 1.05e-06, + "key": 9, + "liveness": 0.107, + "loudness": -5.774, + "mode": 1, + "speechiness": 0.236, + "tempo": 127.458, + "time_signature": 4, + "valence": 0.712 + }, + { + "track_name": "Robot Rock - Edit [Edit]", + "track_id": "2gvSbIHvBKebtleZClEC9L", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6nwye4zd7OY5FmMKZRMiDl" + ], + "duration_ms": 187733, + "explicit": false, + "popularity": 43, + "acousticness": 1.08e-05, + "danceability": 0.628, + "energy": 0.72, + "instrumentalness": 0.771, + "key": 7, + "liveness": 0.0332, + "loudness": -6.052, + "mode": 1, + "speechiness": 0.0598, + "tempo": 111.942, + "time_signature": 4, + "valence": 0.514 + }, + { + "track_name": "Human After All - Medley", + "track_id": "6aRRLvPFcmKD1aGVU04xGi", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4KmFHj9bLSp2sWeYILTYJz" + ], + "duration_ms": 199880, + "explicit": false, + "popularity": 20, + "acousticness": 0.000378, + "danceability": 0.373, + "energy": 0.813, + "instrumentalness": 0.321, + "key": 7, + "liveness": 0.0624, + "loudness": -5.443, + "mode": 1, + "speechiness": 0.175, + "tempo": 131.437, + "time_signature": 4, + "valence": 0.392 + }, + { + "track_name": "Something About Us (Love Theme from Interstella 5555)", + "track_id": "17PwbYemqwgiOFg0boOFru", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2CvZLTWcP7LMVV4GkE67xH" + ], + "duration_ms": 134933, + "explicit": false, + "popularity": 36, + "acousticness": 0.295, + "danceability": 0.889, + "energy": 0.423, + "instrumentalness": 0.449, + "key": 9, + "liveness": 0.084, + "loudness": -9.759, + "mode": 0, + "speechiness": 0.0456, + "tempo": 99.935, + "time_signature": 4, + "valence": 0.81 + }, + { + "track_name": "Veridis Quo", + "track_id": "6fSXNDuKucAxQGPz1CHUrg", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2CvZLTWcP7LMVV4GkE67xH" + ], + "duration_ms": 345186, + "explicit": false, + "popularity": 35, + "acousticness": 0.479, + "danceability": 0.605, + "energy": 0.687, + "instrumentalness": 0.949, + "key": 9, + "liveness": 0.104, + "loudness": -13.928, + "mode": 0, + "speechiness": 0.045, + "tempo": 106.896, + "time_signature": 4, + "valence": 0.12 + }, + { + "track_name": "Voyager - Dominique Torti's Wild Style Edit", + "track_id": "5bQxXxULHDbS8EaHlIIzQW", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1FeMiF3aRrgJz69y01jiwt" + ], + "albums": [ + "2CvZLTWcP7LMVV4GkE67xH" + ], + "duration_ms": 392733, + "explicit": false, + "popularity": 29, + "acousticness": 0.0934, + "danceability": 0.694, + "energy": 0.671, + "instrumentalness": 0.779, + "key": 4, + "liveness": 0.127, + "loudness": -11.236, + "mode": 0, + "speechiness": 0.0552, + "tempo": 119.896, + "time_signature": 4, + "valence": 0.179 + }, + { + "track_name": "Something About Us", + "track_id": "2dVNTxLs6VIPMyvVgZ6pGP", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2CvZLTWcP7LMVV4GkE67xH" + ], + "duration_ms": 232666, + "explicit": false, + "popularity": 35, + "acousticness": 0.44, + "danceability": 0.875, + "energy": 0.475, + "instrumentalness": 0.72, + "key": 9, + "liveness": 0.046, + "loudness": -12.673, + "mode": 0, + "speechiness": 0.0986, + "tempo": 99.958, + "time_signature": 4, + "valence": 0.384 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", + "track_id": "2De3sEoBWy7HYz4vdIzClL", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3XiVwyHlgGP6XxTdYdDuVI" + ], + "duration_ms": 214240, + "explicit": false, + "popularity": 34, + "acousticness": 0.000945, + "danceability": 0.537, + "energy": 0.841, + "instrumentalness": 0.023, + "key": 5, + "liveness": 0.944, + "loudness": -10.405, + "mode": 0, + "speechiness": 0.0921, + "tempo": 126.078, + "time_signature": 4, + "valence": 0.522 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Alive Extended 2007", + "track_id": "30NTB3ooCZlzJPv13pihQh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3XiVwyHlgGP6XxTdYdDuVI" + ], + "duration_ms": 283080, + "explicit": false, + "popularity": 35, + "acousticness": 0.00239, + "danceability": 0.549, + "energy": 0.825, + "instrumentalness": 0.0281, + "key": 5, + "liveness": 0.896, + "loudness": -10.713, + "mode": 0, + "speechiness": 0.0748, + "tempo": 126.134, + "time_signature": 4, + "valence": 0.459 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Alive Radio Edit 2007", + "track_id": "7z2Xur2O6Dy9mh8oSauXa2", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "1MmZZolm7iTNArajmWJ6gb" + ], + "duration_ms": 204560, + "explicit": false, + "popularity": 48, + "acousticness": 0.000922, + "danceability": 0.538, + "energy": 0.837, + "instrumentalness": 0.0137, + "key": 5, + "liveness": 0.929, + "loudness": -10.314, + "mode": 0, + "speechiness": 0.097, + "tempo": 126.095, + "time_signature": 4, + "valence": 0.561 + }, + { + "track_name": "Harder, Better, Faster, Stronger", + "track_id": "2cJz1loJp5EZM6shmQpLZN", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "0A88p2r8PWnWGvWjzAnUrV" + ], + "duration_ms": 226413, + "explicit": false, + "popularity": 44, + "acousticness": 0.0392, + "danceability": 0.814, + "energy": 0.73, + "instrumentalness": 0.00333, + "key": 6, + "liveness": 0.343, + "loudness": -8.876, + "mode": 0, + "speechiness": 0.149, + "tempo": 123.494, + "time_signature": 4, + "valence": 0.646 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Breakers Break Remix", + "track_id": "3v7KM7bDxBOT1b0vO4Uwra", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1FeMiF3aRrgJz69y01jiwt" + ], + "albums": [ + "0A88p2r8PWnWGvWjzAnUrV" + ], + "duration_ms": 278680, + "explicit": false, + "popularity": 24, + "acousticness": 0.00221, + "danceability": 0.794, + "energy": 0.858, + "instrumentalness": 0.00459, + "key": 7, + "liveness": 0.22, + "loudness": -8.129, + "mode": 1, + "speechiness": 0.0648, + "tempo": 123.695, + "time_signature": 4, + "valence": 0.805 + }, + { + "track_name": "Harder, Better, Faster, Stronger - The Neptunes Remix", + "track_id": "7hfXlSioLg6uhTGc171inR", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "0KuF7reCTOZwV7YJnHQqgr" + ], + "albums": [ + "0A88p2r8PWnWGvWjzAnUrV" + ], + "duration_ms": 312506, + "explicit": false, + "popularity": 20, + "acousticness": 0.608, + "danceability": 0.85, + "energy": 0.74, + "instrumentalness": 0.000782, + "key": 11, + "liveness": 0.302, + "loudness": -6.327, + "mode": 0, + "speechiness": 0.0552, + "tempo": 123.451, + "time_signature": 4, + "valence": 0.907 + }, + { + "track_name": "Harder, Better, Faster, Stronger - Pete Heller's Stylus Mix", + "track_id": "6ArDOAsJAGK6aJu8McFRcq", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "5BiJE5QAwptqJobHRpBLFf" + ], + "albums": [ + "0A88p2r8PWnWGvWjzAnUrV" + ], + "duration_ms": 554880, + "explicit": false, + "popularity": 18, + "acousticness": 2.54e-05, + "danceability": 0.742, + "energy": 0.904, + "instrumentalness": 0.79, + "key": 11, + "liveness": 0.0836, + "loudness": -8.057, + "mode": 0, + "speechiness": 0.0491, + "tempo": 128.04, + "time_signature": 4, + "valence": 0.702 + }, + { + "track_name": "Digital Love - Radio Edit [Radio Edit]", + "track_id": "5D06AhoBSkwDbgkuALoIot", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3UvcQMj1oRf9D3bPz4P1Zf" + ], + "duration_ms": 240826, + "explicit": false, + "popularity": 34, + "acousticness": 0.0595, + "danceability": 0.65, + "energy": 0.691, + "instrumentalness": 0.791, + "key": 9, + "liveness": 0.137, + "loudness": -8.304, + "mode": 1, + "speechiness": 0.0325, + "tempo": 124.716, + "time_signature": 4, + "valence": 0.658 + }, + { + "track_name": "Digital Love", + "track_id": "2g3f7VYFeceaDgjyj1dDF3", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3UvcQMj1oRf9D3bPz4P1Zf" + ], + "duration_ms": 301373, + "explicit": false, + "popularity": 31, + "acousticness": 0.0481, + "danceability": 0.644, + "energy": 0.664, + "instrumentalness": 0.862, + "key": 9, + "liveness": 0.342, + "loudness": -8.398, + "mode": 1, + "speechiness": 0.0333, + "tempo": 124.726, + "time_signature": 4, + "valence": 0.53 + }, + { + "track_name": "Digital Dub", + "track_id": "4I30FykkDte2yxDbngKtjj", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "3UvcQMj1oRf9D3bPz4P1Zf" + ], + "duration_ms": 299960, + "explicit": false, + "popularity": 21, + "acousticness": 0.0383, + "danceability": 0.628, + "energy": 0.664, + "instrumentalness": 0.968, + "key": 9, + "liveness": 0.378, + "loudness": -8.496, + "mode": 1, + "speechiness": 0.0305, + "tempo": 124.703, + "time_signature": 4, + "valence": 0.521 + }, + { + "track_name": "Aerodynamic", + "track_id": "5o5O70lyFH1sTDNyktHbTA", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6a34lYgmrwXe9jChS9ARZd" + ], + "duration_ms": 212546, + "explicit": false, + "popularity": 31, + "acousticness": 0.328, + "danceability": 0.624, + "energy": 0.911, + "instrumentalness": 0.861, + "key": 7, + "liveness": 0.0727, + "loudness": -7.482, + "mode": 1, + "speechiness": 0.0524, + "tempo": 122.902, + "time_signature": 4, + "valence": 0.135 + }, + { + "track_name": "Aerodynamite", + "track_id": "1Z1lRAs3IkySfpJrf9J1VW", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "6a34lYgmrwXe9jChS9ARZd" + ], + "duration_ms": 468427, + "explicit": false, + "popularity": 26, + "acousticness": 5.44e-05, + "danceability": 0.566, + "energy": 0.978, + "instrumentalness": 0.958, + "key": 9, + "liveness": 0.0297, + "loudness": -8.274, + "mode": 0, + "speechiness": 0.178, + "tempo": 121.989, + "time_signature": 4, + "valence": 0.106 + }, + { + "track_name": "One More Time - Radio Edit [Short Radio Edit]", + "track_id": "2Uy6EhQXAYkXA6MohPgjpV", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "0bHuuhpKn42ktYbyTIeumE" + ], + "duration_ms": 235466, + "explicit": false, + "popularity": 58, + "acousticness": 0.0348, + "danceability": 0.648, + "energy": 0.671, + "instrumentalness": 0, + "key": 2, + "liveness": 0.376, + "loudness": -8.49, + "mode": 1, + "speechiness": 0.104, + "tempo": 122.891, + "time_signature": 4, + "valence": 0.533 + }, + { + "track_name": "One More Time - Radio Edit", + "track_id": "5F0fiSkDxZL5V3SlnTNhKh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "0bHuuhpKn42ktYbyTIeumE" + ], + "duration_ms": 320293, + "explicit": false, + "popularity": 39, + "acousticness": 0.018, + "danceability": 0.608, + "energy": 0.695, + "instrumentalness": 0, + "key": 2, + "liveness": 0.339, + "loudness": -8.598, + "mode": 1, + "speechiness": 0.134, + "tempo": 122.824, + "time_signature": 4, + "valence": 0.476 + }, + { + "track_name": "One More Time - 12 Mix", + "track_id": "5P0cYWH6mpkdrmsgo5e1fe", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "0bHuuhpKn42ktYbyTIeumE" + ], + "duration_ms": 480040, + "explicit": false, + "popularity": 37, + "acousticness": 0.00391, + "danceability": 0.667, + "energy": 0.736, + "instrumentalness": 3.14e-05, + "key": 2, + "liveness": 0.342, + "loudness": -8.463, + "mode": 1, + "speechiness": 0.129, + "tempo": 122.904, + "time_signature": 4, + "valence": 0.522 + }, + { + "track_name": "Revolution 909 - Radio Edit [Radio Edit]", + "track_id": "4ru9Flq2yjmjTLRXUbdHNJ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2Xjx9rNWxYrLeBHOIwZV9r" + ], + "duration_ms": 226200, + "explicit": false, + "popularity": 25, + "acousticness": 0.0112, + "danceability": 0.773, + "energy": 0.729, + "instrumentalness": 0.796, + "key": 6, + "liveness": 0.347, + "loudness": -7.566, + "mode": 0, + "speechiness": 0.134, + "tempo": 126.525, + "time_signature": 4, + "valence": 0.849 + }, + { + "track_name": "Revolution 909 - Roger Sanchez & Junior Sanchez Remix", + "track_id": "7mC59tsgCysbQ1H3W3c4xZ", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1HT9k1ZSUL9IczSstOAgWJ", + "31ZNfGVEEcI9CyicPVJQni" + ], + "albums": [ + "2Xjx9rNWxYrLeBHOIwZV9r" + ], + "duration_ms": 536093, + "explicit": false, + "popularity": 18, + "acousticness": 0.00061, + "danceability": 0.801, + "energy": 0.934, + "instrumentalness": 0.881, + "key": 1, + "liveness": 0.691, + "loudness": -6.728, + "mode": 0, + "speechiness": 0.0969, + "tempo": 126.233, + "time_signature": 4, + "valence": 0.799 + }, + { + "track_name": "Revolution 909 - Revolution A Cappella", + "track_id": "5Te0VxSSZQm5A9xvZqTNKE", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2Xjx9rNWxYrLeBHOIwZV9r" + ], + "duration_ms": 64573, + "explicit": false, + "popularity": 12, + "acousticness": 0.649, + "danceability": 0.805, + "energy": 0.29, + "instrumentalness": 0.000214, + "key": 11, + "liveness": 0.209, + "loudness": -18.058, + "mode": 1, + "speechiness": 0.0885, + "tempo": 126.849, + "time_signature": 4, + "valence": 0.153 + }, + { + "track_name": "Revolution 909", + "track_id": "5MWXqasXXDT9n1wdTC0vH1", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "2Xjx9rNWxYrLeBHOIwZV9r" + ], + "duration_ms": 335026, + "explicit": false, + "popularity": 23, + "acousticness": 0.0265, + "danceability": 0.745, + "energy": 0.716, + "instrumentalness": 0.846, + "key": 11, + "liveness": 0.246, + "loudness": -7.918, + "mode": 1, + "speechiness": 0.136, + "tempo": 126.527, + "time_signature": 4, + "valence": 0.828 + }, + { + "track_name": "Burnin' - Edit Version [Edit Version]", + "track_id": "71dkXboU04Jp5oaqkjK5xd", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4tzfn6ulHYqCdPHkvOWQvZ" + ], + "duration_ms": 228293, + "explicit": false, + "popularity": 28, + "acousticness": 0.195, + "danceability": 0.83, + "energy": 0.884, + "instrumentalness": 0.235, + "key": 6, + "liveness": 0.105, + "loudness": -8.338, + "mode": 0, + "speechiness": 0.246, + "tempo": 124.304, + "time_signature": 4, + "valence": 0.735 + }, + { + "track_name": "Burnin' - Ian Pooley Cut up Mix", + "track_id": "6w4DJaCo6gQOftTr1DBQtX", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "1m4GViPjIy4T8Pd0Iz6hRS" + ], + "albums": [ + "4tzfn6ulHYqCdPHkvOWQvZ" + ], + "duration_ms": 320800, + "explicit": false, + "popularity": 19, + "acousticness": 0.00115, + "danceability": 0.802, + "energy": 0.947, + "instrumentalness": 0.81, + "key": 9, + "liveness": 0.0441, + "loudness": -6.852, + "mode": 1, + "speechiness": 0.0894, + "tempo": 127.404, + "time_signature": 4, + "valence": 0.92 + }, + { + "track_name": "Burnin' - Slam Mix", + "track_id": "7FFzJPMJz2GeAJpp8FySrS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3dvQNG65MMzLa0Cosf6Ztq" + ], + "albums": [ + "4tzfn6ulHYqCdPHkvOWQvZ" + ], + "duration_ms": 407133, + "explicit": false, + "popularity": 16, + "acousticness": 0.000125, + "danceability": 0.805, + "energy": 0.806, + "instrumentalness": 0.906, + "key": 6, + "liveness": 0.0556, + "loudness": -8.512, + "mode": 0, + "speechiness": 0.0898, + "tempo": 123.597, + "time_signature": 4, + "valence": 0.0692 + }, + { + "track_name": "Burnin'", + "track_id": "7fumss9IkI26dBu2e85JSo", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4tzfn6ulHYqCdPHkvOWQvZ" + ], + "duration_ms": 414173, + "explicit": false, + "popularity": 20, + "acousticness": 0.192, + "danceability": 0.87, + "energy": 0.875, + "instrumentalness": 0.357, + "key": 6, + "liveness": 0.0804, + "loudness": -8.501, + "mode": 0, + "speechiness": 0.205, + "tempo": 124.298, + "time_signature": 4, + "valence": 0.715 + }, + { + "track_name": "Around the World - Radio Edit [Radio Edit]", + "track_id": "6XKvPNWlmnN0gJejCKm1k7", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4TaKGJaappn4hWMuLdwUEF" + ], + "duration_ms": 241466, + "explicit": false, + "popularity": 52, + "acousticness": 0.00417, + "danceability": 0.934, + "energy": 0.76, + "instrumentalness": 0.906, + "key": 7, + "liveness": 0.0656, + "loudness": -5.549, + "mode": 1, + "speechiness": 0.148, + "tempo": 121.302, + "time_signature": 4, + "valence": 0.864 + }, + { + "track_name": "Around the World", + "track_id": "4NTnsmgHxlu92IlJqFwvoz", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4TaKGJaappn4hWMuLdwUEF" + ], + "duration_ms": 429533, + "explicit": false, + "popularity": 36, + "acousticness": 0.00356, + "danceability": 0.956, + "energy": 0.795, + "instrumentalness": 0.889, + "key": 7, + "liveness": 0.0906, + "loudness": -5.311, + "mode": 1, + "speechiness": 0.15, + "tempo": 121.294, + "time_signature": 4, + "valence": 0.841 + }, + { + "track_name": "Teachers - Extended Mix", + "track_id": "77ergXeMeeb3wyvxFOBfZb", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4TaKGJaappn4hWMuLdwUEF" + ], + "duration_ms": 353960, + "explicit": false, + "popularity": 22, + "acousticness": 0.0193, + "danceability": 0.972, + "energy": 0.503, + "instrumentalness": 0.892, + "key": 6, + "liveness": 0.0912, + "loudness": -8.665, + "mode": 1, + "speechiness": 0.143, + "tempo": 123.182, + "time_signature": 4, + "valence": 0.789 + }, + { + "track_name": "Around the World - Motorbass Vice Mix", + "track_id": "258dUXRcX7Qt4TFp81cN2S", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi", + "3QqRjNjJX6fPOn72pwXIvN" + ], + "albums": [ + "4TaKGJaappn4hWMuLdwUEF" + ], + "duration_ms": 397373, + "explicit": false, + "popularity": 18, + "acousticness": 7.26e-05, + "danceability": 0.906, + "energy": 0.508, + "instrumentalness": 0.768, + "key": 5, + "liveness": 0.112, + "loudness": -9.94, + "mode": 0, + "speechiness": 0.234, + "tempo": 129.887, + "time_signature": 4, + "valence": 0.395 + }, + { + "track_name": "Da Funk - Radio Edit", + "track_id": "1IBxtCOTtdU9StLpNK6wZh", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4iPei0ERbLxTwUd888Hv5G" + ], + "duration_ms": 229826, + "explicit": false, + "popularity": 35, + "acousticness": 0.00332, + "danceability": 0.795, + "energy": 0.696, + "instrumentalness": 0.863, + "key": 0, + "liveness": 0.328, + "loudness": -5.829, + "mode": 0, + "speechiness": 0.0698, + "tempo": 111.214, + "time_signature": 4, + "valence": 0.928 + }, + { + "track_name": "Musique", + "track_id": "5N3FZ8eZ2mWwSWaJRAGHfS", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4iPei0ERbLxTwUd888Hv5G" + ], + "duration_ms": 413600, + "explicit": false, + "popularity": 39, + "acousticness": 0.00164, + "danceability": 0.821, + "energy": 0.885, + "instrumentalness": 0.848, + "key": 11, + "liveness": 0.0851, + "loudness": -6.996, + "mode": 1, + "speechiness": 0.0811, + "tempo": 117.206, + "time_signature": 4, + "valence": 0.832 + }, + { + "track_name": "Da Funk", + "track_id": "1r0dZYmg4dIJsKdUx2xFma", + "artists": [ + "4tZwfgrHOc3mvqYlEYSvVi" + ], + "albums": [ + "4iPei0ERbLxTwUd888Hv5G" + ], + "duration_ms": 334440, + "explicit": false, + "popularity": 33, + "acousticness": 0.00217, + "danceability": 0.8, + "energy": 0.692, + "instrumentalness": 0.861, + "key": 0, + "liveness": 0.227, + "loudness": -5.315, + "mode": 0, + "speechiness": 0.0746, + "tempo": 111.226, + "time_signature": 4, + "valence": 0.896 + } ] } \ No newline at end of file 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 12/19] 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 13/19] 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 14/19] 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}') From ec27ccb33bc749b46cba229446b028a95ccbcf48 Mon Sep 17 00:00:00 2001 From: Mephody Date: Tue, 12 Dec 2023 02:25:12 +0300 Subject: [PATCH 15/19] Add album info scraper --- src/scraper/seltest.py | 101 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/scraper/seltest.py diff --git a/src/scraper/seltest.py b/src/scraper/seltest.py new file mode 100644 index 0000000..1d1e1d1 --- /dev/null +++ b/src/scraper/seltest.py @@ -0,0 +1,101 @@ +# from seleniumwire import webdriver +from selenium import webdriver +# from selenium.webdriver.chrome.options import Options +import json +import os +import time + + +options = webdriver.ChromeOptions() +options.add_argument('--allow-profiles-outside-user-dir') +options.add_argument('--enable-profile-shortcut-manager') +options.add_argument(r'user-data-dir=./User') +options.add_argument('--profile-directory=Profile1') + +options.add_argument('--enable-logging') +options.add_argument('--log-level=0') +options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) + +driver = webdriver.Chrome(chrome_options = options) +# driver.get('') + +# def setup(): +# driver.switch_to.window(driver.window_handles[0]) + +def get_net_data(): + logs_raw = driver.get_log("performance") + logs = [json.loads(lr["message"])["message"] for lr in logs_raw] + + def log_filter(log_): + return ( + # is an actual response + log_["method"] == "Network.responseReceived" + # and json + and "json" in log_["params"]["response"]["mimeType"] + ) + + data = [] + for log in filter(log_filter, logs): + request_id = log["params"]["requestId"] + resp_url = log["params"]["response"]["url"] + + if 'operationName=getAlbum&' in resp_url: + try: + data.append((resp_url, driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body'])) + except Exception as e: print(e) + # print(f"Caught {resp_url}") + # print(driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body']) + + return data + +def save_album_data(proc, start_time, save_cnt): + for entry in get_net_data(): + if 'operationName=getAlbum&' in entry[0]: + album_id = entry[0][entry[0].find('album%3A') + 8:] + album_id = album_id[:album_id.find('%')] + # if f'{album_id}.json' not in os.listdir('albums'): + if album_id not in proc: + with open(f'albums/{album_id}.json', 'w') as f: + f.write(entry[1]) + + save_cnt += 1 + print(album_id, save_cnt, (time.time() - start_time)/save_cnt) + + return save_cnt + +def parser(): + processed = set(x.split('.')[0] for x in os.listdir('albums')) + + start_time = time.time() + save_cnt = 0 + + i = 0 + for artist in os.listdir('artists'): + i += 1 + print(i, artist) + + with open('artists/' + artist) as f: + data = json.load(f) + + for album in data['albums']: + if album['album_id'] not in processed: + driver.get('https://open.spotify.com/album/' + album['album_id']) + time.sleep(1) + save_cnt = save_album_data(processed, start_time, save_cnt) + +def main(): + input("\n\nSet up VPN & open spotify in the first tab\n\n[Press ENTER to continue]") + + attempts = 0 + + while True: + attempts += 1 + print(f'Atttempt #{attempts}') + try: + parser() + except Exception as e: + print(e) + time.sleep(30) + + +main() \ No newline at end of file From 31facabaf4684bc28d106931de1c08a85e4fc646 Mon Sep 17 00:00:00 2001 From: Fedor Mukhin <71270225+TheTedLab@users.noreply.github.com> Date: Thu, 14 Dec 2023 00:19:09 +0300 Subject: [PATCH 16/19] Add stats from files Add stats from files script Update tracks count --- src/aggregator/stats_from_files.py | 86 ++++++++++++++++++++++++++++++ src/aggregator/tracks_count.py | 13 +++-- 2 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 src/aggregator/stats_from_files.py diff --git a/src/aggregator/stats_from_files.py b/src/aggregator/stats_from_files.py new file mode 100644 index 0000000..40aa64f --- /dev/null +++ b/src/aggregator/stats_from_files.py @@ -0,0 +1,86 @@ +import json +import time +import requests +import datetime + +from os import listdir +from os.path import isfile, join +from collections import OrderedDict +from auth_credentials import ( + client_headers, get_artist_stats_extensions +) + + +def main(): + print(f' [T] Time: {datetime.datetime.now()}') + + timeout, request_count = 1, 0 + + artists_path = "resources/artists" + artist_ids = [file.split('.')[0].split('-')[1] for file in listdir(artists_path) if isfile(join(artists_path, file))] + + artist_count = 1645 + for artist_id in artist_ids[1645:]: + 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}] - Number {artist_count}") + + 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: + # print(f"Get Album {album_id}") + + with open(f'resources/albums/{album_id}.json', 'r', encoding='utf-8') as album_file: + album_data = json.load(album_file) + + tracks_data = album_data.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() + artist_count += 1 + + + +if __name__ == '__main__': + main() diff --git a/src/aggregator/tracks_count.py b/src/aggregator/tracks_count.py index 139067f..fb6b800 100644 --- a/src/aggregator/tracks_count.py +++ b/src/aggregator/tracks_count.py @@ -6,7 +6,8 @@ artists_files = [file for file in listdir(artists_path) if isfile(join(artists_path, file))] -artist_count, albums_count, tracks_count = 0, 0, 0 +artist_count = 0 +albums_list, tracks_list = list(), list() for artist_file in artists_files: with open(f'resources/artists/{artist_file}', 'r', encoding='utf-8') as artist: artist_data = json.load(artist) @@ -15,11 +16,13 @@ artist_albums = artist_data.get('albums') for album in artist_albums: - albums_count += 1 + album_id = album.get('album_id') + albums_list.append(album_id) artist_tracks = artist_data.get('tracks') for track in artist_tracks: - tracks_count += 1 + track_id = track.get('track_id') + tracks_list.append(track_id) -# Artists: 2005, Albums: 50292, Tracks: 269736 -print(f'Artists: {artist_count}, Albums: {albums_count}, Tracks: {tracks_count}') +# Artists: 2004, Albums: 49820, Tracks: 268643 +print(f'Artists: {artist_count}, Albums: {len(set(albums_list))}, Tracks: {len(set(tracks_list))}') From a2ae59fdb015eba6e8556d4f949eca11cea91d09 Mon Sep 17 00:00:00 2001 From: Neveles Date: Thu, 14 Dec 2023 22:09:50 +0300 Subject: [PATCH 17/19] Implement core charts Implement core bar and pie charts and choropleth world map chart. --- src/web/index.html | 48 +++- src/web/script.js | 543 +++++++++++++++++++++++++++++++++++++++++---- src/web/styles.css | 41 ++++ 3 files changed, 581 insertions(+), 51 deletions(-) create mode 100644 src/web/styles.css diff --git a/src/web/index.html b/src/web/index.html index 09341b2..33673d4 100644 --- a/src/web/index.html +++ b/src/web/index.html @@ -1,20 +1,44 @@ - Spoti Stats + + + + + + + + + + + + + SpotiStats -
- - -
-
+

Map of genre popularity

+
+
+

Charts

+ +
+
+
diff --git a/src/web/script.js b/src/web/script.js index d59447f..f3258ee 100644 --- a/src/web/script.js +++ b/src/web/script.js @@ -3,59 +3,524 @@ const { server_vars } = require("./variables.js"); let myChart; // Variable to store the Chart instance -async function fetchData(genre) { - const response = await fetch( - `http://${server_vars.address}:${server_vars.port}/getTracksPerYearForGenre?genre=${genre}` - ); - if (!response.ok) { - throw new Error(`HTTP error! Status: ${response.status}`); +function shortenNumber(number) { + const billion = 1e9; // 1 billion + const million = 1e6; // 1 million + const thousand = 1e3; // 1 thousand + + if (Math.abs(number) >= billion) { + return (number / billion).toFixed(1) + "B"; + } else if (Math.abs(number) >= million) { + return (number / million).toFixed(1) + "M"; + } else if (Math.abs(number) >= thousand) { + return (number / thousand).toFixed(1) + "K"; + } else { + return number.toString(); } - return response.json(); } -function updateChart(selectedGenre) { - fetchData(selectedGenre) - .then((data) => { - // Destroy the existing chart if it exists - if (myChart) { - myChart.destroy(); - } +const AVAILABLE_CHARTS = [ + { + type: "bar", + id: "bar_1", + name: "Number of tracks released each year for a selected genre", + requestMethod: "tracksByYears&genre=", + label: "Tracks released", + }, + { + type: "bar", + id: "bar_2", + name: "Number of plays of the selected genre each year", + requestMethod: "playsByYears&genre=", + label: "Plays", + }, + { + type: "bar", + id: "bar_3", + name: "Averaged music features of the selected genre", + requestMethod: "features&genre=", + label: "Value", + }, + + { + type: "pie", + id: "pie_1", + name: "Top genres by number of plays", + requestMethod: "genresByPlays", + label: "Plays", + }, + { + type: "pie", + id: "pie_2", + name: "Top of the years by the total number of plays of all tracks released during them", + requestMethod: "yearsByReleases", + label: "Plays", + }, + { + type: "pie", + id: "pie_3", + name: "Top 5 genres with the most number of explicit tracks", + requestMethod: "explicitByGenre", + label: "Tracks", + }, + + { + type: "map", + id: "map_1", + name: "Heat map of genre popularity by country", + requestMethod: "genreByCountries&genre=", + label: "Monthly plays", + }, + { + type: "map", + id: "map_2", + name: "Map of countries with their top genres and artists", + requestMethod: "topGenreAndArtistByCountries", + label: "Artist and genre", + }, +]; + +function clearChart() { + if (myChart) { + myChart.destroy(); + } +} + +function removeOptionInput() { + document.getElementById("option-select-container").innerHTML = ""; +} + +function createBarChart(chart, data) { + return new Chart(document.getElementById("chart"), { + type: chart.type, + options: { + animation: true, + plugins: { + legend: { + display: false, + }, + tooltip: { + enabled: true, + }, + }, + }, + data: { + labels: data.map((row) => row[0]), + datasets: [ + { + label: chart.label, + data: data.map((row) => row[1]), + }, + ], + }, + }); +} + +function createPieChart(myChart, data) { + // Convert string values to numbers + const numericData = data.map(([label, value]) => [ + label, + parseFloat(value), + ]); + + // Calculate the total sum of numbers + const sumTotal = numericData.reduce((sum, item) => sum + item[1], 0); + + // Calculate the percentage for each number + const percentages = numericData.map((item) => { + const number = parseInt(item[1], 10); + const percent = (number / sumTotal) * 100; + return percent; + }); + + console.log("Total Sum:", sumTotal); + console.log("Percentages:", percentages); + + // // Sum the values of the categories below the threshold + // const otherSum = numericData.reduce( + // (sum, [, value]) => + // (value / totalSum) * 100 < thresholdPercentage ? sum + value : sum, + // 0 + // ); - // Create a new chart with the new data - myChart = new Chart(document.getElementById("chart"), { - type: "bar", - options: { - animation: true, - plugins: { - legend: { - display: false, + // // Add the "other" category to the filtered data + // if (otherSum > 0) { + // filteredData.push(["Other", otherSum]); + // } + + const N = 7; // Set the number of top labels to display in the legend + + const sortedData = data.sort((a, b) => b[1] - a[1]); + + // Extract the top N labels + const topLabels = sortedData.slice(0, N).map((row) => row[0]); + console.log(topLabels); + + var options = { + type: myChart.type, + options: { + animation: true, + plugins: { + legend: { + labels: { + usePointStyle: true, + filter: (legendItem) => { + return legendItem.index < N; }, - tooltip: { - enabled: true, + font: { + size: 20, }, }, }, - data: { - labels: data.map((row) => row.year), - datasets: [ - { - label: "Tracks released", - data: data.map((row) => row.count), - }, - ], + tooltip: { + enabled: true, }, - }); + }, + }, + data: { + labels: data.map((row) => row[0]), + datasets: [ + { + label: myChart.label, + data: data.map((row) => row[1]), + }, + ], + }, + }; + + return new Chart(document.getElementById("chart"), options); +} + +function updateChart(chart, options = "") { + clearChart(); + fetchData(chart.requestMethod + options) + .then((data) => { + clearChart(); + switch (chart.type) { + case "bar": + myChart = createBarChart(chart, data); + break; + case "pie": + myChart = createPieChart(chart, data); + break; + default: + break; + } + myChart = createBarChart(chart, data); }) .catch((error) => { console.error("Error fetching data:", error.message); }); } -document.getElementById("genreSelect").addEventListener("change", function () { - const selectedGenre = this.value; - updateChart(selectedGenre); +async function getGenres() { + const requestMethod = "genres"; + try { + const data = await fetchData(requestMethod); + return data; + } catch (error) { + console.error("Error:", error); + throw error; + } +} + +async function fetchData(requestMethod) { + const response = await fetch( + `http://${server_vars.address}:${server_vars.port}/query?type=${requestMethod}` + ); + if (!response.ok) { + throw new Error(`HTTP error! Status: ${response.status}`); + } + return response.json(); +} + +function createChartSelects() { + var selectedChartTypeOption = + document.getElementById("chart-type-select").value; + + var availableCharts = []; + switch (selectedChartTypeOption) { + case "bar": + availableCharts = AVAILABLE_CHARTS.filter( + (chart) => chart.type === "bar" + ); + break; + case "pie": + availableCharts = AVAILABLE_CHARTS.filter( + (chart) => chart.type === "pie" + ); + break; + case "map": + availableCharts = AVAILABLE_CHARTS.filter( + (chart) => chart.type === "map" + ); + break; + default: + break; + } + + // Create the `; + chartSelect += ""; + availableCharts.forEach((chart) => { + chartSelect += + ""; + }); + chartSelect += ""; + + document.getElementById("chart-select-container").innerHTML = chartSelect; + document + .getElementById(chartSelectId) + .addEventListener("change", function () { + const chartId = this.value; + const chart = AVAILABLE_CHARTS.find( + (chart) => chart.id === chartId + ); + const requestMethod = chart.requestMethod; + if (requestMethod[requestMethod.length - 1] === "=") { + clearChart(); + removeOptionInput(); + createOptionInput(chart); + } else { + updateChart(chart); + } + }); +} + +async function createMapOptionInput() { + const genres = await getGenres(); // Wait for getGenres to complete + console.log(genres); + + const optionDropdownDivId = "map-option-dropdown"; + const optionDropdownDivClass = "dropdown"; + var optionDropdownDiv = `
`; + document.getElementById("map-option-select-container").innerHTML = + optionDropdownDiv; + + const optionInputId = "map-dropdown-input"; + const optionInputType = "text"; + const optionInputPlaceholder = "Input genre"; + var optionInput = + `"; + document.getElementById(optionDropdownDivId).innerHTML = optionInput; + + const optionUlId = "map-dropdown-list"; + var optionUl = `
    `; + document.getElementById(optionDropdownDivId).innerHTML += optionUl; + + const inputElement = document.getElementById(optionInputId); + const listElement = document.getElementById(optionUlId); + + const chart = AVAILABLE_CHARTS.find((chart) => chart.id === "map_1"); + + inputElement.addEventListener("input", function () { + const inputValue = inputElement.value.toLowerCase(); + const filteredOptions = genres.filter((option) => + option.toLowerCase().includes(inputValue) + ); + + // Clear the previous list + listElement.innerHTML = ""; + + // Create a new list based on filtered options + filteredOptions.forEach((option) => { + const li = document.createElement("li"); + li.textContent = option; + li.addEventListener("click", function () { + inputElement.value = option; + listElement.innerHTML = ""; // Hide the dropdown after selection + updateMap(chart, option); + }); + listElement.appendChild(li); + }); + }); +} + +async function createOptionInput(chart) { + const genres = await getGenres(); // Wait for getGenres to complete + console.log(genres); + + // Create the `; + document.getElementById(optionDropdownDivId).innerHTML = optionInput; + + const optionUlId = "dropdown-list"; + var optionUl = `
      `; + document.getElementById(optionDropdownDivId).innerHTML += optionUl; + + const inputElement = document.getElementById(optionInputId); + const listElement = document.getElementById(optionUlId); + + inputElement.addEventListener("input", function () { + const inputValue = inputElement.value.toLowerCase(); + const filteredOptions = genres.filter((option) => + option.toLowerCase().includes(inputValue) + ); + + // Clear the previous list + listElement.innerHTML = ""; + + // Create a new list based on filtered options + filteredOptions.forEach((option) => { + const li = document.createElement("li"); + li.textContent = option; + li.addEventListener("click", function () { + inputElement.value = option; + listElement.innerHTML = ""; // Hide the dropdown after selection + updateChart(chart, option); + }); + listElement.appendChild(li); + }); + }); +} + +document + .getElementById("chart-type-select") + .addEventListener("change", function () { + clearChart(); + removeOptionInput(); + createChartSelects(); + }); + +anychart.onDocumentReady(function () { + createMapOptionInput(); + const chart = AVAILABLE_CHARTS.find((chart) => chart.id === "map_1"); + const options = "rap"; + updateMap(chart, options); }); -// Initial chart update -const initialGenre = document.getElementById("genreSelect").value; -updateChart(initialGenre); +function updateMap(chart, options) { + document.getElementById("map-container").innerHTML = ""; + fetchData(chart.requestMethod + options).then((data) => { + var map = anychart.map(); + + map.title() + .enabled(true) + .useHtml(true) + .padding([10, 0, 10, 0]) + .text(`Popularity of ${options} across countries`); + + map.geoData("anychart.maps.world"); + map.interactivity().selectionMode("none"); + map.padding(0); + + var formattedData = data.map(function (item) { + return { + id: item[0], // Assuming the first element is the ID + plays: item[1], // Assuming the second element is the density (converted to an integer) + }; + }); + + // Create AnyChart data set + var dataSet = anychart.data.set(formattedData); + var playsData = dataSet.mapAs({ value: "plays" }); + var playsArray = formattedData.map(function (item) { + return parseInt(item.plays); + }); + + // Create choropleth map using the density data + var series = map.choropleth(playsData); + + series.labels(false); // Turn off countries names on the map + + // When hovered + series + .hovered() + .fill("#f48fb1") + .stroke(anychart.color.darken("#f48fb1")); + + // When selected + series + .selected() + .fill("#c2185b") + .stroke(anychart.color.darken("#c2185b")); + + // Tooltip + series + .tooltip() + .useHtml(true) + .format(function () { + return ( + 'Plays: ' + + parseInt(this.value).toLocaleString() + ); + }); + + var minPlays = Math.min(...playsArray); + var maxPlays = Math.max(...playsArray); + var step = (maxPlays - minPlays) / 9; + var scale = anychart.scales.ordinalColor([ + { less: step }, + { from: step, to: step * 2 }, + { from: step * 2, to: step * 3 }, + { from: step * 3, to: step * 4 }, + { from: step * 4, to: step * 5 }, + { from: step * 5, to: step * 6 }, + { from: step * 6, to: step * 7 }, + { from: step * 7, to: step * 8 }, + { greater: step * 8 }, + ]); + scale.colors([ + "#81d4fa", + "#4fc3f7", + "#29b6f6", + "#039be5", + "#0288d1", + "#0277bd", + "#01579b", + "#014377", + "#013377", + ]); + + var colorRange = map.colorRange(); + colorRange.enabled(true).padding([0, 0, 20, 0]); + colorRange + .ticks() + .enabled(true) + .stroke("3 #ffffff") + .position("center") + .length(7); + colorRange.colorLineSize(5); + colorRange.marker().size(7); + colorRange + .labels() + .fontSize(11) + .padding(3, 0, 0, 0) + .format(function () { + var range = this.colorRange; + var name; + if (isFinite(range.start + range.end)) { + name = + shortenNumber(parseInt(range.start)) + + " - " + + shortenNumber(parseInt(range.end)); + } else if (isFinite(range.start)) { + name = "More than " + shortenNumber(parseInt(range.start)); + } else { + name = "Less than " + shortenNumber(parseInt(range.end)); + } + return name; + }); + + series.colorScale(scale); + + var zoomController = anychart.ui.zoom(); + zoomController.render(map); + + map.container("map-container"); + + map.draw(); + }); +} diff --git a/src/web/styles.css b/src/web/styles.css new file mode 100644 index 0000000..ae78d93 --- /dev/null +++ b/src/web/styles.css @@ -0,0 +1,41 @@ +.dropdown { + position: relative; + display: inline-block; +} + +.chart-container { + width: 600px; + margin: 10px; +} + +.map-option-select-container { + z-index: 2; +} + +.map-container { + height: 600px; + z-index: 1; +} + +input { + width: 200px; + padding: 8px; +} + +ul { + list-style: none; + padding: 0; + margin: 0; + position: absolute; + background-color: #f9f9f9; + border: 1px solid #ddd; +} + +li { + padding: 8px; + cursor: pointer; +} + +li:hover { + background-color: #ddd; +} \ No newline at end of file From f2e267ee0d4680d6cdbba9c8a8eb23390bb088c5 Mon Sep 17 00:00:00 2001 From: Mephody Date: Thu, 14 Dec 2023 22:36:01 +0300 Subject: [PATCH 18/19] Fix saving cities; add query endpoint; fix issue with long track names --- src/api/action/query.py | 187 +++++++++++++++++++++++++++++++++++ src/api/action/saveArtist.py | 3 +- src/api/entity/artist.py | 9 +- src/api/main.py | 7 ++ src/db/init.sql | 2 +- 5 files changed, 205 insertions(+), 3 deletions(-) create mode 100644 src/api/action/query.py diff --git a/src/api/action/query.py b/src/api/action/query.py new file mode 100644 index 0000000..3d7e2c9 --- /dev/null +++ b/src/api/action/query.py @@ -0,0 +1,187 @@ + +def execute(conn, data): + try: + + queryType = data.get('type') + + if queryType == 'tracksByYears': + genre = data.get('genre') + + with conn.cursor() as cur: + cur.execute(f''' + SELECT EXTRACT(YEAR FROM a.release_date) AS release_year, COUNT(DISTINCT t.id) AS track_count + FROM track t + JOIN album__track at ON t.id = at.track_id + JOIN album a ON a.id = at.album_id + JOIN album__artist aa ON a.id = aa.album_id + JOIN artist__genre ag ON aa.artist_id = ag.artist_id + JOIN genre g ON ag.genre_id = g.id + WHERE g."group" = %s OR g."name" = %s + GROUP BY release_year + ORDER BY release_year; + ''', (genre, genre)) + + return cur.fetchall() + + elif queryType == 'playsByYears': + genre = data.get('genre') + + with conn.cursor() as cur: + cur.execute(f''' + SELECT EXTRACT(YEAR FROM a.release_date) AS release_year, SUM(t.plays) AS total_plays + FROM genre g + JOIN artist__genre ag ON g.id = ag.genre_id + JOIN artist__track art ON ag.artist_id = art.artist_id + JOIN track t ON art.track_id = t.id + JOIN album__track at ON t.id = at.track_id + JOIN album a ON at.album_id = a.id + WHERE g."group" = %s OR g."name" = %s + GROUP BY release_year + ORDER BY release_year; + ''', (genre, genre)) + + return cur.fetchall() + + elif queryType == 'features': + genre = data.get('genre') + + with conn.cursor() as cur: + cur.execute(f''' + SELECT feature, AVG(value::numeric) AS avg_value + FROM track + JOIN artist__track ON track.id = artist__track.track_id + JOIN artist__genre ON artist__track.artist_id = artist__genre.artist_id + JOIN genre ON genre.id = artist__genre.genre_id + CROSS JOIN LATERAL jsonb_each_text(track.features) AS features(feature, value) + WHERE genre."group" = %s OR genre."name" = %s + GROUP BY feature + ORDER BY feature; + ''', (genre, genre)) + + # return dict(cur.fetchall()) + return cur.fetchall() + + elif queryType == 'genresByPlays': + + with conn.cursor() as cur: + cur.execute(f''' + SELECT genre_name, + SUM(plays) AS total_plays + FROM ( + SELECT DISTINCT ON (t.id, g.id) plays, + CASE + WHEN g."group" IS NOT NULL THEN g."group" + ELSE g."name" + END AS genre_name + FROM track t + JOIN artist__track at1 ON t.id = at1.track_id + JOIN artist__genre ag ON at1.artist_id = ag.artist_id + JOIN genre g ON ag.genre_id = g.id) + GROUP BY genre_name + ORDER BY total_plays DESC; + ''') + + return cur.fetchall() + + elif queryType == 'yearsByReleases': + + with conn.cursor() as cur: + cur.execute(f''' + SELECT EXTRACT(YEAR FROM release_date) AS release_year, + SUM(plays) AS total_plays + FROM ( + SELECT DISTINCT ON (t.id) plays, release_date + FROM album a + JOIN album__track at ON a.id = at.album_id + JOIN track t ON at.track_id = t.id) + GROUP BY release_year + ORDER BY total_plays DESC; + ''') + + return cur.fetchall() + + elif queryType == 'explicitByGenre': + count = data.get('count', default = 5) + + with conn.cursor() as cur: + cur.execute(f''' + SELECT + CASE + WHEN g."group" IS NOT NULL THEN g."group" + ELSE g."name" + END AS genre_name, + COUNT(t.id) AS explicit_track_count + FROM genre g + JOIN artist__genre ag ON g.id = ag.genre_id + JOIN artist__track at ON ag.artist_id = at.artist_id + JOIN track t ON at.track_id = t.id + WHERE t.explicit = TRUE + GROUP BY genre_name + ORDER BY COUNT(t.id) DESC LIMIT %s; + ''', (count, )) + + return cur.fetchall() + + elif queryType == 'topGenreAndArtistByCountries': + + with conn.cursor() as cur: + cur.execute(f''' + WITH ranked_artists AS ( + SELECT + ci.country, + ar.name AS artist_name, + ROW_NUMBER() OVER(PARTITION BY ci.country ORDER BY ac.monthly_plays DESC) AS rn + FROM artist__city ac + JOIN artist ar ON ac.artist_id = ar.id + JOIN city ci ON ac.city_id = ci.id + ), + ranked_genres AS ( + SELECT + ci.country, + g.name AS genre_name, + ROW_NUMBER() OVER(PARTITION BY ci.country ORDER BY ac.monthly_plays DESC) AS rn + FROM artist__genre ag + JOIN genre g ON ag.genre_id = g.id + JOIN artist__city ac ON ag.artist_id = ac.artist_id + JOIN city ci ON ac.city_id = ci.id + ) + SELECT + ra.country AS country, + ra.artist_name AS most_played_artist, + rg.genre_name AS most_played_genre + FROM ranked_artists ra + JOIN ranked_genres rg ON ra.country = rg.country AND ra.rn = 1 AND rg.rn = 1; + ''') + + return cur.fetchall() + + elif queryType == 'genreByCountries': + genre = data.get('genre') + + with conn.cursor() as cur: + cur.execute(f''' + SELECT c.country, SUM(ac.monthly_plays) AS total_monthly_plays + FROM artist__genre ag + JOIN artist__city ac ON ag.artist_id = ac.artist_id + JOIN city c ON ac.city_id = c.id + JOIN artist__track at ON ag.artist_id = at.artist_id + WHERE ag.genre_id IN (SELECT id FROM genre WHERE "group" = %s OR "name" = %s) + GROUP BY c.country; + ''', (genre, genre)) + + return cur.fetchall() + + elif queryType == 'genres': + + with conn.cursor() as cur: + cur.execute('SELECT "name" FROM genre') + + return [x[0] for x in cur.fetchall()] + + else: + return 'unknown' + + except KeyError as e: + return 'malformed request: ' + str(e), 500 + + return data, 200 \ No newline at end of file diff --git a/src/api/action/saveArtist.py b/src/api/action/saveArtist.py index b3e2ce3..5e4500a 100644 --- a/src/api/action/saveArtist.py +++ b/src/api/action/saveArtist.py @@ -11,7 +11,8 @@ def execute(conn, data): data.get('popularity'), data.get('monthly_listeners'), data.get('world_rank'), - data.get('genres', []) + data.get('genres', []), + data.get('top_cities', []) ) if 'albums' in data: diff --git a/src/api/entity/artist.py b/src/api/entity/artist.py index b173137..0fbc7ce 100644 --- a/src/api/entity/artist.py +++ b/src/api/entity/artist.py @@ -21,7 +21,7 @@ def __init__(self, id, spotify_id, name, followers, popularity, monthly_listener self.genres = None @staticmethod - def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None, genres = []): + def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None, world_rank = None, genres = [], cities = []): try: with conn.cursor() as cur: cur.execute(f''' @@ -44,6 +44,13 @@ def save(conn, spotify_id, name, followers, popularity, monthly_listeners = None VALUES (%s, %s) ON CONFLICT (artist_id, genre_id) DO NOTHING ''', (id, genre_id)) + for city in cities: + city_id = City.get_id(conn, city['city'], city['country'], city['region']) + cur.execute(f''' + INSERT INTO {Artist.TABLE_NAME__CITY} (artist_id, city_id, monthly_plays) + VALUES (%s, %s, %s) ON CONFLICT (artist_id, city_id) DO NOTHING + ''', (id, city_id, city['numberOfListeners'])) + return id except Exception as e: diff --git a/src/api/main.py b/src/api/main.py index 6401cad..30b2217 100755 --- a/src/api/main.py +++ b/src/api/main.py @@ -7,6 +7,7 @@ import action.saveArtist import action.getAverageFollowersPerGenres import action.getTracksPerYearForGenre +import action.query import config app = Flask(__name__) @@ -51,6 +52,12 @@ def getTracksPerYearForGenre(): genre = request.args.get('genre') return action.getTracksPerYearForGenre.execute(conn, genre) +@app.route('/query', methods=['GET']) +@error_handler +def getQuery(): + if request.method == 'GET': + return action.query.execute(conn, request.args) + if __name__ == '__main__': app.run(debug = True) diff --git a/src/db/init.sql b/src/db/init.sql index d46e1e3..0285804 100644 --- a/src/db/init.sql +++ b/src/db/init.sql @@ -38,7 +38,7 @@ CREATE TABLE album ( CREATE TABLE track ( id SERIAL PRIMARY KEY, spotify_id VARCHAR(24) UNIQUE, - name VARCHAR(256), + name VARCHAR(512), duration_ms INTEGER, explicit BOOLEAN, popularity SMALLINT, From 749321ced376e6747edbb0917f320e84f08db778 Mon Sep 17 00:00:00 2001 From: Mephody Date: Fri, 15 Dec 2023 01:39:18 +0300 Subject: [PATCH 19/19] Add fast parsers --- src/scraper/counter.py | 20 ++++ src/scraper/fastsel_album.py | 185 ++++++++++++++++++++++++++++++++++ src/scraper/fastsel_artist.py | 183 +++++++++++++++++++++++++++++++++ src/scraper/load_into_db.py | 53 ++++++++++ src/scraper/seltest.py | 4 +- 5 files changed, 443 insertions(+), 2 deletions(-) create mode 100644 src/scraper/counter.py create mode 100644 src/scraper/fastsel_album.py create mode 100644 src/scraper/fastsel_artist.py create mode 100644 src/scraper/load_into_db.py diff --git a/src/scraper/counter.py b/src/scraper/counter.py new file mode 100644 index 0000000..af3b2d0 --- /dev/null +++ b/src/scraper/counter.py @@ -0,0 +1,20 @@ +import os +import json + +albums = set() +tracks = set() + +i = 0 + +for artist in os.listdir('artists'): + i += 1 + print(i, artist) + + with open('artists/' + artist) as f: + data = json.load(f) + + for album in data['albums']: + albums.add(album['album_id']) + + for track in data['tracks']: + tracks.add(track['track_id']) \ No newline at end of file diff --git a/src/scraper/fastsel_album.py b/src/scraper/fastsel_album.py new file mode 100644 index 0000000..bfdf4ae --- /dev/null +++ b/src/scraper/fastsel_album.py @@ -0,0 +1,185 @@ +# from seleniumwire import webdriver +from selenium import webdriver +# from selenium.webdriver.chrome.options import Options +import json +import os +import time + +options = webdriver.ChromeOptions() +options.add_argument('--allow-profiles-outside-user-dir') +options.add_argument('--enable-profile-shortcut-manager') +options.add_argument(r'user-data-dir=./User') +options.add_argument('--profile-directory=Profile1') + +options.add_argument('--enable-logging') +options.add_argument('--log-level=0') +options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) + +driver = webdriver.Chrome(chrome_options = options) + +template_args = { + 'extension': None, + 'bearer': None, + 'client-token': None +} + +def get_js_func(album_id): + return f''' + fetch("https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables=%7B%22uri%22%3A%22spotify%3Aalbum%3A{album_id}%22%2C%22locale%22%3A%22%22%2C%22offset%22%3A0%2C%22limit%22%3A50%2C%22enableAssociatedVideos%22%3Afalse%7D&extensions={template_args['extension']}", {{ + "headers": {{ + "accept": "application/json", + "accept-language": "en", + "app-platform": "WebPlayer", + "authorization": "{template_args['bearer']}", + "client-token": "{template_args['client-token']}", + "content-type": "application/json;charset=UTF-8", + "sec-ch-ua": "\"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Linux\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "spotify-app-version": "1.2.27.682.g02eef338" + }}, + "referrer": "https://open.spotify.com/", + "referrerPolicy": "strict-origin-when-cross-origin", + "body": null, + "method": "GET", + "mode": "cors", + "credentials": "include" + }}); + ''' + +def get_net_data(): + logs_raw = driver.get_log("performance") + logs = [json.loads(lr["message"])["message"] for lr in logs_raw] + + def log_filter(log_): + return ( + # is an actual response + log_["method"] == "Network.requestWillBeSent" + # and json + # and "json" in log_["params"]["response"]["mimeType"] + ) + + data = [] + for log in filter(log_filter, logs): + if 'operationName=getAlbum&' in str(log): + print(log) + # request_id = log["params"]["requestId"] + # resp_url = log["params"]["response"]["url"] + + # if 'operationName=getAlbum&' in resp_url: + # try: + # data.append((resp_url, driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body'])) + # except Exception as e: print(e) + +def get_request_template(): + print('Getting request template...') + driver.get_log("performance") + driver.get('https://open.spotify.com/album/3VOqo81Nwyx8rcZEc2l379') + time.sleep(3) + + for lr in driver.get_log("performance"): + log = json.loads(lr["message"])["message"] + if log["method"] == "Network.requestWillBeSent" and 'operationName=getAlbum&' in log['params']['request']['url']: + template_args['bearer'] = log['params']['request']['headers']['authorization'] + template_args['client-token'] = log['params']['request']['headers']['client-token'] + template_args['extension'] = log['params']['request']['url'].split('&')[-1][11:] + print(template_args, '\n') + break + +def fetch_album(album_id): + driver.get_log("performance") + r = driver.execute_script(f''' + await fetch("https://api-partner.spotify.com/pathfinder/v1/query?operationName=getAlbum&variables=%7B%22uri%22%3A%22spotify%3Aalbum%3A{album_id}%22%2C%22locale%22%3A%22%22%2C%22offset%22%3A0%2C%22limit%22%3A50%2C%22enableAssociatedVideos%22%3Afalse%7D&extensions={template_args['extension']}", {{ + "headers": {{ + "accept": "application/json", + "accept-language": "en", + "app-platform": "WebPlayer", + "authorization": "{template_args['bearer']}", + "client-token": "{template_args['client-token']}", + "content-type": "application/json;charset=UTF-8", + "sec-ch-ua": "\\"Chromium\\";v=\\"119\\", \\"Not?A_Brand\\";v=\\"24\\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\\"Linux\\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "spotify-app-version": "1.2.27.682.g02eef338" + }}, + "referrer": "https://open.spotify.com/", + "referrerPolicy": "strict-origin-when-cross-origin", + "body": null, + "method": "GET", + "mode": "cors", + "credentials": "include" + }}); + ''') + time.sleep(0.5) + for lr in driver.get_log("performance"): + log = json.loads(lr["message"])["message"] + if log["method"] == "Network.responseReceived" and\ + 'json' in log["params"]["response"]["mimeType"] and\ + 'operationName=getAlbum&' in log['params']['response']['url']: + request_id = log["params"]["requestId"] + try: + return driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body'] + except Exception as e: print(e) + + + +def parser(): + get_request_template() + + processed = set(x.split('.')[0] for x in os.listdir('albums')) + + start_time = time.time() + save_cnt = 0 + prevFailed = False + didSomething = False + + i = 0 + for artist in sorted(os.listdir('artists')): + i += 1 + print(i, artist) + + with open('artists/' + artist) as f: + data = json.load(f) + + for album in data['albums']: + if album['album_id'] not in processed: + d = fetch_album(album['album_id']) + + if d == None: + if prevFailed: + print('Two fails in a row, resetting session') + return didSomething + else: + prevFailed = True + else: + with open(f'albums/{album["album_id"]}.json', 'w') as f: + f.write(d) + + didSomething = True + processed.add(album["album_id"]) + save_cnt += 1 + print(album["album_id"], save_cnt, (time.time() - start_time)/save_cnt) + return didSomething + +def main(): + # input("\n\nSet up VPN & open spotify in the first tab\n\n[Press ENTER to continue]") + + attempts = 0 + + while True: + attempts += 1 + print(f'Atttempt #{attempts}') + try: + if not parser(): break + except Exception as e: + print(e) + time.sleep(10) + + +main() \ No newline at end of file diff --git a/src/scraper/fastsel_artist.py b/src/scraper/fastsel_artist.py new file mode 100644 index 0000000..5a43de5 --- /dev/null +++ b/src/scraper/fastsel_artist.py @@ -0,0 +1,183 @@ +# from seleniumwire import webdriver +from selenium import webdriver +# from selenium.webdriver.chrome.options import Options +import json +import os +import time + +options = webdriver.ChromeOptions() +options.add_argument('--allow-profiles-outside-user-dir') +options.add_argument('--enable-profile-shortcut-manager') +options.add_argument(r'user-data-dir=./User') +options.add_argument('--profile-directory=Profile1') + +options.add_argument('--enable-logging') +options.add_argument('--log-level=0') +options.set_capability('goog:loggingPrefs', {'performance': 'ALL'}) + +driver = webdriver.Chrome(chrome_options = options) + +template_args = { + 'extension': None, + 'bearer': None, + 'client-token': None +} + +def get_js_func(album_id): + return f''' + fetch("https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistOverview&variables=%7B%22uri%22%3A%22spotify%3Aalbum%3A{album_id}%22%2C%22locale%22%3A%22%22%2C%22offset%22%3A0%2C%22limit%22%3A50%2C%22enableAssociatedVideos%22%3Afalse%7D&extensions={template_args['extension']}", {{ + "headers": {{ + "accept": "application/json", + "accept-language": "en", + "app-platform": "WebPlayer", + "authorization": "{template_args['bearer']}", + "client-token": "{template_args['client-token']}", + "content-type": "application/json;charset=UTF-8", + "sec-ch-ua": "\"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\"Linux\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "spotify-app-version": "1.2.27.682.g02eef338" + }}, + "referrer": "https://open.spotify.com/", + "referrerPolicy": "strict-origin-when-cross-origin", + "body": null, + "method": "GET", + "mode": "cors", + "credentials": "include" + }}); + ''' + +def get_net_data(): + logs_raw = driver.get_log("performance") + logs = [json.loads(lr["message"])["message"] for lr in logs_raw] + + def log_filter(log_): + return ( + # is an actual response + log_["method"] == "Network.requestWillBeSent" + # and json + # and "json" in log_["params"]["response"]["mimeType"] + ) + + data = [] + for log in filter(log_filter, logs): + if 'operationName=queryArtistOverview&' in str(log): + print(log) + # request_id = log["params"]["requestId"] + # resp_url = log["params"]["response"]["url"] + + # if 'operationName=getAlbum&' in resp_url: + # try: + # data.append((resp_url, driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body'])) + # except Exception as e: print(e) + +def get_request_template(): + print('Getting request template...') + driver.get_log("performance") + driver.get('https://open.spotify.com/artist/4iHNK0tOyZPYnBU7nGAgpQ') + time.sleep(3) + + for lr in driver.get_log("performance"): + log = json.loads(lr["message"])["message"] + if log["method"] == "Network.requestWillBeSent" and 'operationName=queryArtistOverview&' in log['params']['request']['url']: + template_args['bearer'] = log['params']['request']['headers']['authorization'] + template_args['client-token'] = log['params']['request']['headers']['client-token'] + template_args['extension'] = log['params']['request']['url'].split('&')[-1][11:] + print(template_args, '\n') + break + +def fetch_artist(artist_id): + driver.get_log("performance") + r = driver.execute_script(f''' + await fetch("https://api-partner.spotify.com/pathfinder/v1/query?operationName=queryArtistOverview&variables=%7B%22uri%22%3A%22spotify%3Aartist%3A{artist_id}%22%2C%22locale%22%3A%22%22%2C%22includePrerelease%22%3Atrue%7D&extensions={template_args['extension']}", {{ + "headers": {{ + "accept": "application/json", + "accept-language": "en", + "app-platform": "WebPlayer", + "authorization": "{template_args['bearer']}", + "client-token": "{template_args['client-token']}", + "content-type": "application/json;charset=UTF-8", + "sec-ch-ua": "\\"Chromium\\";v=\\"119\\", \\"Not?A_Brand\\";v=\\"24\\"", + "sec-ch-ua-mobile": "?0", + "sec-ch-ua-platform": "\\"Linux\\"", + "sec-fetch-dest": "empty", + "sec-fetch-mode": "cors", + "sec-fetch-site": "same-site", + "spotify-app-version": "1.2.27.682.g02eef338" + }}, + "referrer": "https://open.spotify.com/", + "referrerPolicy": "strict-origin-when-cross-origin", + "body": null, + "method": "GET", + "mode": "cors", + "credentials": "include" + }}); + ''') + time.sleep(0.5) + for lr in driver.get_log("performance"): + log = json.loads(lr["message"])["message"] + if log["method"] == "Network.responseReceived" and\ + 'json' in log["params"]["response"]["mimeType"] and\ + 'operationName=queryArtistOverview&' in log['params']['response']['url']: + request_id = log["params"]["requestId"] + try: + return driver.execute_cdp_cmd("Network.getResponseBody", {"requestId": request_id})['body'] + except Exception as e: print(e) + + + +def parser(): + get_request_template() + + processed = set(x.split('.')[0] for x in os.listdir('artist_stats')) + + start_time = time.time() + save_cnt = 0 + prevFailed = False + didSomething = False + + i = 0 + for artist in sorted(os.listdir('artists')): + i += 1 + print(i, artist) + + artist_id = artist.split('.')[0].split('-')[-1] + + if artist_id not in processed: + d = fetch_artist(artist_id) + + if d == None: + if prevFailed: + print('Two fails in a row, resetting session') + return didSomething + else: + prevFailed = True + else: + with open(f'artist_stats/{artist_id}.json', 'w') as f: + f.write(d) + + didSomething = True + processed.add(artist_id) + save_cnt += 1 + print(artist_id, save_cnt, (time.time() - start_time)/save_cnt) + return didSomething + +def main(): + # input("\n\nSet up VPN & open spotify in the first tab\n\n[Press ENTER to continue]") + + attempts = 0 + + while True: + attempts += 1 + print(f'Atttempt #{attempts}') + try: + if not parser(): break + except Exception as e: + print(e) + time.sleep(10) + + +main() diff --git a/src/scraper/load_into_db.py b/src/scraper/load_into_db.py new file mode 100644 index 0000000..286944a --- /dev/null +++ b/src/scraper/load_into_db.py @@ -0,0 +1,53 @@ +import os +import json +import requests +from datetime import datetime + +for artist in sorted(os.listdir('artist_stats')): + + with open('artist_stats/' + artist) as f: + data_raw = json.load(f)['data']['artistUnion'] + + with open('artists/artist-' + artist) as f: + model = json.load(f) + + model['followers'] = data_raw['stats']['followers'] + model['monthly_listeners'] = data_raw['stats']['monthlyListeners'] + model['world_rank'] = data_raw['stats']['worldRank'] + model['top_cities'] = data_raw['stats']['topCities']['items'] + + tracks_raw = {} + + found_albums = [] + + for album in model['albums']: + found_albums.append(album['album_id']) + with open('albums/' + album['album_id'] + '.json') as f: + album_raw = json.load(f)['data']['albumUnion'] + + for track in album_raw['tracks']['items']: + track_id = track['track']['uri'].split(':')[-1] + if track_id not in tracks_raw: + tracks_raw[track_id] = [] + tracks_raw[track_id].append(track['track']) + + if 'date' in album_raw and album_raw['date'] != None and 'isoString' in album_raw['date']: + album['release_date'] = album_raw['date']['isoString'] + elif len(album['release_date']) == 4: + album['release_date'] = datetime.strptime(album['release_date'], '%Y').isoformat() + else: + print(album['release_date']) + raise Exception + + for track in model['tracks']: + if track['track_id'] not in tracks_raw: + print(track['track_id']) + else: + track_raw = tracks_raw[track['track_id']][0] + track['plays'] = track_raw['playcount'] + + r = requests.post('http://192.168.191.64:5000/saveArtist', + headers = {'Content-Type': 'application/json'}, + data = json.dumps(model)) + + print(artist, r.status_code) diff --git a/src/scraper/seltest.py b/src/scraper/seltest.py index 1d1e1d1..486fccd 100644 --- a/src/scraper/seltest.py +++ b/src/scraper/seltest.py @@ -70,7 +70,7 @@ def parser(): save_cnt = 0 i = 0 - for artist in os.listdir('artists'): + for artist in sorted(os.listdir('artists')): i += 1 print(i, artist) @@ -80,7 +80,7 @@ def parser(): for album in data['albums']: if album['album_id'] not in processed: driver.get('https://open.spotify.com/album/' + album['album_id']) - time.sleep(1) + time.sleep(2) save_cnt = save_album_data(processed, start_time, save_cnt) def main():