This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
image_width, image_height = 600, 450 | |
data_transforms = { | |
'train': transforms.Compose([ | |
transforms.Resize((image_width, image_height)), | |
transforms.RandomHorizontalFlip(), | |
transforms.ToTensor(), | |
transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]) | |
]), | |
'test': transforms.Compose([ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import torch | |
from torch.utils.data import DataLoader | |
from torchvision import datasets, transforms | |
import torch.nn as nn | |
import torch.nn.functional as F | |
import numpy as np | |
import cv2 | |
import matplotlib.pyplot as plt | |
import matplotlib.cm as cm |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# your client id | |
client_id = '' | |
# your client secret | |
client_secret = '' | |
token_url = 'https://accounts.spotify.com/api/token' | |
token_data = {'grant_type': 'client_credentials'} | |
token_response = requests.post(token_url, auth=(client_id, client_secret), data=token_data) | |
access_token = token_response.json()['access_token'] | |
headers = {'Authorization': f'Bearer {access_token}'} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
album_grid = make_grid(album_images, 'Album') | |
artist_grid = make_grid(artist_images, 'Artist') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def download_images(folder, type): | |
top_49 = folder[f'{type} Image URL'][:49] | |
folder_path = os.path.abspath(f'{type}-Images') | |
for i, url in enumerate(top_49): | |
with open(os.path.join(folder_path, f'{type}-{i+1}.png'), 'wb') as file: | |
file.write(requests.get(url).content) | |
download_images(top_albums, 'Album') | |
download_images(top_artists, 'Artist') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import requests | |
import pandas as pd | |
from PIL import Image | |
# path for the excel file for your top albums | |
top_albums = pd.read_excel('') | |
# path for the excel file for your top artists | |
top_artists = pd.read_excel('') | |
# path for an empty folder named 'Album-Images' where the album images will be saved to |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
track_artist_album_df['Artist Image URL'] = track_artist_album_df['Artist URI'].map(unique_artist_image_url_dict) | |
merged_track_artist_album_url_df = pd.merge(cleaned_df, track_artist_album_df, on='Track URI', how='left') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
artist_uris = track_artist_album_df['Artist URI'] | |
unique_artist_uris = list(set(artist_uris)) | |
n_unique_artist_sublists = len(unique_artist_uris) // 50 + (len(unique_artist_uris) % 50 > 0) | |
unique_artist_sublists = [unique_artist_uris[i * 50 : (i + 1) * 50] for i in range(n_unique_artist_sublists)] | |
unique_artist_image_url_dict = {} | |
start_time = time.time() | |
for artist_list in unique_artist_sublists: | |
params = {'ids': ','.join(artist_list)} | |
response = requests.get('https://api.spotify.com/v1/artists?', headers=headers, params=params) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
track_artist_df['Duplicate URI'] = track_artist_df['URI'] | |
groups = track_artist_df.groupby(['Track', 'Artist']) | |
for group_name, group_df in groups: | |
if len(group_df) > 1: | |
unique_uris = group_df['URI'].unique() | |
track_artist_df.loc[group_df.index, 'Duplicate URI'] = unique_uris[0] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cleaned_df = pd.DataFrame(list(zip( | |
filtered_data['master_metadata_track_name'], | |
filtered_data['master_metadata_album_album_name'], | |
filtered_data['master_metadata_album_artist_name'], | |
filtered_data['spotify_track_uri'])), | |
columns=['Track', 'Album', 'Artist', 'Track URI'] | |
) | |
cleaned_df = ( | |
cleaned_df[~cleaned_df[['Track', 'Album', 'Artist', 'Track URI']] |
NewerOlder