Mthrfkr commited on
Commit
ec371a8
·
verified ·
1 Parent(s): cb62366

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -2
app.py CHANGED
@@ -70,6 +70,7 @@ def obtener_canciones_playlist_spotify(token, playlist_id, playlist_name):
70
  track = item.get('track')
71
  if track:
72
  audio_features = obtener_caracteristicas_audio(token, track['id'])
 
73
  canciones.append({
74
  'playlist_name': playlist_name,
75
  'artista': track['artists'][0]['name'] if track['artists'] else 'Desconocido',
@@ -84,8 +85,8 @@ def obtener_canciones_playlist_spotify(token, playlist_id, playlist_name):
84
  'instrumentalness': audio_features.get('instrumentalness', 'No disponible'),
85
  'duration': track.get('duration_ms', 'No disponible'),
86
  'release_year': track.get('album', {}).get('release_date', 'No disponible').split('-')[0] if track.get('album', {}).get('release_date') else 'No disponible',
87
- 'loudness': audio_features.get('loudness', 'No disponible'),
88
- 'timbre': audio_features.get('timbre', 'No disponible'),
89
  'acousticness': audio_features.get('acousticness', 'No disponible'),
90
  'liveness': audio_features.get('liveness', 'No disponible'),
91
  'link': track['external_urls']['spotify'],
@@ -106,6 +107,15 @@ def obtener_caracteristicas_audio(token, track_id):
106
  response = requests.get(url, headers={'Authorization': f'Bearer {token}'})
107
  return response.json() if response.status_code == 200 else {}
108
 
 
 
 
 
 
 
 
 
 
109
  def obtener_record_label_spotify(album_id, token):
110
  url = f'https://api.spotify.com/v1/albums/{album_id}'
111
  headers = {'Authorization': f'Bearer {token}'}
 
70
  track = item.get('track')
71
  if track:
72
  audio_features = obtener_caracteristicas_audio(token, track['id'])
73
+ audio_analysis = obtener_analisis_audio(token, track['id'])
74
  canciones.append({
75
  'playlist_name': playlist_name,
76
  'artista': track['artists'][0]['name'] if track['artists'] else 'Desconocido',
 
85
  'instrumentalness': audio_features.get('instrumentalness', 'No disponible'),
86
  'duration': track.get('duration_ms', 'No disponible'),
87
  'release_year': track.get('album', {}).get('release_date', 'No disponible').split('-')[0] if track.get('album', {}).get('release_date') else 'No disponible',
88
+ 'loudness': audio_analysis.get('track', {}).get('loudness', 'No disponible'),
89
+ 'timbre': audio_analysis.get('segments', [{}])[0].get('timbre', 'No disponible'),
90
  'acousticness': audio_features.get('acousticness', 'No disponible'),
91
  'liveness': audio_features.get('liveness', 'No disponible'),
92
  'link': track['external_urls']['spotify'],
 
107
  response = requests.get(url, headers={'Authorization': f'Bearer {token}'})
108
  return response.json() if response.status_code == 200 else {}
109
 
110
+ def obtener_analisis_audio(token, track_id):
111
+ url = f'https://api.spotify.com/v1/audio-analysis/{track_id}'
112
+ headers = {'Authorization': f'Bearer {token}'}
113
+ response = requests.get(url, headers=headers)
114
+ if response.status_code == 429: # Límite alcanzado
115
+ token = cambiar_api_key()
116
+ response = requests.get(url, headers={'Authorization': f'Bearer {token}'})
117
+ return response.json() if response.status_code == 200 else {}
118
+
119
  def obtener_record_label_spotify(album_id, token):
120
  url = f'https://api.spotify.com/v1/albums/{album_id}'
121
  headers = {'Authorization': f'Bearer {token}'}