
Reproducción de laboratorio autorizada de CVE-2025-47928 (exfiltración de secretos de pull_request_target en spotipy-dev/spotipy) — instantánea en el commit vulnerable 4f5759d
Artefacto de investigación automatizado — no es el proyecto original.
Este repositorio es un laboratorio desechable construido por un sistema automatizado para una tesis de maestría en la Université Laval sobre la reproducción de vulnerabilidades publicadas en flujos de trabajo de GitHub Actions. Es una instantánea verbatim de
spotipy-dev/spotipyen el commit4f5759dbfb4506c7b6280572a4db1aabc1ac778d(2025-04-21), redistribuida bajo la licencia de ese proyecto, cuyo archivo se incluye sin cambios en esta instantánea.El proyecto original no está involucrado, nunca es el objetivo, y la vulnerabilidad estudiada aquí ya es pública. Cada secreto y variable en este repositorio es un valor ficticio generado aleatoriamente — no hay ninguna credencial real presente. Las referencias de acciones e imágenes de ejecutores están fijadas a lo que resolvieron el 2025-04-21; consulta
pinning.mden la salida del sistema para cada cambio realizado en la instantánea.Preguntas u objeciones: [email protected]
Spotipy soporta todas las funciones de la API web de Spotify, incluido el acceso a todos los puntos finales y el soporte para la autorización de usuarios. Para conocer los detalles sobre las capacidades, te recomendamos revisar la documentación de la API web de Spotify.
pip install spotipy
alternativamente, para usuarios de Windows
py -m pip install spotipy
o actualiza
pip install spotipy --upgrade
Puedes encontrar un conjunto completo de ejemplos en la documentación en línea y en el directorio de ejemplos de Spotipy.
Para comenzar, instala spotipy, crea una nueva cuenta o inicia sesión en https://developers.spotify.com/. Ve al panel de control, crea una aplicación y añade tu nuevo ID y SECRET (el ID y el SECRET se pueden encontrar en la configuración de la aplicación) a tu entorno:
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id="YOUR_APP_CLIENT_ID",
client_secret="YOUR_APP_CLIENT_SECRET"))
results = sp.search(q='weezer', limit=20)
for idx, track in enumerate(results['tracks']['items']):
print(idx, track['name'])
Resultado esperado:
0 Island In The Sun
1 Say It Ain't So
2 Buddy Holly
.
.
.
18 Troublemaker
19 Feels Like Summer
Se debe añadir una URI de redirección a tu aplicación en Mi panel de control para acceder a las funciones autenticadas por el usuario.
import spotipy
from spotipy.oauth2 import SpotifyOAuth
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="YOUR_APP_CLIENT_ID",
client_secret="YOUR_APP_CLIENT_SECRET",
redirect_uri="YOUR_APP_REDIRECT_URI",
scope="user-library-read"))
results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
track = item['track']
print(idx, track['artists'][0]['name'], " – ", track['name'])
El resultado esperado será la lista de música que te gusta. Por ejemplo, si te gustan Red y Sunflower, el resultado será:
0 Post Malone – Sunflower - Spider-Man: Into the Spider-Verse
1 Taylor Swift – Red
Para preguntas frecuentes, consulta nuestras FAQ.
Puedes hacer preguntas sobre Spotipy en Stack Overflow. No olvides añadir la etiqueta Spotipy, así como cualquier otra etiqueta relevante, antes de publicar.
Si tienes sugerencias, errores u otros problemas específicos de esta biblioteca, repórtalos aquí. O simplemente envía una solicitud de extracción (pull request).
Si eres un desarrollador con experiencia en Python y te gustaría contribuir a Spotipy, asegúrate de seguir las pautas enumeradas en la página de documentación