mirror of
https://github.com/JonasunderscoreJones/turbo-octo-potato.git
synced 2025-10-25 02:59:18 +02:00
Added Api call counter
Added an api call counter to keep track of potential rate limits (which will very likely occur at some point during the script. Personal results: 10k api calls for 152 artists
This commit is contained in:
parent
c78373ca38
commit
2a4bad63bb
1 changed files with 20 additions and 10 deletions
|
|
@ -6,6 +6,8 @@ from dotenv import load_dotenv
|
|||
|
||||
load_dotenv()
|
||||
INTROOUTROPLAYLIST_ID = os.getenv('INTROOUTROPLAYLIST_ID')
|
||||
#INTROOUTROPLAYLIST_ID = os.getenv('RANDOMTESTPLAYLIST_ID')
|
||||
print(INTROOUTROPLAYLIST_ID)
|
||||
|
||||
def track_is_eligible(track):
|
||||
if track['duration_ms'] < 90000:
|
||||
|
|
@ -15,8 +17,8 @@ def track_is_eligible(track):
|
|||
return False
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
api_call_count = 0
|
||||
print("Authenticating...")
|
||||
authenticator = top_lib.Auth(verbose=True)
|
||||
sp = authenticator.newSpotifyauth("user-follow-read playlist-modify-public playlist-modify-private")
|
||||
|
|
@ -24,28 +26,36 @@ if __name__ == "__main__":
|
|||
print("Authenticated!")
|
||||
print("Fetching Artists...")
|
||||
artists = spotifyManager.fetchUserFollowedArtists()
|
||||
api_call_count += 4
|
||||
print("Found " + str(len(artists))+ " Artists!")
|
||||
|
||||
track_uris = []
|
||||
|
||||
num_artists = len(artists)
|
||||
now_artist = 0
|
||||
for artist in artists:
|
||||
now_artist += 1
|
||||
try:
|
||||
print("Fetching albums for", artist[1])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Fetching albums for", artist[1])
|
||||
albums = spotifyManager.fetchArtistAlbums(artist[0])
|
||||
api_call_count += 1
|
||||
except top_lib.SpotifyTooManyAlbumsError:
|
||||
print("Error fetching albums for", artist[1])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Error fetching albums for", artist[1])
|
||||
continue
|
||||
for album in albums[0]:
|
||||
print("Fetching tracks for", album[0])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Fetching tracks for", album[0])
|
||||
album_track_uris = spotifyManager.getTrackUrisFromAlbum(album[1])
|
||||
api_call_count += 1
|
||||
for track_uri in album_track_uris:
|
||||
track = sp.track(track_uri)
|
||||
api_call_count += 1
|
||||
if track_is_eligible(track):
|
||||
print(track['artists'][0]['name'], track['name'])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] " + track['artists'][0]['name'], track['name'])
|
||||
track_uris.append(track_uri)
|
||||
sp.playlist_add_items(INTROOUTROPLAYLIST_ID, [track_uri])
|
||||
api_call_count += 1
|
||||
continue
|
||||
print("Skipping", track['artists'][0]['name'], track['name'], end="\r")
|
||||
print("\nDone with", album[0])
|
||||
print("Done with", artist[1])
|
||||
print("Done with all artists")
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Skipping", track['artists'][0]['name'], track['name'], end="\r")
|
||||
print(f"\n[{now_artist}/{num_artists}]{api_call_count}] Done with", album[0])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Done with", artist[1])
|
||||
print(f"[{now_artist}/{num_artists}]{api_call_count}] Done with all artists")
|
||||
print("TOOK THIS MANY API CALLS: ", api_call_count)
|
||||
Loading…
Add table
Add a link
Reference in a new issue