Interroghiamo le API di iTunes con il (micro)python

iTunes Python

Oggi impareremo ad interrogare il database online di iTunes, la famosa libreria digitale online di Apple, con un un semplice programma python.

iTunes è un programma software che funge da lettore multimediale, libreria multimediale, utilità di gestione dei dispositivi mobili e app client per iTunes Store.
Quello che alcuni tra noi ignorano, invece, è che è possibile “interrogare” l’intero database di iTunes alla ricerca di un brano, di un autore, del contenuto di una raccolta o dell’opera omnia di un cantante o di un gruppo con poche righe di Python, e senza dover scaricare il programma.
Vediamo come!

Il primo programma

Il primo programma che useremo per avvicinarci al nostro risultato finale determina l’utilizzo del protocollo http e la chiamata GET attraverso Python.

Come in tutti i protocolli che si rispettino, abbiamo una chiamata ed una risposta; il modulo “requests” ci offre tutti i metodi necessari per tale colloquio.

Abbiamo anche importato il modulo sys. In tal modo possiamo immettere il nome di una canzone o di un artista (riga 6) e inserirli come chiave di ricerca nella request (riga 10).

La richiesta è infatti una GET che richiama un webserver di ricerca. L’indirizzo richiede (search) un parametro (?) di tipo song, limitato ad un solo elemento (limit=1) e la cui  chiave di ricerca corrisponda al parametro immesso da riga di comando.

A riga 12 stampiamo la risposta ottenuta dalle API di iTunes, in formato JSON.

Di seguito una risposta di esempio.

 

Il secondo programma

Il protocollo funziona, otteniamo una risposta ma… l’impaginazione non ci soddisfa. Siamo umani, e non vogliamo faticare troppo a leggere le informazioni.

Quel che possiamo fare per rendere più leggibile la ricerca è importare il modulo json. Modifichiamo la riga 13, filtrando la risposta attraverso il metodo json.dumps() e richiedendo una indentazione di due spazi per la visualizzazione.

Ora il record che abbiamo ottenuto è decisamente più leggibile. Non solo: in questo modo possiamo anche selezionare tutti e soli i campi che ci interessano, ed eliminare la noiosa limitazione ad un unico record estratto da iTunes…

Il terzo programma

A riga 11 del terzo programma abbiamo eliminalo la limitazione ad un unico record. Abbiamo inoltre copiato la  risposta in una lista di dizionari (o) che andremo ad iterare ulla chiave results (vedi output precedente). Inoltre limiteremo la stampa a tre sole chiavi di ciascun record estratto, ovvero treack name, collection name e artist name.

Considerazioni finali

Con una decina di righe di Python siamo riusciti ad estarre informazioni da un database esterno (iTunes) che esponeva un servizio web per la ricerca.

Il prossimo passo potrebbe essere quello di aggiungere questa funzionalità ai nostri programmi, o al nostro db musicale personale. E’ possibile aggiungere ulteriori filtri per raffinare la nostra ricerca.

Piccola chicca: provate a togliere il commento dalla riga 15 del terzo proramma: otterrete il relativo link che punta direttamente alla canzone su iTunes.

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.