Skip to content

Instantly share code, notes, and snippets.

@MartinWeiss12
MartinWeiss12 / spotifyAlbumGrid.py
Last active December 17, 2022 06:12
Get Album URIs
print('Total Tracks:', len(trackUriList))
for uri in range(len(trackUriList)):
spotifyUrl = requests.get('https://open.spotify.com/track/' + str(trackUriList[uri]))
spoifyHtmlData = soup(spotifyUrl.text, 'html.parser')
divData = str(spoifyHtmlData.find('div', {'class': 'TS85Qkpioa31wR0p4kzT'}))
if(divData != 'None'):
divData = divData.split('=')
albumUrl = divData[5]
albumUrl = albumUrl.split('"')
albumUriList.append(albumUrl[1].replace('/album/', ''))
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 18, 2022 00:33
Pivot Table
albumUriDf = pd.DataFrame(list(zip(rankList, trackList, streamList, albumUriList)),
columns = ['Rank', 'Track', 'Streams', 'Album URI'])
albumUriDfPivot = albumUriDf.pivot_table(index = ['Album URI'],
values = ['Streams'], aggfunc = 'sum').reset_index('Album URI')
albumUriDfPivot = albumUriDfPivot.sort_values(by = 'Streams', ascending = False)
rankList = []
for album in range(albumUriDfPivot.shape[0]):
rankList.append(album+1)
albumUriDfPivot.insert(0, 'Rank', rankList)
uniqueAlbumUriList = albumUriDfPivot['Album URI'].tolist()
@MartinWeiss12
MartinWeiss12 / spotifyAlbumGrid.py
Last active December 17, 2022 06:14
Get Album Cover Art Image URLs
albumImageUrlList = []
for uri in range(49):
spotifyUrl = requests.get('https://open.spotify.com/album/' +
str(uniqueAlbumUriList[uri]))
bodyText = str(soup(spotifyUrl.text, 'html.parser'))
bodyTextInfo = bodyText.split('<')
albumImageData = bodyTextInfo[24]
albumImageData = albumImageData.split('"')
albumImageUrlList.append(albumImageData[1])
@MartinWeiss12
MartinWeiss12 / spotifyAlbumGrid.py
Last active December 17, 2022 06:15
Download Album Cover Art
for image in range(len(albumImageUrlList)):
albumImageUrl = requests.get(albumImageUrlList[image])
filename = 'album_' + str(image+1) + '.png'
with open(os.path.join(imageFolderPath, filename), 'wb') as out:
out.write(albumImageUrl.content)
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 17, 2022 18:52
Get Artist URI
artistUriList = []
print('Total Tracks:', len(trackUriList))
for uri in range(len(trackUriList)):
goodLink = False
while not goodLink:
spotifyUrl = requests.get('https://open.spotify.com/track/' +
str(trackUriList[uri]))
if('200' in str(spotifyUrl)):
goodLink = True
else:
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 18, 2022 00:32
Artist Pivot Table
artistUriDf = pd.DataFrame(list(zip(rankList, trackList, trackUriList, streamList,
artistUriList)), columns = ['Rank', 'Track', 'Track URI', 'Streams', 'Artist URI'])
for row in artistUriDf.index:
if(artistUriDf['Artist URI'][row] == 'Error'):
artistUriDf.drop([row], axis = 0, inplace = True)
artistUriDfPivot = artistUriDf.pivot_table(index = ['Artist URI'],
values = ['Streams'], aggfunc = 'sum').reset_index('Artist URI')
artistUriDfPivot = artistUriDfPivot.sort_values(by = 'Streams', ascending = False
rankList = []
for artist in range(artistUriDfPivot.shape[0]):
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active December 17, 2022 23:54
Spotify API Initialization
cid = ''
secret = ''
username = ''
redirect_uri = 'http://localhost:8888/callback'
scope = 'user-top-read playlist-modify-public'
token = util.prompt_for_user_token(username, scope,
client_id = cid, client_secret = secret, redirect_uri = redirect_uri)
if token:
sp = spotipy.Spotify(auth = token)
@MartinWeiss12
MartinWeiss12 / spotifyArtistGrid.py
Last active January 4, 2024 05:10
Get Artist Image URL With Spotify API
artistImageUrlList = []
print('Total artists streamed:', len(uniqueArtistUriList))
for uri in range(49):
spotifyUrl = requests.get('https://open.spotify.com/artist/' +
str(uniqueArtistUriList[uri]))
spoifyHtmlData = str(soup(spotifyUrl.text, 'html.parser'))
spoifyHtmlData = spoifyHtmlData.split('<')
artistName = spoifyHtmlData[5].split('>')
artistName = artistName[1].split('|')
artistApiResults = requests.get('https://api.spotify.com/v1/search',
@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)
@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))