Come ho realizzato la skill Melamorsicata per Alexa

Skill Melamorsicata

All’inizio dello scorso mese pubblicai la skill Melamorsicata per Amazon Alexa. Una skill che, una volta attivata, consente di ricevere le notizie della giornata in formato audio. Non la lettura di un feed, come fanno molti siti, ma la mia voce con le ultime notizie nella sezione “Sommario quotidiano”. Ad oggi quasi 1.000 persone l’hanno attivata.

Ma come sono arrivato a realizzarla? Ecco un viaggio nelle mie ricerche e i progressi attuali. La prima cosa che ho fatto è scrivermi al portale sviluppatori di Amazon. Poi ho creato una nuova skill partendo dal template del Flash Briefing.

Questi è un formato che andrà a finire nel “Sommario quotidiano”. Quindi chiedendo ad Alexa “Alexa dammi le ultime notizie del giorno” si attiva automaticamente il flusso di fonti presenti in “Sommario quotidiano”. Non è una skill a se stante come le altre.

Il Flash Briefing prende l’ultimo file presente in un link (fino ad un massimo di 5 file) attraverso la gestione di un file JSON o XML. Questi sono semplici file di testo che devono rispondere a determinate caratteristiche per essere letti correttamente. Quindi i server di Amazon vanno a leggere il file, vedono dove si trova il file MP3 collegato e lo riproduce.

Qui ho incontrato subito un problema: la gestione temporale dei vari file non funziona. Amazon legge tutti i file presenti nel JSON. Se per esempio inserisco un file audio per domani, Alexa leggerà anche quello nonostante, per logica, dovrebbe riprodurre solo quello del giorno corrente. Questo crea un problema: non è possibile programmare i contenuti per il giorno seguente. Questo è il motivo per cui a volte vi svegliate e non trovate le ultime notizie di Melamorsicata su Alexa. Semplicemente perché sono costretto a inserirle manualmente una volta sveglio.

Per quanto riguarda dove conservare i file MP3 da far leggere ad Alexa anche questo ha visto un lungo processo. Inizialmente avevo seguito il tutorial di Dabble Lab per impostare il tutto con Node.js e il server di Amazon S3. Amazon, tra l’altro, regala un credito di 100 $ per 1 anno per usare la banda dei suoi server. Se non si macinano grandi quantità di numeri sono più che abbondanti.

Successivamente mi sono accorto che esistono dei servizi già pre-impostati per caricare contenuti nella skill, senza dover mettere mano al file JSON e ai server S3 ogni volta. Ecco cosa ho trovato a tal proposito:

  • Storyline: era probabilmente il servizio migliore. Permetteva di creare il file JSON automaticamente inserendo il link del file MP3 della giornata. Consentiva anche di programmare i file per i giorni seguenti ma pagando un costoso abbonamento. Ora è diventato Invocable e l’abbonamento mensile è di ben 99 $. Quindi l’ho cestinato.
  • Effct: come Storyline ma permette anche di caricare direttamente i file MP3 nei loro server. Se questo semplifica la vita, dall’altro lato fa perdere il possesso dei file. In pratica se chiudiamo l’account perderemo anche i file presenti nei loro server. Anche questo servizio consente di programmare i contenuti, ma pagando 25 $ al mese.
  • Pippa.io: si paga 25 $ al mese per usare il servizio. Non esiste un periodo di prova, quindi non l’ho provato.
  • Voice Apps: buono per creare skill di vario tipo, ma non ideale per il Flash Briefing, in quanto crea la skill solo in inglese e in Italia vogliono, per questa modalità, una skill in italiano.
  • Brif: servizio promettente. È stato creato da uno sviluppatore e presenta un bel po’ di caratteristiche interessanti, come la programmazione dei contenuti e il caricamento diretto in un server. Costa anche poco tutto sommato, 4,99 $ al mese, peccato che lo sviluppatore non vi dedichi abbastanza tempo per sistemarlo e farlo crescere. Il servizio ha molti bug da mesi.
  • JustCast: è il servizio che sto utilizzando adesso. Crea un file XML generato automaticamente ogni giorno caricando il file in una cartella del proprio Dropbox. In pratica basta inserire nella cartella del proprio account Dropbox il file MP3 per far si che JustCast ne aggiorni il file XML per Alexa. Purtroppo non consente di programmare i post, ma integra delle sue statistiche sul download dei file.
  • SoundCloud: il famoso servizio di streaming di podcast consente di generare un file XML per Alexa. Purtroppo non è molto compatibile con Flash Briefing.

Ogni giorno, quindi, carico il contenuto su JustCast che aggiorna il feed XML inserito nel pannello della mia Skill di Melamorsicata. Se riscontrate dei ritardi nella pubblicazione del contenuto di mattina è semplicemente perché mi sono svegliato tardi (anche se capita raramente).

Al momento non ho trovato un buon servizio che mi consenta di programmare i contenuti senza dover pagare cifre assurde. Il servizio più promettente sembra Brif ma lo sviluppatore non vi lavora come dovrebbe ed è pieno di bug, quindi molte cose non funzionano e la sicurezza è precaria.

In futuro vi parlerò anche come realizzo il file MP3 che poi vado a caricare in JustCast. Nel frattempo vi invito ad attivare la mia skill per Amazon Echo e nel caso vi piacesse, a lasciare un feedback di 5 stelle.

Cosa ne pensi?