Indipendentemente dal piano utilizzato, Spotify consente di comporre, nel tempo, una lista di brani preferiti. Un tempo lo si faceva toccando l’icona del cuore, più di recente sostituita dal simbolo “+” durante la riproduzione. La sezione “Brani che ti piacciono” non è una vera e propria playlist e Spotify non consente di salvare questi dati come file TXT o CSV. In questo nostro articolo vi sveliamo come esportare brani da Spotify e salvarli eventualmente all’interno di una nuova playlist, creata allo scopo.
Abbiamo detto che Spotify non integra di per sé alcuna funzionalità per esportare la musica. Nel seguito spieghiamo come farlo senza ricorrere ad applicazioni di terze parti e senza trasferire alcun dato personale su altri server remoti.
Gli utenti di Spotify, compresi coloro che utilizzano il piano free, senza la sottoscrizione di alcun abbonamento, possono infatti creare e utilizzare delle applicazioni. Basta servirsi di Spotify for Developers, la piattaforma per gli sviluppatori che mette a disposizione apposite chiavi per l’utilizzo delle API (Application Programming Interface) del servizio.
Le API Spotify sono uno strumento prezioso in quanto permettono di richiedere l’effettuazione di operazioni non previste all’interno della normale interfaccia, su desktop, dispositivi mobili e Web.
Esportare brani preferiti da Spotify
Per dialogare con le API di Spotify, utilizziamo il linguaggio Python che deve essere installato sul sistema in uso. È possibile utilizzare qualunque sistema operativo e anche il Sottosistema Windows per Linux (WSL) per eseguire una distribuzione Linux come Ubuntu in finestra, senza abbandonare Windows.
I comandi seguenti permettono di verificare se siano correttamente installati sia Python che pip, il gestore di pacchetti Python:
python3 --version
pip --version
Sostituire eventualmente python3
con python
e pip
con pip3
.
Creare una nuova app all’interno di Spotify for Developers
Come primo passo, è necessario portarsi negli strumenti per gli sviluppatori, effettuando il login con il proprio account Spotify. Cliccando su Create app, si deve assegnare un nome e una descrizione all’app in fase di creazione. Nel campo Redirect URIs, si deve inserire quanto segue:
http://localhost:8888/callback
Gli altri campi e le varie caselle accessorie possono essere lasciati inalterati. Alla fine, cliccare sul pulsante Save.
Selezionando l’applicazione appena creata, quindi scegliendo Settings, si accede alla scheda Basic information. È importante fare clic sul link View client secret e tenere sotto mano il contenuto dei campi Client ID e Client secret.
Script Python per estrarre la lista dei brani preferiti su Spotify
Per esportare i brani preferiti Spotify e salvarne l’elenco in formato testuale, si può utilizzare un semplice script Python. Per creare lo script branipreferiti.py
in Linux, basta digitare:
nano branipreferiti.py
Il passaggio successivo consiste nel selezionare e incollare nell’editor di testo tutto il codice che segue:
import spotipy from spotipy.oauth2 import SpotifyOAuth # Configura le credenziali sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="TUO_CLIENTID", client_secret="TUO_CLIENTSECRET", redirect_uri="http://localhost:8888/callback", scope="user-library-read")) # Imposta il limite di risultati per pagina limit = 50 offset = 0 all_tracks = [] while True: # Recupera i brani salvati con offset e limite results = sp.current_user_saved_tracks(limit=limit, offset=offset) tracks = results['items'] all_tracks.extend(tracks) # Verifica se ci sono altri brani da recuperare if len(tracks) < limit: break # Aggiorna l'offset per la prossima iterazione offset += limit # Scrivi i link dei brani in un file di testo with open('brani_preferiti.txt', 'w', encoding='utf-8') as file: for idx, item in enumerate(all_tracks): track = item['track'] file.write(f"{idx + 1}. {track['name']} - {track['external_urls']['spotify']}\n") print("La lista dei brani preferiti è stata salvata in 'brani_preferiti.txt'.")
Al posto di TUO_CLIENTID e TUO_CLIENTSECRET vanno specificate le stringhe Client ID e Client secret associate all’app creata in precedenza.
È quindi necessario procedere con l’installazione della libreria Spotipy:
pip install spotipy
Digitando python3 branipreferiti.py
, si avvia lo script che dapprima richiede un’autorizzazione specifica per accedere a tutti i dati contenuti nell’account Spotify. Per procedere, basta cliccare su Accetto.
La libreria Spotipy gestisce l’autenticazione attraverso un server Web locale, che risponde all’URL specificato (ad esempio http://localhost:8888/callback
). Una volta autorizzato, il server locale riceve automaticamente un codice di conferma da Spotify e procede a completare l’autenticazione senza che l’utente debba mai incollare manualmente l’URL.
Poiché l’API di Spotify restituisce i risultati ovvero l’elenco dei brani musicali in blocchi (pagine) da 20 brani per richiesta, lo script Python effettua un’iterazione su tutte le pagine dei risultati.
Alla fine, ciò che si ottiene in output è un file di nome brani_preferiti.txt
contenente la lista dei brani preferiti Spotify in formato testuale. Si può verificarlo digitando nano brani_preferiti.txt
.
Creare una playlist Spotify pubblica o privata con i brani preferiti
Il passaggio seguente potrebbe essere quello di trasformare la lista dei brani preferiti in una playlist Spotify, pubblica o privata.
È possibile utilizzare il seguente script Python che crea una playlist chiamata “Playlist da brani preferiti“. Per impostazione predefinita, la lista è privata (public=False
) ma è possibile renderla pubblica semplicemente passando all’API Spotify la direttiva public=True
:
import spotipy from spotipy.oauth2 import SpotifyOAuth # Configura le credenziali sp = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id="TUO_CLIENTID", client_secret="TUO_CLIENTSECRET", redirect_uri="http://localhost:8888/callback", scope="playlist-modify-private,playlist-modify-public,user-library-read"> # Passo 1: Recuperare i brani preferiti limit = 50 offset = 0 all_tracks = [] while True: results = sp.current_user_saved_tracks(limit=limit, offset=offset) tracks = results['items'] all_tracks.extend(tracks) if len(tracks) < limit: break offset += limit # Estrarre gli URI dei brani (necessari per aggiungerli alla playlist) track_uris = [item['track']['uri'] for item in all_tracks] # Passo 2: Creare una nuova playlist user_id = sp.current_user()['id'] # Ottieni l'ID dell'utente corrente playlist_name = "Playlist da brani preferiti" playlist_description = "Una playlist creata automaticamente con i brani che ti piacciono" playlist = sp.user_playlist_create(user=user_id, name=playlist_name, public=False, description=playlist_description) # Passo 3: Aggiungere i brani preferiti alla nuova playlist # L'API Spotify permette di aggiungere fino a 100 brani per richiesta for i in range(0, len(track_uris), 100): sp.playlist_add_items(playlist_id=playlist['id'], items=track_uris[i:i + 100]) print(f"La playlist '{playlist_name}' è stata creata con successo e i brani preferiti sono stati aggiunti.")
Al solito, i “segnaposto” TUO_CLIENTID e TUO_CLIENTSECRET vanno sostituiti con i valori Client ID e Client secret associati all’app creata in precedenza.
Lo script tiene conto del fatto che Spotify accetta soltanto fino a 100 brani per richiesta: per creare playlist composte da un numero elevato di brani, l’attività è automaticamente suddivisa in più richieste.
Ovviamente, è possibile personalizzare il nome della playlist modificando il valore della variabile playlist_name
. In corrispondenza della riga successiva si trova anche la descrizione.
Terminata l’operazione di esportazione dei brani, si può accedere normalmente all’interfaccia di Spotify e applicare gli ultimi aggiustamenti sulla playlist così creata. Ricordiamo che è possibile servirsi dei tasti freccia, da premere insieme con CTRL
o MAIUSC
per selezionare più brani (esattamente come si farebbe in un qualunque file manager).
Note finali
Se non si fosse fatto velocemente clic sui pulsanti Accetto, gli script Python potrebbero restituire un errore simile al seguente: “spotipy.oauth2.SpotifyOauthError: Server listening on localhost has not been accessed“. In questo caso è sufficiente riprovare, eventualmente cancellando la playlist parziale che fosse stata nel frattempo creata. È eventualmente possibile aggiungere una routine per la gestione della scadenza del token autorizzativo di Spotify.
L’immagine in apertura è di Spotify ed è tratta da questa pagina.