Je lis pas mal de chroniques musicales, pas toujours en entier, mais je suis à l’écoute des recommandations. Et je me disais que ce serait pas mal d’avoir un moyen d’ajouter les albums qui semblent correspondre à mes goûts dans une playlist, à écouter quand j’ai le temps. Donc c’est parti.

workflow

Chaque site a ses codes, mais globalement le titre de l’album/EP et de l’artiste apparaît assez rapidement dans le titre de l’article. L’idée est donc de récupérer ces informations, de chercher l’album correspondant dans mon service de streaming préféré, et de construire une playlist.

Le workflow se décompose en plusieurs étapes que j’ai essayées de séparer pour en simplifier les évolutions, comme je ne maîtrise pas la manière donc chaque service vit sa vie.

  • au fur et à mesure de mes lectures :
    • je partage un article qui me semble intéressant dans un outil de sauvegarde de signets (wallabagpour mon cas, hébergé sur mon serveur)
    • l’outil de sauvegarde de signets est configuré pour mettre automatiquement une étiquette “musique” sur les articles qui proviennent de certaines sources que j’ai définies (les sites de critique de musique). Au besoin, je peux ajouter ce tag manuellement, ou le retirer d’ailleurs.
  • lorsque je veux mettre à jour la playlist, le script s’occupe des étapes suivantes :
    • récupère la liste de tous les articles avec l’étiquette “musique”
    • cherche dans l’article le titre de l’album et de l’artiste
    • cherche ensuite sur mon service de streaming préféré ces éléments
    • ajoute la release trouvée dans une playlist définie spécifiquement pour ça

Pour éviter les doublons, la playlist est au préalable vidée. Ce n’est pas optimal, mais ça n’est pas non plus hyper pénalisant, l’ajout étant très rapide.

En bonus, le processus génère un listing des artistes/albums en format csv qui est stocké pour ne plus dépendre de la persistance de l’article initial, ni du bon vouloir du service de streaming. Et vous pouvez retrouver ces listes ici, au chapitre musique.

	flowchart TD
		A(Lien de l'article) --> B[[parsing]]
		B --> C(Artiste et Titre)
		C --> E[[recherche de l'album dans le service de streaming]]
		E --> H(identifiant dans le service de streaming)
		E --> F[[ajout à une playlist]]
		C --> G[[ajout au listing]]
		H --> G
		A --> G
		G --> I[(Listing)]
		F-->J[(Playlist)]

J’ai aussi adapté le processus pour générer des playlists d’albums “likés” suivant leur style. Pour chaque album qui me plaît, je change l’étiquette de “musique” à une étiquette spécifique, par exemple “musique_stoner” pour le style stoner. Et je peux ainsi générer une autre playlist avec les albums de stoner que j’aime.

By the way mes playlists sont publiques :

  • mes playlists sur Spotify (plus mises à jour depuis que j’ai décidé que Spotify c’est le mal, et migré sur Qobuz)
  • mes playlists sur Qobuz (pas encore trouvé comment on y accède en public sans mettre le lien explicite vers chacune, flemme todo)
  • la listes des albums par playlist est aussi disponible sur la page /interests de ce site, à la rubrique “Musique”.

Comme je suis une feignasse, les playlists se mettent à jour toutes seules par la magie du crontab. J’ai choisi la nuit du lundi, comme ça il se passe au moins un truc sympa tous les lundis.

dépendance au service de streaming

J’utilisais Spotify qui a la bonne idée d’avoir une API publique avec laquelle mon script dialogue pour faire les mises à jour.

Pour des raisons éthiques j’ai décidé de migrer vers un abonnement Qobuz. L’API Qobuz permettrait sans peine de faire la même chose mais elle n’est pas publique… Me voilà coincé 😭. J’ai longtemps galéré, mais j’ai finalement réussi à recréer les points d’entrée de l’API qu’il me fallait (en farfouillant sur le web, garanti sans IAG) et ainsi automatiser la mise à jour.

Ce qui suit est donc obsolète (pour moi), mais peut servir à d’autres.

J’utilise un service tiers qui s’occupe de transférer les playlists d’un abonnement à l’autre. La bonne nouvelle, c’est que je n’ai pas besoin de revoir mon script qui s’occupe de mettre à jour les playlists Spotify. La mauvaise est que ça nécessite une étape supplémentaire, que je ne peux automatiser que via un abonnement payant (ou alors très limitée en version gratuite : une synchro par jour pendant 2 jours, à réactiver à la main au bout de ce délai).

Le workflow est le suivant :

  • mise à jour des playlists Spotify
  • connexion a Soundiiz
  • connexion/autorisation des comptes Spotify et Qobuz
  • sélectionner la playlist Spotify et “synchroniser vers” Qobuz