Comment j'ai construit Spotify Alternative pour Google Home

C'était dimanche soir. Les résultats du hackathon étaient sur le point d'être annoncés et quand j'ai entendu le nom de mon équipe, j'ai sauté de ma chaise, j'étais ravi. Pour ajouter plus d'excitation, j'ai demandé à mon Google Home de jouer "We Are The Champions" et à ma grande surprise, il a joué une chanson totalement différente. Je pourrais être déçu, mais au lieu de cela, j'ai été inspiré de savoir ce que je construisais ensuite.

Pourquoi a-t-il joué une chanson différente? Parce que le choix des chansons n'est disponible que pour les abonnés Spotify Premium. Au lieu de m'abonner, j'ai décidé de créer moi-même une alternative.

Depuis le jour où j'ai eu mon Google Home, je me demandais comment le programmer pour faire ce que je voulais. La première et la plus simple option était IFTTT. Après avoir connecté mon compte Google, j'ai pu créer des applets simples qui permettaient à Google Assistant de répondre lorsque certaines questions étaient posées et de le lier à des actions comme faire une requête Web.

IFTTT n'était pas tout à fait ce que je cherchais, car il ne pouvait pas effectuer de tâches telles que la lecture audio ou la génération par programme d'une réponse. Puis j'ai découvert Google Actions. Quand j'ai vu ses capacités, j'ai réalisé - c'est la voie.

La première chose que j'avais besoin de configurer pour l'application était un webhook. Ainsi, chaque fois que l'application est invoquée, Google Action adresse une requête au webhook. Une façon de fournir une URL accessible au public pour le webhook serait de déployer l'application quelque part. Au lieu de cela, pour le développement, j'ai utilisé JPRQ, une alternative Ngrok pour exposer un serveur Web local. Vous pouvez lire comment je l'ai construit.

Après avoir configuré le webhook, mon serveur local recevait tout ce que je disais à Google Assistant après l'appel de l'application. Je pourrais facilement envoyer une réponse multimédia - une URL lisible, et l'assistant la jouerait. Génial !

Le meilleur tutoriel que j'ai pu trouver sur Google Actions est Behind the Actions, il m'a aidé à comprendre les éléments de base tels que Scenes, Types et Intents .

La partie suivante est la recherche de chansons. J'ai d'abord examiné les API disponibles fournies par Deezer, Sound Cloud et Apple Music. Mais aucun d'entre eux n'a fourni la chanson complète, seulement le contenu partiel. Ensuite, j'ai décidé d'écrire un simple robot d'exploration pour rechercher des chansons à partir de z1.fm. J'ai pensé aux problèmes de droits d'auteur, alors j'ai décidé de garder MusicSpider pour moi et de ne pas le publier pour les autres.

Le code source de MusicSpider est disponible sur Github, à la fois l'application Web construite à l'aide de Flask et le crawler pour rechercher des chansons.

Pour partager mes apprentissages, j'ai donné une conférence sur "l'assistant Google programmable " où j'ai également partagé certaines de mes autres applications que j'ai créées pour l'Assistant Google.

Bonne construction,

Bravo