Skip to content

Instantly share code, notes, and snippets.

@MartinWeiss12
MartinWeiss12 / spotify-grid.py
Last active October 6, 2024 17:04
Make Grids
full_grid(album_images, 'Album')
full_grid(artist_images, 'Artist')
mini_grid(album_images, 'Album')
mini_grid(artist_images, 'Artist')
@MartinWeiss12
MartinWeiss12 / spotify-grid.py
Last active December 12, 2023 03:42
Import Files
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
@MartinWeiss12
MartinWeiss12 / spotify-wrapped.py
Created December 11, 2023 19:54
Map and Merge DataFrames
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')
@MartinWeiss12
MartinWeiss12 / spotify-wrapped.py
Last active December 11, 2023 22:04
Get Artist Image URL
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)
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]
@MartinWeiss12
MartinWeiss12 / spotify-wrapped.py
Last active December 11, 2023 19:44
track_artist DataFrame
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']]
@MartinWeiss12
MartinWeiss12 / spotifyDataML.py
Last active November 14, 2023 01:38
Spotify Recommendation Engine
import math
import time
import spotipy
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn import tree
import spotipy.util as util
from datetime import datetime
import matplotlib.pyplot as plt
@MartinWeiss12
MartinWeiss12 / nba_efficiency.R
Last active March 6, 2023 16:00
NBA Efficiency
library(png)
library(grid)
library(units)
library(imager)
library(readxl)
library(ggplot2)
# install.packages("ggimage")
# source: https://www.nba.com/stats/teams/advanced?dir=A&sort=NET_RATING
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 18, 2022 00:30
Paste Artist Images
spotifyArtistGrid = Image.new('RGB', (1000, 1000))
for i in range(1, 2):
imagePath = imageFolderPath + '/artist_' + str(i) + '.png'
artistImage = Image.open(imagePath)
artistImage = artistImage.resize((400, 400))
spotifyArtistGrid.paste(artistImage, (300, 300))
for i in range(2, 6):
imagePath = imageFolderPath + '/artist_' + str(i) + '.png'
artistImage = Image.open(imagePath)
artistImage = artistImage.resize((200, 200))
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 17, 2022 06:24
Download Artist Images
for image in range(len(artistImageUrlList)):
artistImageUrl = requests.get(artistImageUrlList[image])
filename = 'artist_' + str(image+1) + '.png'
with open(os.path.join(imageFolderPath, filename), 'wb') as out:
out.write(artistImageUrl.content)