# Come ho realizzato la skill Melamorsicata per Alexa

- Link: https://www.melamorsicata.it/2018/12/22/come-ho-realizzato-la-skill-melamorsicata-per-alexa/
- Published: 2018-12-22T12:00:45+01:00
- Author: Kiro

[⌊Skill Melamorsicata⌉⌊Skill Melamorsicata⌉[

All’inizio dello scorso mese pubblicai la [skill Melamorsicata](https://www.melamorsicata.it/2018/11/02/melamorsicata-disponibile-per-amazon-alexa/)
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](https://developer.amazon.com/alexa)
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](https://developer.amazon.com/it/docs/flashbriefing/understand-the-flash-briefing-skill-api.html?tag=melamorsicata-21)
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](https://www.youtube.com/watch?v=OqMwmXag7-Q&t=1s)
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](https://www.invocable.com) e l’abbonamento mensile
   è di ben 99 $. Quindi l’ho cestinato.
 * [Effct](https://effct.co/signin/?next=/briefs/gec7jfp/add/): 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](https://voiceapps.com/?afmc=2u): 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](https://amzn.to/2PFyx8A)
per Amazon Echo e nel caso vi piacesse, a lasciare un feedback di 5 stelle.

### _Correlati_
