This repository has been archived on 2023-09-06. You can view files and clone it, but cannot push or open issues or pull requests.
generatio/main.py
2023-09-06 03:04:29 +02:00

52 lines
1.3 KiB
Python

import spotipy
from spotipy.oauth2 import SpotifyOAuth
from dotenv import load_dotenv
# Load .env
load_dotenv()
# Connect to spotify
spotify = spotipy.Spotify(auth_manager=SpotifyOAuth(
scope="user-library-read",
open_browser=False))
# Fetch the saved tracks of a specified user
offset = 0
saved_tracks = []
limit = 50
while True:
try:
print(f"Récupération {offset}-{offset + limit}")
results = spotify.current_user_saved_tracks(limit=limit, offset=offset)
except spotipy.exceptions.SpotifyException as e:
if e.http_status == 429:
print("Récolte terminé, l'API a bien mangé.")
break
else:
print(f"Ca a buggé: {e}")
exit(1)
else:
offset += limit
# Break the loop if we reach the end
if len(results['items']) == 0:
break
saved_tracks.extend(results['items'])
with open("result.csv", "w") as file:
file.write("titre;artiste;date\n")
# Extract data
buffer = ""
for item in saved_tracks:
track = item['track']
buffer += f"{track['name'].replace(';', ',')};"
buffer += f"{track['artists'][0]['name'].replace(';', ',')};"
buffer += f"{track['album']['release_date']}\n"
# Save to a file
with open("result.csv", "a") as file:
file.write(buffer)